Pea*_*nut 3 python windows user-interface
我最近开始学习Python并写了一个小脚本,当某个网站改变内容时通知我.然后我将它作为计划任务添加到Windows,以便它可以每10分钟运行一次.我想知道网站立即更改,所以我添加了一个win32ui MessageBox,如果脚本检测到网站已更改,则会弹出该消息框.这是我用于MessageBox的小代码片段(富有想象力的文字,我知道):
win32ui.MessageBox("The website has changed.", "Website Change", 0)
Run Code Online (Sandbox Code Playgroud)
我的问题是,我花了大部分时间使用远程桌面,所以当MessageBox弹出它位于远程桌面会话后面时,有没有办法强制MessageBox出现在它上面?
在类似的说明中,当脚本运行时,命令行在我不想要的远程桌面会话上非常短暂地打开,是否有任何方法可以阻止此行为?
我对Windows特定的解决方案感到满意,因为我知道它可能意味着处理窗口管理器,或者可能是另一种通知我而不是使用MessageBox的方法.
当您从任务计划程序启动任何内容时,Windows会阻止任何" 简单 "的方式将您的窗口或对话框置于顶端.
第一种方式 - 使用MB_SYSTEMMODAL(4096值)标志.根据我的经验,它使Msg对话框"始终在最顶层".
win32ui.MessageBox("The website has changed.", "Website Change", MB_SYSTEMMODAL)
Run Code Online (Sandbox Code Playgroud)第二种方式 - 尝试通过以下调用将控制台/窗口/对话框置于前面.当然,如果你使用,MessageBox你必须在调用之前(对于你自己创建的窗口)这样做MessageBox.
SetForegroundWindow(Wnd);
BringWindowToTop(Wnd);
SetForegroundWindow(Wnd);
Run Code Online (Sandbox Code Playgroud)至于控制台窗口的闪烁,您可能会尝试以隐藏状态启动Python.例如,使用ConEmu,'HidCon'或cmdow.请参考他们的参数,例如:
ConEmu -basic -MinTSA -cmd C:\Python27\python.exe C:\pythonScript.py
or
CMDOW /RUN /MIN C:\Python27\python.exe C:\pythonScript.py
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5612 次 |
| 最近记录: |