나는 + 이 SendInput을을 사용하여 V 조합 here을 사용으로 Ctrl 키를 전송하여 클립 보드의 텍스트를 붙여 시스템 전체 단축키를 Ctrl 키 + 시프트 + 사용자의 선택의 키를 사용하는 프로그램을 가지고 . 이것은 대부분의 프로그램에서 잘 작동합니다. 그러나 새로운 전자 메일의받는 사람 필드에있는 Outlook에서 "Press Item To Folder"Outlook 대화 상자가 나타나는데 이는 Ctrl + 입니다. Shift + V 키 조합입니다. 본문 필드에서는 아무 것도 발생하지 않습니다. 어떤 아이디어가 여기에서 발생하고 있습니까? 아래에서 재현 할 코드를 참조하십시오.SendInput Ctrl + V가 Outlook에서 작동하지 않는 이유는 무엇입니까?
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;
Begin
If (msg.HotKey > 0) And (msg.HotKey < 2) Then
Begin
Clipboard.AsText:= 'Some text';
KeybdInput(VK_CONTROL, 0); // Ctrl
KeybdInput(Ord('V'), 0);
KeybdInput(Ord('V'), KEYEVENTF_KEYUP);
KeybdInput(VK_CONTROL, KEYEVENTF_KEYUP); // Ctrl
SendInput(Length(KeyInputs), KeyInputs[0], SizeOf(KeyInputs[0]));
end
End;
. 방금이 SendInput 기술이 Outlook에서 작동하지 않는 것으로 나타났습니다. –
사용하는 것이 더 쉬울 수 있습니다 – user3640611
좋은 SSCCE를 추가하면 누군가가 도움이 될 가능성이 더 높다고 생각합니다. 내 부분에 아무런 노력을 기울이지 않으면 더 도울 수있을 것입니다. 그것이 의미하는대로 나는 repro을 만들기 위해 나의 시간을 투자해야한다. 실제로 모든 잠재적 인 도우미는 그렇게해야합니다. 아마 그 단계는 퍼팅에서 충분히 벗어 났을 것입니다. –