我有一个使用全系统热键程序Ctrl+ Shift+ a key of the user's choice通过发送到剪贴板中的文本粘贴Ctrl+ V使用SendInput所使用组合在这里。这在大多数程序中都可以正常工作。但是在Outlook的新电子邮件的“收件人”字段中,我尝试使用的每个键最终都会弹出“将项目移到文件夹” Outlook对话框,该对话框应该是Ctrl+ Shift+ V组合键。在“身体”字段中没有任何反应。任何想法在这里发生了什么?请参见下面的代码重现:
procedure TForm1.FormCreate(Sender: TObject);
begin
If not RegisterHotkey( Handle, 1, MOD_SHIFT or MOD_CONTROL, Ord('P') ) Then
ShowMessage('Error');
end;
Procedure TForm1.WMHotkey( Var msg: TWMHotkey );
var
KeyInputs: array of TInput;
procedure KeybdInput(VKey: Byte; Flags: DWORD);
begin
SetLength(KeyInputs, Length(KeyInputs)+1);
KeyInputs[high(KeyInputs)].Itype := INPUT_KEYBOARD;
with KeyInputs[high(KeyInputs)].ki do
begin
wVk := VKey;
wScan := MapVirtualKey(wVk, 0);
dwFlags := Flags;
end;
end; …Run Code Online (Sandbox Code Playgroud)