Windows屏保多实例
Posted
技术标签:
【中文标题】Windows屏保多实例【英文标题】:Windows screensaver multiple instance 【发布时间】:2012-08-30 18:52:44 【问题描述】:因此,Windows 屏幕保护程序只是一个传递 3 个参数之一的 exe。
/c for config screen
/s for fullscreen
/p <hwnd> for the little preview window.
除了我有多个处理正在运行(这是问题)之外,我的一切都正常工作。
当您打开 Windows 屏幕保护程序选择器窗口并选择我的屏幕保护程序时,它会使用 /p 启动它,以便显示预览。如果单击设置按钮,它将再次使用 /c 调用我的 sreensaver。现在我有两个处理正在运行。当我关闭对话框时,我的进程结束,但 Windows 现在再次使用 /p 调用我的屏幕保护程序。进程不断增加。
我应该如何处理这个问题?我没有看到有关该主题的任何文档。我希望那里有人以前做过。
我不想监视其他进程以只保持一个运行。必须有一个我没有看到的解决方案。
谢谢
经过进一步调查,我看到 Windows 将消息传递给您的屏幕保护程序: http://msdn.microsoft.com/en-us/library/cc144066%28v=vs.85%29.aspx
我设置了一个过滤器来捕获消息。我得到了一切,但破坏。哈哈。我假设它会通过 WM_DESTROY 告诉你保释。
【问题讨论】:
***.com/questions/646480/… ? 原来我回答了我自己的问题。请参阅上面的 msdn 链接。您必须监视消息并在 WM_DESTROY 上终止您的进程。 【参考方案1】:原来我回答了我自己的问题。请参阅上面的 msdn 链接。您必须监视消息并在 WM_DESTROY 上终止您的进程。 – HCHogan 刚刚编辑
【讨论】:
【参考方案2】:为什么不只查看参数以查看它是否在预览模式下运行,然后更改您的代码以不做任何您试图避免的事情,
或将 HWND 存储在注册表中,然后使用它来查看屏幕保护程序正常启动时预览是否仍在运行
【讨论】:
以上是关于Windows屏保多实例的主要内容,如果未能解决你的问题,请参考以下文章