Welenreiter Geschrieben 16. Dezember 2003 Geschrieben 16. Dezember 2003 Hallo Leute, ich öffne über eine WinApi aus meiner Application heraus MS Word. Gibt es auch ein API mit dem ich es wieder schließen kann ? Zitieren
Klotzkopp Geschrieben 16. Dezember 2003 Geschrieben 16. Dezember 2003 Wie öffnest du es denn? Bei CreateProcess bekommst du ein HANDLE, wenn du die Automatisierungsschnittstelle benutzt, hast du einen Dispatch-Zeiger. Ansonsten: Anwendungsfenster suchen und WM_CLOSE hinschicken. Zitieren
Welenreiter Geschrieben 16. Dezember 2003 Autor Geschrieben 16. Dezember 2003 Original geschrieben von Klotzkopp Ansonsten: Anwendungsfenster suchen und WM_CLOSE hinschicken. Ich öffne es mit WinExec hast du zu dem Anwendungsfenster suche und WM_close vielleicht ein Codebeispiel ?? Zitieren
Welenreiter Geschrieben 18. Dezember 2003 Autor Geschrieben 18. Dezember 2003 Kann mir einer ein Beispiel für den CLOSE Befehl schicken ?? Ich kriege das ürgendie nicht hin. Es Funktioniert bei mir einfach nicht. Zitieren
Klotzkopp Geschrieben 18. Dezember 2003 Geschrieben 18. Dezember 2003 "Funktioniert nicht" ist keine Fehlerbeschreibung. Zeig uns deinen Code, und sag genau, was nicht funktioniert (Compilerfehler, Laufzeitfehler, etc). Zitieren
Welenreiter Geschrieben 18. Dezember 2003 Autor Geschrieben 18. Dezember 2003 Original geschrieben von Klotzkopp Wie öffnest du es denn? Bei CreateProcess bekommst du ein HANDLE, wenn du die Automatisierungsschnittstelle benutzt, hast du einen Dispatch-Zeiger. Ansonsten: Anwendungsfenster suchen und WM_CLOSE hinschicken. Ich mache keinen Create Prozess ich starte das Fenster mit dem WinExec API. Mein Problem ist ich weiss nicht was GENAU ich Programmieren muss um es wieder zu schließen. Ich brauchte dafür ein genaues Beispiel. Zum Programmieren selbst benutze ich Advantage Plex mit einem C++ Compiler. Da ich da keinen C++ Code habe kann ich auch keinen Posten. Zitieren
Klotzkopp Geschrieben 18. Dezember 2003 Geschrieben 18. Dezember 2003 Original geschrieben von Welenreiter Ich brauchte dafür ein genaues Beispiel. ... Da ich da keinen C++ Code habe kann ich auch keinen Posten. Das verstehe ich nicht. Was bringt dir ein genaues C++-Beispiel, wenn du gar keinen C++-Code hast? Zitieren
Welenreiter Geschrieben 18. Dezember 2003 Autor Geschrieben 18. Dezember 2003 Mit folgendem Code versuche ich das Fenster zu schließen #include <winuser.h> LRESULT SendMessage(&(1:),"WM_Close",0,0); es funktioniert aber nicht. Wie kann ich ihm sagen das genau dass von mir geöffnete Word Fenster wieder geschlossen werden soll ? Zitieren
Klotzkopp Geschrieben 18. Dezember 2003 Geschrieben 18. Dezember 2003 Indem du SendMessage als ersten Parameter das Fensterhandle des Word-Fensters übergibst. Das musst du natürlich erst mal mit FindWindow(Ex) rausfinden. Der zweite Parameter muss WM_CLOSE sein, nicht "WM_Close". Außerdem sieht das nicht nach einem Aufruf aus. Zitieren
Welenreiter Geschrieben 18. Dezember 2003 Autor Geschrieben 18. Dezember 2003 Original geschrieben von Klotzkopp Indem du SendMessage als ersten Parameter das Fensterhandle des Word-Fensters übergibst. Das musst du natürlich erst mal mit FindWindow(Ex) rausfinden. Wie benutze ich jetzt die FindWindow(ex) Funktion genau ?? Kannst du mir dafür ein kurtzes Code beispiel schicken ? Zitieren
Klotzkopp Geschrieben 18. Dezember 2003 Geschrieben 18. Dezember 2003 Original geschrieben von Welenreiter Wie benutze ich jetzt die FindWindow(ex) Funktion genau ?? Wenn man sich die Zeitspanne zwischen den Beiträgen ansieht, hast du nicht versucht, dir diese Information selbst zu beschaffen. Kannst du mir dafür ein kurtzes Code beispiel schicken ? Im Allgemeinen erhöht sich die Hilfsbereitschaft der Anderen, wenn man ein wenig Eigenleistung erkennen lässt. Ich helfe dir gern bei Problemen, aber für so was habe ich keine Zeit. Zitieren
MeisterB Geschrieben 18. Dezember 2003 Geschrieben 18. Dezember 2003 Eigentlich is es ganz einfach man muss nur wissen wie: Finde Handle durch Fensterbeschriftung: HWND HandleZuWord=FindWindow(0,"Dokument1 - Microsoft Word"); Finde Handle durch Klassenname (z.B. mit Spy++ ermitteln): HWND HandleZuWord=FindWindow("OpusApp",0); Beenden kannst du es so PostMessage(HandleZuWord,WM_CLOSE,0,0); Oder du killst es: DWORD ProzessID; GetWindowThreadProcessId(HandleZuWord,&ProzessID); HWND HandleZumToeten=OpenProcess(PROCESS_ALL_ACCESS, false, ProzessID); HandleZumToeten= TerminateProcess(HandleZumToeten, 0); CloseHandle(HandleZumToeten); Falls du noch irgendwelche Fragen hast einfach posten! Zitieren
bigpoint Geschrieben 19. Dezember 2003 Geschrieben 19. Dezember 2003 Original geschrieben von MeisterB Eigentlich is es ganz einfach man muss nur wissen wie: wie alles im Leben Zitieren
MeisterB Geschrieben 19. Dezember 2003 Geschrieben 19. Dezember 2003 Wie kann ich eigentlich für einen TExplorerButton einen Click per API ausführen? das normale PostMessage(HandleDazu,WM_CLICK,0,0); funktioniert hier nicht! Zitieren
Klotzkopp Geschrieben 19. Dezember 2003 Geschrieben 19. Dezember 2003 Gibt es WM_CLICK überhaupt? IIRC heißt die Nachricht BM_CLICK... Zitieren
MeisterB Geschrieben 29. Dezember 2003 Geschrieben 29. Dezember 2003 Ich meinte auch BM_CLICK! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.