PowerPoint steuern
-
Hallo
Ich würde gerne diverse Programme (z.B. PowerPoint) von meinem C++ Programm aus steuern.
Ja! Ich habe schon die Suchfunktion benutzt.
Daher habe ich erfahren, dass ich mit SendMessage Anweisungen an das Handle des gewünschten Programmes weitergeben kann.
NUR. Weiss ich nicht, wie ich den Handle des Programmes herausfinden kann. Ich möchte zum Beispiel die Taste "Pfeil nach rechts" an meine PowerPoint Präsentation senden. Hätte jemand mir ein konkretes Beispiel und Hilfeleistung? Wäre toll, da ich schon länger am suchen bin...Zudem würde es mich interessieren, ob es möglich ist den Mauscursor selber zu positionieren/bewegen...
Ach ja: Ich arbeite mit BCB...
Merci
-
suche das das powerpoint animationsfenster (!!! nicht das normale 1powerpoint fenster) per find window. die genaue WindowClass usw bekommst du mit Spy++. kann dir grad die namen nicht genau sagen weil ich in der schule bin. und dann schickst die mittels SendMessage einfach WM_KEYDOWN messages an das window handle.
-
Danke
Ich habe jetzt WinID heruntergeladen, welches mir die Klasse (class) vom Programm angibt.
Zum testen möchte ich es mit meinem Firefox benützen.Also habe ich herausgefunden, dass die Firefox-Class "MozillaWindowClass" heisst.
So weise ich ein Handle zu:
HWND firefox;
firefox=FindWindow("MozillaWindowClass",0);und möchte dann das WM_KEYDOWN an das Handle schicken mit SendMessage:
SendMessage(firefox,WM_KEYDOWN,0,0);
Aber das funktioniert so leider nicht

-
du musst ja auch ncoh die taste übergeben, die gedrückt wird und wie oft usw... das steht alles in der MSDN:
wParam
Specifies the virtual-key code of the nonsystem key.
lParam
Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown in the following table.
0-15
Specifies the repeat count for the current message. The value is the number of times the keystroke is autorepeated as a result of the user holding down the key. If the keystroke is held long enough, multiple messages are sent. However, the repeat count is not cumulative.
16-23
Specifies the scan code. The value depends on the OEM.
24
Specifies whether the key is an extended key, such as the right-hand ALT and CTRL keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.
25-28
Reserved; do not use.
29
Specifies the context code. The value is always 0 for a WM_KEYDOWN message.
30
Specifies the previous key state. The value is 1 if the key is down before the message is sent, or it is zero if the key is up.
31
Specifies the transition state. The value is always zero for a WM_KEYDOWN message.
-
Super! Funktioniert alles genau so wie ich will... Danke!
Nun würde ich gerne noch eine weitere Funktion hinzufügen.
Wie man den Mauscursor bewegen kann habe ich auch herausbekommen...
Nun möchte ich eine Cursorsteuerung über RS232 machen. RS232 und so weiter klappt alles. Nur geht es jetzt noch um den Mausclick. Das geht ja dann auch mit Sendmessage, jedoch brauche ich den Handler, des mit dem Cursor fokussierten Bildteils... Gibt es da so eine art Focusfunktion?Merci