![]() |
Tastendruck an ein Programm schicken
hey leutz,
habe ma ne frage, wie kann ich einen Tastendruck Simulation an ein Programm schicken? Also, mein Programm soll z.b. nach dem Window mit dem namen "Notepad" suchen und da dann hinschicken das die Tasten "h", "a", "l","l","o" gedrückt wurden. Sry bin ein Delphi noob und erst recht winapi noob >_< Mfg Auron |
Re: Tastendruck an ein Programm schicken
|
Re: Tastendruck an ein Programm schicken
lol sag mir ma bitte wo du da was findest was meine frage beantwortet xD
Aber trotzdem danke |
Re: Tastendruck an ein Programm schicken
Hast Du Dir die Titel der gefundenen Beiträge durchgelesen? Anscheinend nicht.
|
Re: Tastendruck an ein Programm schicken
Zitat:
![]() ![]() ![]() Wie Du Notepad findest: ![]() |
Re: Tastendruck an ein Programm schicken
danke für die antworten ^^ aber irgentwie bekomme ich das mit den Tastensenden nicht hin /=
ich will halt einen Emulierten Tasten Druck 'A' an ein Programm schicken, und nicht einfach nur ein A ans Notepad |
Re: Tastendruck an ein Programm schicken
Zitat:
Die Logik, das Notepad-Fenster mit der FindWindow-Funktion zu ermitteln und dann Tastencodes dort hin zu senden, lässt sich auf jedes x-beliebige andere Fenster portieren. |
Re: Tastendruck an ein Programm schicken
das problem ist ja, das ich nicht kapiere wie das gehen soll /=
|
Re: Tastendruck an ein Programm schicken
Zeig mal den Code, den Du verwendest
|
Re: Tastendruck an ein Programm schicken
Besser wäre wohl
![]() |
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:14 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