jmi*_*ite 5 python windows winapi multiple-monitors pywin32
我有一个使用多个显示器的程序.该程序在第二台显示器上显示特殊可视化.有一次,程序使用Windows shell函数将文件发送到回收站.但是,当它执行此操作时,删除确认对话框位于我的可视化之上.这特别成问题,因为当鼠标在第二个监视器上时,我的程序使用鼠标钩来捕获所有鼠标输入,因此用户甚至无法单击确认对话框.
有可能以某种方式告诉Windows只在特定显示器上放置对话框吗?
我正在使用python,但是如果我必须调用C WinAPI函数那应该不是问题
小智 2
您使用哪个函数将文件发送到回收站?如果您使用SHFileOperation, 您可以传递父 HWND。也许将其设置为另一个监视器上不可见的 WS_EX_TOOLWINDOW 窗口。
我希望API将该窗口视为父窗口,并相对于该窗口居中,但我还没有尝试过。
根据您所针对的 Windows 版本,曾经有一种功能可以创建“停靠”到屏幕两侧的桌面带。这会自动被考虑到GetMonitorInfo作为 rcWork 返回的区域中,并且应该防止对话框与此空间重叠。可能还有另一种方法来声明一个区域“正在使用”,以声明空间禁止的方式,但我不知道它,所以它可能不存在......
您可以做的丑陋而粗暴的事情是自己轮询并移动对话框,但如果这是任何类型的广泛部署或商业应用程序,则可能会弊大于利。
| 归档时间: |
|
| 查看次数: |
515 次 |
| 最近记录: |