![]() |
Re: Tastendruck an ein Programm schicken
sry ich verstehe nur bahnhof x_X
also als erstes hohle ich mir das Handel mit
Delphi-Quellcode:
das klappt auch, aber dann will ich eine nachricht dahin schicken das gerade 'STRG' und 'A' im notepad gedrückt wurde.
window := FindWindow(NIL,'Notepad');
das weiß ich nicht wie es geht, und mit den ganzen suchergebnissen kann ich nichts anfangen... nur das es irgendie mit
Delphi-Quellcode:
geht >_<
SendMessage(window,"ne nachricht, ka welche",NIL,NIL);
|
Re: Tastendruck an ein Programm schicken
Delphi-Quellcode:
Das bringt Dir aber noch nix, wenn Du das verwendest mußt Du erst nach dem Handle des Memos im Notepad suchen.
SendMessage(Handle, WM_SETTEXT, 0, LongInt(PChar('Bla bla bla')));
Und window := FindWindow(NIL,'Notepad'); gibt bei mir 0 zurück, Window:=FindWindow(nil, 'Unbenannt - Editor'); findet eher was. Beispielsweise würde das gehen:
Delphi-Quellcode:
var Window:THandle;
begin Window:=FindWindow(nil, 'Unbenannt - Editor'); Window:=FindWindowEx(Window, 0, nil, nil); SendMessage(Window, WM_SETTEXT, 0, LongInt(PChar('Bla bla bla'))); |
Re: Tastendruck an ein Programm schicken
Na siehst DU,
mit ein bissel Eigeninitiative wird einem auch weitergeholfen. Hier ein kommentiertes Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Handle: HWND; //Unser Fensterhandle i: Integer; //Unsere Laufvariable für die For-Schleife const sTEXT: String = 'Eine Nachricht. Keine Ahnung, welche'; //Unser Beispieltext begin Handle := FindWindow('Notepad', nil); //Wir suchen das Handle des Notepads if Handle <> 0 then //wenn wir es gefunden haben Handle := FindWindowEx(Handle, 0, 'Edit', nil); //dann suchen wir das Handle des Editcontrols innerhalb des Notepads - denn dahin soll der Text gehen if Handle <> 0 then //wenn wir es gefunden haben for i := 1 to Length(sTEXT) do begin //gehen wir in einer Schleife den zu sendenden Text Zeichen für Zeichen durch und schicken ihn ans Edit-Feld SendMessage(Handle, WM_CHAR, Word(sTEXT[i]), 0); end; end; |
Re: Tastendruck an ein Programm schicken
ihr seit ja alle richtig nett und so und lieb euch ja auch aber was ihr da schreibt bringt mir 0 >_<
das mit dem Notpad war nur nen Beispiel ... will an ein Prgramm schicken das die tasten STRG und A gedrückt wurden (zuerst STRG dann A, dann wird A losgelassen , dann STRG) so will ich das machen ^^ und keinen text in nen Notepad schreiben |
Re: Tastendruck an ein Programm schicken
Die Beiträge von Sunlight7 und mir waren auch nur Beispiele.
Es gibt noch x andere Wege, die alle zum gleichen Ergebnis führen, und die auch alle mit anderen Fenstern funktionieren. Ausgangspunkt ist halt immer der, dass Du das Handle des Fensters findest, an welches Du Deine Tasten senden möchtest. Und das machst Du mit FindWindow bzw. FindWindowEx. |
Re: Tastendruck an ein Programm schicken
Gibt es dafür einen Menüeintrag? Wenn ja, würde ich an den Menüeintrag eine Button-Click / WM_COMMAND Nachricht schicken:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:20 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