在这种情况下,我以前所做的不是禁用屏幕保护程序,而是防止屏幕保护程序启动。为此,我会定时(使用计时器)向操作系统发送“左Shift松开”按键。
c#:
[DllImport("user32")]
private static extern void keybd_event(byte bVirtualKey, byte bScanCode, int dwFlags, int dwExtraInfo);
private const byte VK_LSHIFT = 0xA0;
private const int KEYEVENTF_KEYUP = 0x0002;
private void timer1_Tick(object sender, EventArgs e)
{
keybd_event(VK_LSHIFT, 0x45, KEYEVENTF_KEYUP, 0);
}
vb.net:
Private Const VK_LSHIFT As Byte = 160
Private Const KEYEVENTF_KEYUP As Integer = 2
Private Declare Sub keybd_event Lib "user32" (ByVal bVirtualKey As Byte, ByVal bScanCode As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
' When the timer elapses, send Left Shift Up
Private Sub timer1_Tick(ByVal sender As Object, ByVal e As EventArgs)
keybd_event(VK_LSHIFT, 69, KEYEVENTF_KEYUP, 0)
End Sub
(我不是VB开发人员,只是通过自动化的C# -> VB.NET转换器运行了C#代码)
我认为左移上键击是最不可能干扰应用程序的。最糟糕的情况是,如果在计时器触发的同时您按下了左Shift键,它将导致Shift结束。
当然,您可以使用任何其他键来防止屏幕保护程序激活。