![]() |
Tastendruck an bestimmtes Programm senden...
Hey Leutz.
Habe folgendes Problem, und zwar: will ich mit einem Timer immer nach einer gewissen zeit ein programm starten, an welches dann nach 1 sekunde ein tastendruck (in diesem fall 'enter') gesendet wird habe bis jetzt folgendes:
Delphi-Quellcode:
das funktioniert auch soweit, weil sich das programm in den vordergrund setzt, das funzt alles allerdings auch nur, wenn ich kein anderes Fenster in den vordergrund setze nachdem das programm gestartet wurde
keybd_event(VK_RETURN, 0, 0, 0); //drücken
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0); //loslassen allerdings will ich, dass das erwähnte programm auch beendet wird, wenn ich z.B. im Fullscreen etwas zocke das soll also alles im hintergrund ablaufen ich wette, dass einer von euch ne möglichkeit kennt sowas hinzubekommen ;) |
Re: Tastendruck an bestimmtes Programm senden...
Hi
Klar, darauf wette ich auch.... Gruß oldmax |
Re: Tastendruck an bestimmtes Programm senden...
Was bewirkt denn das Drücken der Enter-Taste im fremden Programm?
Evtl könntest du mit PostMessage eine Enter Nachricht ans Fenster senden. |
Re: Tastendruck an bestimmtes Programm senden...
hab es geschafft
hab diesmal doppelt so lange gegoogelt und n bisl rumprobiert:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var hMainWnd: HWND; begin winexec('C:\DefragMem.exe', SW_MINIMIZE); sleep(3000); hMainWnd := FindWindow(nil, Pchar('C:\DefragMem.exe')); SendMessage(hMainWnd, WM_CHAR, Ord(VK_RETURN), 0); end; Zitat:
trotzdem danke für eure mühe :hello: :dance: |
Re: Tastendruck an bestimmtes Programm senden...
Schau dir am besten mal ShellExecute bzw. CreateProcess an. Wenn du einen Blick ins MSDN wirfst zu winexec wirst du einen Hinweis finden das die Funktion veraltet ist. Es kann also passieren das bei einer der nächsten Windowsfunktionen dein Programm nicht mehr funktioniert weil die Funktion weg rationalisiert wurde.
|
Re: Tastendruck an bestimmtes Programm senden...
Hättest du auch einfach mit der Unit SndKey32.pas machen können :-D
|
Re: Tastendruck an bestimmtes Programm senden...
Zitat:
|
Re: Tastendruck an bestimmtes Programm senden...
Und warum schickst du dann nicht einfach die Nachricht WM_CLOSE an das betrffende Fenster?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 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 by Thomas Breitkreuz