由于错误情况,我弹出一个对话框。我希望对话框保持打开状态至少 30 秒,并在收到最后一次用户输入(鼠标或键盘)后关闭 30 秒。
我可以通过检查 GetLastInputInfo 返回的值并在超过 30 秒前关闭对话框来实现此目的,但如果在用户超过 30 秒没有使用鼠标或键盘时弹出对话框,则GetLastInputInfo 测试立即通过,并且对话框立即再次关闭。我可以使用另一个计时器来完成此操作,但我认为在对话框打开之前模拟鼠标移动一点或发出(无害的)按键会更简单。据推测,它还有一个优势,可以将系统踢出屏幕保护程序。
实现此目的最简单的 1 行 Delphi 代码片段是什么?
最佳答案
最简单的是使用 keybd_event
函数(一行代码)
keybd_event(Ord('A'), 0, 0, 0);
您也可以使用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;
关于delphi - 以编程方式模拟用户输入的简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7723104/