告訴 Windows 要將對話方塊顯示在哪個顯示器上

2024-04-24 22:33:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个使用多个监视器的程序。程序在第二台监视器上显示特殊的可视化效果。在某一时刻,该程序使用windows shell函数将文件发送到回收站。但是,当它这样做时,删除确认对话框出现在我的可视化之上。这尤其有问题,因为当鼠标位于第二个监视器上时,我的程序使用鼠标钩子捕捉所有鼠标输入,因此用户甚至不能单击确认对话框。在

有没有可能告诉Windows只在特定的显示器上放置对话框?在

我使用的是python,但是如果我必须调用C WinAPI函数,这应该不是问题


Tags: 文件函数用户程序windows可视化鼠标shell
1条回答
网友
1楼 · 发布于 2024-04-24 22:33:24

您使用哪个功能将文件发送到回收站?如果使用SHFileOperation,则可以传递父HWND。也许在另一个监视器上使它成为一个不可见的WS_EX_工具窗口。在

我希望API将窗口作为父窗口处理,相对于该窗口居中,但我没有尝试过。在

根据你的目标是哪个版本的Windows,过去有一种创建桌面条带的功能,可以“停靠”在屏幕的两侧。这会自动被分解到GetMonitorInfo作为rcWork返回的区域中,并应防止对话框与此空间重叠。可能还有另一种方法可以声明某个区域“正在使用”,声明空间禁止使用,但我不知道,所以它可能不存在。。。在

你可以做的丑陋和粗糙的事情是自己投票和移动对话框,但如果这是任何一种广泛部署或商业应用程序,可能会造成弊大于利。在

相关问题 更多 >