当资源管理器不是 shell 时启动屏幕保护程序
我正在运行我自己的信息亭应用程序作为 shell(替换 HKLM/Software/Microsoft/Windows NT/winlogon/shell)。
应用程序需要能够关闭监视器,我使用 Process.Start("scrnsave.scr") 来执行此操作。它可以在我的开发机器上运行,但在更换外壳后就不行了。
显然是因为 UseShellExecute 设置为 true,但是当我将其设置为 false 时,我无法运行屏幕保护程序。使用 explorer.exe 作为命令并使用 scrnsave.scr 作为参数只会导致资源管理器窗口打开。
是否有一个开关可以传递给资源管理器以使其运行屏幕保护程序,或者是否有其他方法可以实现相同的目的?
谢谢。
I'm running my own kiosk application as the shell (replacing HKLM/Software/Microsoft/Windows NT/winlogon/shell).
The application needs to be able to turn off the monitor and I was using Process.Start("scrnsave.scr") to do this. It works on my dev machine but not when the shell is replaced.
It's clearly because the UseShellExecute is set to true, but when I set it to false I can't get the screensaver to run. Using explorer.exe as the command and scrnsave.scr as the argument just causes an explorer window to open.
Is there a switch I can pass to explorer to get it to run the screensaver or is there another way to achieve the same thing?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过向系统发送 Windows 消息来启动屏幕保护程序。
您将需要以下定义,
然后可以按如下方式使用它们
You can start the screen saver by sending a windows message to the system.
You will need the following definitions
Which you can then use as follows