解决方法
这是一个示例,显示如何使用
SendInput将Ctrl E发送到前台应用程序:
var Inputs: array [0..3] of TInput; begin // press Inputs[0].Itype := INPUT_KEYBOARD; Inputs[0].ki.wVk := VK_CONTROL; Inputs[0].ki.dwFlags := 0; Inputs[1].Itype := INPUT_KEYBOARD; Inputs[1].ki.wVk := Ord('E'); Inputs[1].ki.dwFlags := 0; // release Inputs[2].Itype := INPUT_KEYBOARD; Inputs[2].ki.wVk := Ord('E'); Inputs[2].ki.dwFlags := KEYEVENTF_KEYUP; Inputs[3].Itype := INPUT_KEYBOARD; Inputs[3].ki.wVk := VK_CONTROL; Inputs[3].ki.dwFlags := KEYEVENTF_KEYUP; sendinput(Length(Inputs),Inputs[0],SizeOf(TInput)); end;
我还使用Steve Seymour稍微修改过的SendKeys.pas版本.它有不同的键盘布局的问题,是从1999年.无法在网络中的任何地方找到它.