![]() |
Re: Tastaturkommandos an ein Handle senden (Remote)
Ich hab nur ne kleine Bemerkung zu deiner Verwendung von GetWindowThreadProcessID(): Soviel ich weiß darfst du nicht die Variable direkt übergeben, sondern musst die Adresse der Variable übergeben:
Delphi-Quellcode:
GetWindowThreadProcessID(AHandle, @ProcessID);
|
Re: Tastaturkommandos an ein Handle senden (Remote)
Hallo.
@wotan98: Wenn ich die Adresse angebe bekomme ich einen Fehler vom Compiler [Fehler] main.pas(62): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen @Franz Kogler: Danke für die Unit. Wenn ich es wie folgt aufrufe, bekomme ich immer eine Exeption "Zugriffsverletzung" ...
Delphi-Quellcode:
Könnte ich eventuell noch einen Tipp zur Verwendung bekommen?
procedure Tfrm_main.btn_setTextClick(Sender: TObject);
var sEditValue : string; sendKeyBlock : TSendKeys; begin sEditValue := ed_text.text; sendKeyBlock.WindowHandle := extWindowsHandle; sendKeyBlock.SendKeys(Pchar(sEditValue)); <- Hier wird die Exeption ausgelöst ... |
Re: Tastaturkommandos an ein Handle senden (Remote)
Zitat:
|
Re: Tastaturkommandos an ein Handle senden (Remote)
Wenn ich die Adresse übergebe, muss die Variable ProcessID eine LongWord-Variable sein. Ich wusste nicht, dass Delphi es einem wieder so komfortabel macht :-D . Da ist es natürlich besser einfach nur die Variable zu übergeben.
|
Re: Tastaturkommandos an ein Handle senden (Remote)
Hallo,
ich habe es nun mal probiert mit "AttachThreadInput" (Hab ich im Forum gefunden)
Delphi-Quellcode:
Aber der Erfolg will sich nicht einstellen ...
procedure Tfrm_main.btn_setTextClick(Sender: TObject);
var sEditValue : string; begin sEditValue := ed_text.text; // Einloggen AttachThreadInput( Application.Handle, extWindowsHandle, true ); // Text zum Objektes schreiben PostMessage(extWindowsHandle, WM_SETTEXT, 0, Integer(Pchar(sEditValue))); // Auslogen AttachThreadInput( Application.Handle, extWindowsHandle, false ); end; :gruebel: |
Re: Tastaturkommandos an ein Handle senden (Remote)
Es ist wichtig, dass das Window, welches den Tastendruck empfängt, den Focus hat! Deswegen kannst du dein altes Script mit Sendmessage verwenden, aber du musst noch den focus setzen:
Delphi-Quellcode:
Du musst aber auch das richtige ChildWindow haben :-D .
sendmessage(extWindowHandle,WM_SetFocus,0,0);
sendmessage(extWindowHandle,WM_Char,iSendKeyCode,0); |
Re: Tastaturkommandos an ein Handle senden (Remote)
Das Senden der Taste klappt ja, nur das Senden von Text nicht.
Aber da es ein anderes Thema ist mache ich dafür einen neuen Thread auf. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz