AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Tastendruck an bestimmtes Programm senden...

Ein Thema von bob_aus_der_flasche · begonnen am 25. Okt 2008 · letzter Beitrag vom 3. Nov 2008
Antwort Antwort
bob_aus_der_flasche

Registriert seit: 13. Jan 2008
15 Beiträge
 
#1

Tastendruck an bestimmtes Programm senden...

  Alt 25. Okt 2008, 22:40
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:
keybd_event(VK_RETURN, 0, 0, 0); //drücken
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0); //loslassen
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


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
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#2

Re: Tastendruck an bestimmtes Programm senden...

  Alt 26. Okt 2008, 00:38
Hi
Klar, darauf wette ich auch....
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Tastendruck an bestimmtes Programm senden...

  Alt 26. Okt 2008, 00:41
Was bewirkt denn das Drücken der Enter-Taste im fremden Programm?

Evtl könntest du mit PostMessage eine Enter Nachricht ans Fenster senden.
Thomas
  Mit Zitat antworten Zitat
bob_aus_der_flasche

Registriert seit: 13. Jan 2008
15 Beiträge
 
#4

Re: Tastendruck an bestimmtes Programm senden...

  Alt 26. Okt 2008, 04:05
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 von toms:
Was bewirkt denn das Drücken der Enter-Taste im fremden Programm?
mit dem "Enter"-Druck wird das programm geschloßen

trotzdem danke für eure mühe
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Tastendruck an bestimmtes Programm senden...

  Alt 26. Okt 2008, 08:59
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
n1ghtSurfer

Registriert seit: 2. Mai 2008
14 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Tastendruck an bestimmtes Programm senden...

  Alt 2. Nov 2008, 13:40
Hättest du auch einfach mit der Unit SndKey32.pas machen können
Was soll ich denn mit einer Signatur?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7

Re: Tastendruck an bestimmtes Programm senden...

  Alt 3. Nov 2008, 10:26
Zitat von n1ghtSurfer:
Hättest du auch einfach mit der Unit SndKey32.pas machen können
SendMessage ist in diesem Fall den Vorzug zu geben.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Tastendruck an bestimmtes Programm senden...

  Alt 3. Nov 2008, 10:29
Und warum schickst du dann nicht einfach die Nachricht WM_CLOSE an das betrffende Fenster?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz