A
Hallo,
ich arbeite gerade an einem ähnlichen Problem. Ich will ein Programm schreiben, dass bei Google Earth eine Tour abspiel. Dabei sol alle paar Millisekunden auf Bild kopieren geklickt werden, das ganze dann in Paint eingefügt werden und anschließend gespeichert werden.
Somit erhält man dann von der Tour viele einzelen Bilder, die man hinterher in einem Videoprogramm zusammenfügen kann.
Dafür habe ich erstmal ein kleines Testprogramm angefangen, weil ich bei diesen Dingen bisher kaum Erfahrung habe.
HWND hwnd = FindWindow(NULL, _T("Unbenannt - Editor"));
SetForegroundWindow(hwnd);
keybd_event(VK_CONTROL,0,0,0);
keybd_event('S',0,0,0);
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
keybd_event('S',0,KEYEVENTF_KEYUP,0);
keybd_event('H',0,0,0);
keybd_event('H',0,KEYEVENTF_KEYUP,0);
keybd_event(0x2E,0,0,0);
keybd_event(0x2E,0,KEYEVENTF_KEYUP,0);
keybd_event('T',0,0,0);
keybd_event('T',0,KEYEVENTF_KEYUP,0);
keybd_event('X',0,0,0);
keybd_event('X',0,KEYEVENTF_KEYUP,0);
keybd_event('T',0,0,0);
keybd_event('T',0,KEYEVENTF_KEYUP,0);
Dieser Quellcode soll einfach mal versuchen, die Daten, die im Editor stehen zu speichern.
Leider klappt das aber nur manchmal. Häufig öffnet sich der Speichern unter Dialog gar nicht. Zudem gibt es immer Probleme, wenn es ein Popup eines anderen Programms gibt, z.B. vom Virenprogramm. Dann hat er anscheinen sofort den Fokus verloren und alle Eingaben gehen daneben....
Ist SendInput dagegen immuner?
Ein weiteres Problem ist, dass es in Google Earth z.B. die Play-Taste gibt, womit man die Tour abspielen kann oder pausieren kann. Mit PostMessage hätte ich diesen Button doch direkt adressieren können, (über Spy++ kann man ja die Namen herausfinden), aber wie geht das denn jetzt bei keybd_event oder SendInput?
Noch eine letzte Frage :
Bei Paint gibt es nur einen Shortcut für "Speichern", was muss ich denn machen, wenn ich will, dass mein Programm "Speichern unter" auswählt?
Auf jeden Fall vielen Dank für eine Antwort.
Über ein kleines Codebeispiel würde ich mich natürlich auch sehr freuen, da ich bisher in diesem Bereich noch nicht programmier habe
Viele Grüße
Andreas