Autor |
Beitrag |
DaGreg
Hält's aus hier
Beiträge: 8
|
Verfasst: Fr 01.11.02 19:36
also.. ich habe ein kleines Programm gemacht das eine Taste drückt und dann klicken soll..das Problem ist nun.. in anderen Programme ist der klick sehr unregelmäßig.. klickt nur sehr selten..könnte mir vielleicht jemand sagen woran das liegt ?
(Teil des Programmcodes.. wird durch ein timer wiederhohlt alle 1000 ms und wird beim klick auf eine Taste "timer1.enabled:=true;")
Quelltext 1: 2: 3: 4: 5:
| Keybd_Event(vk_F7,0,0,0); Keybd_Event(vk_F7,0,KEYEVENTF_KEYUP,0); sleep(500); mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); |
MfG
(02.11.02 16:45 Tino) Code-Tags hinzugefügt & Topic verschoben.
|
|
Raphael82
      
Beiträge: 67
|
Verfasst: Sa 02.11.02 11:30
Wenn man dir helfen soll, dann solltest du uns etwas genauer mitteilen was dein Problem ist, was genau nicht funktioniert und was du mit dem Code erreichen willst. Verschwommene Bezeichnungen wie in deinem Posting helfen einem nicht besonders weiter.
Bitte poste nochmal etwas genauer,
Raphael
_________________ Share your knowledge to receive perfection!
|
|
DaGreg 
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 02.11.02 15:21
also..
ich will ein Programm machen was 1x pro sekunde eine Taste drückt und dann einen linken mausklick simuliert.
ich habe den code für den klick und tastendruck (siehe oben) in einen timer gepackt und wiederhohle ihn so jede sekunde..auf der Windows oberfläche läuft es gut nur wenn ich dann ein Programm öffne klickt er unregelmäßig und nicht jede sekunde
vielleicht könnte mir jemand sagen wie man auf anderem wege ein tastendruck/klick an ein Programm senden kann..
Danke
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 02.11.02 16:21
Argh, schon wieder so einer der mit Programmcode ein anderes programm so "steuern" will, wie als wenn er selber davor sitzt.
Lies dir mal meinen Beitrag durch: www.auq.de/viewtopic.php?t=3687 , dann wird viles einfacherher.
|
|
DaGreg 
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 02.11.02 17:12
ich hab noch nich so ganz den durchblick *g*
also ich soll keinen klick simulieren sondern dem Programm wo der klick automatisch ausgeführt werden soll über windows die msg schicken die es auch bei einem klick bekommen würde .. oder ?!
dann meine frage: welche msg ist das  ?
danke .. ich weis is immer schwer nem nub was zu erklären *g*
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 02.11.02 17:36
So in etwa. Diese Code klickt auf einen Button mit dem Text "Buttonn1" welcher sich auf eienm Formular mit der caption "Formular1" sich befindet:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button1Click(Sender: TObject); var hWnd, hButton: Cardinal; begin hWnd := FindWindow(nil, 'Form1'); hButton := FindWindowEx(hWnd, 0, nil, 'Button1'); SendMessage(hButton, BM_CLICK, 0, 0); ShowMessage('Button geklickt'); end; |
|
|
DaGreg 
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 02.11.02 18:18
is nett.. aber irgentwie hilft mir das nicht weiter
ich will nicht einen button in einem anderen Program klicken..
sondern mit einem timer jede sekunde einen klick machen dort wo grad der mauszeiger ist..
also ich versuch ma den programmablauf darzustellen:
1. Fenster finden an das der klick gesendet werden soll
2.ein timer wird aktiviert der jede sekunde einen mausklick an das Fenster sendet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 02.11.02 18:19
DaGreg hat folgendes geschrieben: | also..
ich will ein Programm machen was 1x pro sekunde eine Taste drückt und dann einen linken mausklick simuliert.
ich habe den code für den klick und tastendruck (siehe oben) in einen timer gepackt und wiederhohle ihn so jede sekunde..auf der Windows oberfläche läuft es gut nur wenn ich dann ein Programm öffne klickt er unregelmäßig und nicht jede sekunde
vielleicht könnte mir jemand sagen wie man auf anderem wege ein tastendruck/klick an ein Programm senden kann..
Danke |
Windows ist ein Multitasking Betriebssystem, es dürfte auch noch was anderes ztu tun haben. Damit ließen sich die Unregelmäßigkeiten erklären.
|
|
DaGreg 
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 02.11.02 18:36
hm meinst nich das es jede sekunde ma nen klick machen kann  ?
also ich finde jetzt mit FindWindow das Fenster..
wie kann ich diesem Fenster nun einen klick senden da wo sich der cursor befindet ?
Zuletzt bearbeitet von DaGreg am Sa 02.11.02 18:40, insgesamt 1-mal bearbeitet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 02.11.02 18:39
Ich weiß nicht. Win9x hat eine mindest Auflösung von 50ms und wenn das System noch was anderes zu tun hat, könnte es schon sein sein, dass es nicht klappt.
Desweiteren würde ich eventuell einen Thread dafür machen. Timer belasten das System doch sehr.
|
|
DaGreg 
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 02.11.02 18:42
 weis leider nicht wie das geht..
also wenn der button geklickt wird..
FindWindow wird das fenster gefunden
wie kann ich nun einen klick senden an die stelle wo sich der cursor befindet ?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 02.11.02 18:54
Also was willst du jetzt machen: Einen Button klicken oder wirklich nur einen Mausklick simulieren?
|
|
DaGreg 
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 02.11.02 18:55
ich will wirklich nur einen mausklick simulieren
an der stelle wo sich der cursor grade befindet..
|
|