【问题标题】:Launch a custom screensaver + lock machine启动自定义屏保+锁机
【发布时间】:2012-09-21 12:32:42
【问题描述】:

在我的应用程序中,当用户想要休息并单击注销按钮时,我想完成 2 件事。

  1. 锁定机器
  2. 启动自定义屏幕保护程序,显示用户退出的时间。

我设法通过以下方式轻松完成锁定:

[DllImport("user32.dll")]
private static extern void LockWorkStation();

我找到了关于如何制作自定义屏幕保护程序的tutorial。我下载了示例代码,它运行良好。但是当我添加 LockWorkStation(); 行时,它终止了屏幕保护程序。

您能帮我解决这个问题或提出解决方法吗?

编辑

教程中的这个屏幕保护程序只是 w WinForm。我应该以某种方式将其安装到系统中吗?是否有可能形成我的应用程序级别?

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    最有可能的解决方案如下:

    1. 锁定工作站
    2. 显示屏幕保护程序

    对于第二步,以下几点很重要:

    您的应用程序只是一个显示窗口的程序。因此,当工作站被锁定时,它尝试显示的任何窗口都不会显示给用户。
    您的窗口只会在您register 您的程序作为真正的屏幕保护程序时显示,将其设置为当前屏幕保护程序然后启动它,例如使用SC_SCREENSAVE 消息。

    【讨论】:

    • 它不起作用。屏幕保护程序只是闪烁,然后替换为登录屏幕。锁工作站(); ScreenSaverForm 屏幕保护程序 = new ScreenSaverForm(screen.Bounds);屏保.Show();我想这可能是因为这个屏幕保护程序只是一个 WinForm。是否可以从我的应用程序级别以某种方式“安装”它?
    • @gisek:您的假设很可能是正确的。请检查我的更新答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多