ros*_*mcm 4 delphi keypress screensaver delphi-2006 mouseevent
我有一个由于错误条件而弹出的对话框.我希望对话框保持打开状态至少30秒,并在收到最后一个用户输入(鼠标或键盘)后关闭30秒.
我可以通过检查GetLastInputInfo返回的值并在超过30秒之前关闭对话框来实现这一点,但是如果当用户没有使用鼠标或键盘30秒时弹出对话框,则GetLastInputInfo测试通过立即,对话框立即再次关闭.我可以用另一个计时器做到这一点,但我认为在对话框打开之前模拟鼠标移动或者发出一个(无害的)按键要简单得多.它也可能具有将系统从屏幕保护程序中踢出的优点.
什么是最简单的1行Delphi代码片段来实现这一目标?
最简单的是使用keybd_event函数(一行代码)
keybd_event(Ord('A'), 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
您也可以使用该SendInput功能,但需要多行:)
Var
pInputs : TInput;
begin
pInputs.Itype := INPUT_KEYBOARD;
pInputs.ki.wVk := Ord('A');
pInputs.ki.dwFlags := KEYEVENTF_KEYUP;
SendInput(1, pInputs, SizeOf(pInputs));
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1685 次 |
| 最近记录: |