Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.620 Beiträge
Delphi 12 Athens
|
Re: sendkey methode umbauen
23. Sep 2008, 16:16
Könntest Du das hier mal testen?
Delphi-Quellcode:
uses ShellAPI;
procedure EnterText(AText: String);
var lCount : Integer;
lScanCode : Smallint;
lWithAlt,
lWithCtrl,
lWithShift : Boolean;
begin
for lCount := 1 To Length(AText) Do
begin
lScanCode := VkKeyScan(AText[lCount]);
//Ermitteln ob Shift gedrückt wurde
lWithShift := lScanCode and (1 shl 8) <> 0;
//Ermitteln ob Strg gedrückt wurde
lWithCtrl := lScanCode and (1 shl 9) <> 0;
//Ermitteln ob Alt gedrückt wurde
lWithAlt := lScanCode and (1 shl 10) <> 0;
if lWithShift then
keybd_event(VK_SHIFT, 0, 0, 0);
if lWithCtrl then
keybd_event(VK_CONTROL, 0, 0, 0);
if lWithAlt then
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(lScanCode, 0, 0, 0);
keybd_event(lScanCode, 0, KEYEVENTF_KEYUP, 0);
if lWithAlt then
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
if lWithCtrl then
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
if lWithShift then
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var jetzt: Cardinal;
begin
if ShellExecute(0,'open','notepad.exe',nil,nil,SW_SHOWNORMAL) > 32 then
begin
jetzt := GetTickCount;
while (GetTickCount - jetzt) < 3000 do
begin
Application.ProcessMessages;
sleep(0);
end;
EnterText('Hallo Welt');
end;
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|
|
Zitat
|