作为一名工作中的双监视器用户,我注意到应用程序在打开的监视器(主监视器或辅助监视器,应用程序打开的最后一个监视器,等等)方面表现不同。老实说,有些应用程序让我很恼火,因为我希望它们在我的主监视器上打开,如果我想让它们在那里,我会把它们移到我的辅助监视器上。然而,这些应用程序已经完成,超出了我的控制范围,所以我想询问一下我自己的应用程序,这些应用可能由使用两个监视器的人运行。
哪些类型的控件可用于允许人们指定在哪个监视器上打开您的应用程序;记住";它关闭并重新打开时所在的监视器,并强制应用程序在特定监视器上启动?
我正在寻找所有操作系统和编程语言的解决方案,尽管我猜测不同的操作系统和语言会有不同的控制。
相关问题
- 是什么决定了我的应用程序运行在哪个监视器上?此问题讨论现有应用程序以及它们如何决定在哪个监视器上运行。当前接受的答案提供了Windows功能,可用于在启动时控制应用程序的定位
- 在第二台显示器上启动程序?提供了一些Delphi解决方案,用于强制应用程序在特定监视器上启动
作为一名windows程序员,我通过以下方式控制应用程序创建的窗口的启动监视器a.将我的应用程序存储在注册表中的最后一个位置并恢复,以及b.缺少存储的信息,将起始位置设置为神奇的标志值,windows使用其默认逻辑来定位应用程序。随着MS改善用户体验,默认逻辑从操作系统到操作系统都会发生变化,但往往会确保应用程序在用户最可能看到的任何监视器上打开。
作为一个使用多监视器WindowsXP/Vista系统的用户,我会使用英伟达桌面管理器,该管理器能够设置应用程序的启动位置,否则就没有适当的行为。
从传统的Unix和Linux窗口管理器的角度来看,您无法控制。窗口管理器处理窗口的定位。
您可以向窗口管理器提供提示,但应该可以将窗口管理器配置为忽略这些内容。当使用大型虚拟桌面时,从程序中移动或放置窗口很容易引起疼痛。
请参阅:http://standards.freedesktop.org/wm-spec/wm-spec-latest.html
需要考虑的一件事是,监视器配置可能在应用程序调用之间发生了更改(例如,在笔记本电脑上运行,有时可能会对接并使用外部监视器)。请确保您的应用程序位于可见范围内。
至于API,有一个System.Windows.Forms.Screen类可以为您提供一些信息。
在KDE 4.13.3中(可能在一些旧版本和新版本中,您可以这样做(翻译可能不准确-我使用抛光版本):
- 运行所需程序
- 右键单击其标题栏
- 选择"更多操作"->"附加窗口设置…"("附加程序设置…"下还有更多选项)
- 转到选项卡"大小和布局"
- 将复选框标记为"屏幕",然后选择"强制"并选择屏幕编号。该程序的窗口将始终在该屏幕上打开
也有类似的问题。发现以下内容:
右键点击窗口标题栏并选择"更多操作"->"窗口管理器设置"。在左边的栏中选择"焦点"。切换选项"活动屏幕跟随鼠标"
如果未指定其他默认值,则窗口将显示在当前活动屏幕上。通过上述过程,鼠标位置定义此活动屏幕。
希望能有所帮助,
最佳,Bb