Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 启动自定义屏幕保护程序+;锁具_C#_Wpf - Fatal编程技术网

C# 启动自定义屏幕保护程序+;锁具

C# 启动自定义屏幕保护程序+;锁具,c#,wpf,C#,Wpf,在我的应用程序中,当用户想要休息并单击注销按钮时,我想完成两件事 把机器锁上 启动自定义屏幕保护程序,显示用户注销的时间 我通过以下方式轻松锁定: [DllImport("user32.dll")] private static extern void LockWorkStation(); 我找到了一个关于如何制作自定义屏幕保护程序的方法。我下载了示例代码,效果很好。但是当我添加锁工作站()时line它杀死了屏幕保护程序 你能帮我解决这个问题吗,或者建议一个解决办法 编辑 本教程中的屏幕保护程

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

  • 把机器锁上
  • 启动自定义屏幕保护程序,显示用户注销的时间
  • 我通过以下方式轻松锁定:

    [DllImport("user32.dll")]
    private static extern void LockWorkStation();
    
    我找到了一个关于如何制作自定义屏幕保护程序的方法。我下载了示例代码,效果很好。但是当我添加锁工作站()时line它杀死了屏幕保护程序

    你能帮我解决这个问题吗,或者建议一个解决办法

    编辑


    本教程中的屏幕保护程序只是WinForm。我是否应该以某种方式将其安装到系统中?从我的应用程序级别可以吗?

    最有可能的解决方案是:

  • 锁定工作站
  • 显示屏幕保护程序
  • 对于第二步,以下内容很重要:

    您的应用程序只是一个显示窗口的程序。因此,当工作站被锁定时,它试图显示的任何窗口都不会向用户显示。

    只有当您将程序设置为真正的屏幕保护程序,将其设置为当前屏幕保护程序,然后启动它时,您的窗口才会显示,例如使用消息。

    它不工作。屏幕保护程序只是闪烁,然后被登录屏幕取代。锁定工作站();ScreenSaverForm screensaver=新的ScreenSaverForm(screen.Bounds);screensaver.Show();我想这可能是因为这个屏幕保护程序只是一个WinForm。有可能从我的应用程序级别“安装”它吗?@gisek:你的假设很可能是正确的。请检查我的最新答案。