Jos*_*ons 77 multiple-monitors
我正在使用Windows,我有两台显示器.
有些应用程序将始终在我的主监视器上启动,无论我何时关闭它们.
其他人总是会在辅助监视器上启动,无论我关闭它们的位置.
是否有一个隐藏在某处的注册表设置,我可以操作它来控制默认启动哪些监视器应用程序?
@rp:我有Ultramon,我同意它是不可或缺的,微软应该购买并将其整合到他们的操作系统中.但正如您所说,它不会让您控制程序启动的默认监视器.
小智 55
这是我发现的.如果您希望默认情况下在辅助监视器上打开应用程序,请执行以下操作:
1. Open the application.
2. Re-size the window so that it is not maximized or minimized.
3. Move the window to the monitor you want it to open on by default.
4. Close the application. Do not re-size prior to closing.
5. Open the application.
It should open on the monitor you just moved it to and closed it on.
6. Maximize the window.
Run Code Online (Sandbox Code Playgroud)
此应用程序现在默认在此监视器上打开.如果要将其更改为其他监视器,请再次按照步骤1-6进行操作.
Dav*_*ron 44
正确编写的Windows应用程序希望保存其运行之间的位置将保存GetWindowPlacement()关闭之前的结果,然后SetWindowPlacement()在启动时使用以恢复其位置.
通常,应用程序会将结果存储GetWindowPlacement()在注册表中REG_BINARY以方便使用.
该WINDOWPLACEMENT路线比其他方法有许多优点:
SetWindowPlacement()将自动确保窗口不完全在屏幕外最后,正确处理窗口恢复的程序将考虑nCmdShow从shell传入的参数.此参数在启动应用程序的快捷方式中设置(正常,最小化,最大化):
if(nCmdShow != SW_SHOWNORMAL)
placement.showCmd = nCmdShow; //allow shortcut to override
Run Code Online (Sandbox Code Playgroud)
对于非Win32应用程序,确保用于保存/恢复窗口位置的方法最终使用相同的底层调用非常重要,否则(如Java Swing的setBounds()/ getBounds()问题)最终会编写大量额外代码重新实现功能中已有的WINDOWPLACEMENT功能.
rp.*_*rp. 10
获取UltraMon.很快.
http://realtimesoft.com/ultramon/
它不允许您指定应用程序启动的监视器,但它允许您将应用程序移动到另一个监视器,并通过单击鼠标保持其宽高比完好无损.这是一个非常方便的实用程序.
大多数程序将从您上次离开它们的地方开始.因此,如果您有两台显示器正在工作,但只有一台在家,则可以在家中启动笔记本电脑而不会看到其他显示器上运行的应用程序(现在不在那里).UltrMon还允许您快速轻松地将这些孤立应用程序移回主屏幕.
Cro*_*roo 10
这不是这个问题的答案,但我用Shift + Win + [left,right] arrow keys快捷方式解决了这个问题.您可以使用它将当前活动的窗口移动到另一个监视器.