Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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#_Monitor - Fatal编程技术网

C# 当检测到用户活动时,如何关闭用户监视器并防止打开?

C# 当检测到用户活动时,如何关闭用户监视器并防止打开?,c#,monitor,C#,Monitor,我想建立一个软件,当用户按下Ctrl+Alt+p,显示器关闭时,他可以输入他的密码,当显示器关闭时,在他完成输入后,他按下Ctrl+Alt+O,屏幕就回来了 我设法做到了这一切,但我唯一的问题是当用户开始键入密码时,计算机会检测用户的活动并自动打开屏幕 我使用此方法关闭屏幕 [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern int SendMessage(IntPtr hWnd, int wMsg, I

我想建立一个软件,当用户按下Ctrl+Alt+p,显示器关闭时,他可以输入他的密码,当显示器关闭时,在他完成输入后,他按下Ctrl+Alt+O,屏幕就回来了

我设法做到了这一切,但我唯一的问题是当用户开始键入密码时,计算机会检测用户的活动并自动打开屏幕

我使用此方法关闭屏幕

[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam);

public static void Main(string[] args)
{
    Form f = new Form();
    bool turnOff;   //set true if you want to turn off, true if on
    SendMessage(f.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, turnOff ? 2 : -1);
}
有人知道如何在用户活动期间防止显示器打开吗

我不介意使用哪种脚本语言,我更喜欢C


非常感谢。

您可以期望用户只按一个按钮而不是三个按钮。显示器上的那个。你为什么不打开密码屏蔽来控制它?!你还应该让你的应用程序关掉房间里的灯,这样就没有人能看到键盘了?…哈哈,很好的解决方案。不幸的是,这是一个在某些机器上的系统,我没有办法手动关闭屏幕,不幸的是,密码没有被我身后的人隐藏。因此,我正试图找到解决此问题的编程解决方案。如果密码进入您自己的应用程序,请使用屏蔽控件(您键入的字符将被替换为其他字符,如
*
)。如果需要屏蔽另一个应用程序的窗口,只需将窗口设置为“始终在顶部”,用户就可以在键入时将该窗口放置在另一个应用程序的密码框上。如果您无权访问此应用程序的代码,您可以尝试获取其输入控件的句柄,并通过SendMessage()和EM_SETPASSWORDCHAR打开密码字符。