Autor Beitrag
Hendrik
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: Fr 09.04.04 22:05 
Hi!


Ich möchte mittels meines Programmes simulieren, dass eine gewisse Taste (in diesem Fall die rechte Strg-Taste) für ca. 3 Sekunden als gedrückt gesetzt wird. Hintergrund ist es, dass ein anderes Programm (nicht von mir) erkennt, dass die Taste gedrückt ist und für diese Zeit sendet.

Ich habe bereits überall danach gesucht, habe aber nichts gefunden, was funzt... Könnt ihr mir da weiterhelfen?


Gruß und frohe Ostern
Hendrik

Moderiert von user profile iconMotzi: Topic Verschoben
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Sa 10.04.04 14:50 
SendKeys ist das, was Du suchst. Damit kann man Tastendrücke und Mausklicks systemweit oder auf ein Programm bestimmt (per Fensterhandle) simulieren.

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
Hendrik Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: Mo 12.04.04 18:46 
Wie würde das dann weiter aussehen?
toms
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1099
Erhaltene Danke: 2



BeitragVerfasst: Mo 12.04.04 18:48 
Suche mal auf deiner Delphi-CD nach der SendKeys Unit!
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 12.04.04 19:25 
Sicher dass die auf der Delphi-CD ist?

www.delphi-forum.de/...ic.php?t=17038#99159
andy09071978
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33

Win XP, Win 2000
D7 Prof
BeitragVerfasst: Di 13.04.04 10:56 
so tuts:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure ControlEin;
var
  Scan: SHORT;
begin
  Scan := MapVirtualKey(VK_CONTROL, 0);

  //TASTE gedrückt halten
  keybd_event(VK_CONTROL, Scan, 0, 0);

  //zB: 5 sec warten
  Sleep(5000);

  //TASTE loslassen
  keybd_event(VK_CONTROL, Scan, KEYEVENTF_KEYUP, 0);
end;


Gruß
Hendrik Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: Mi 14.04.04 18:06 
@ andy


Das funzt leider nicht... :? Das Programm erkennt den Tastendruck nicht..
andy09071978
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33

Win XP, Win 2000
D7 Prof
BeitragVerfasst: Do 15.04.04 07:48 
hmm, komisch, bei mir gehts ...
Jede andere Anwendung registriert damit, dass die Strg-Taste gedrückt wurde:

ausblenden Delphi-Quelltext
1:
2:
  //simuliert TASTE gedrückt halten:
  keybd_event(VK_CONTROL, Scan, 0, 0);


Dies kann ziemlich nervig sein, kann aber durch einmaliges manuelles Drückender Strg-Taste wieder aufgehoben werden, oder halt durch:

ausblenden Delphi-Quelltext
1:
2:
  //simuliert TASTE drücken und loslassen:
  keybd_event(VK_CONTROL, Scan, KEYEVENTF_KEYUP, 0);



Was hast Du denn für eine Delphi-Version ?

Gruß
Hendrik Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: Do 15.04.04 10:29 
Hi!


Ich habe D 3...