# [C++] Andere Programme steuern



## ben222 (9. Juli 2005)

Hi Leute,

  ich bin C++ Anfänger (also bitte für Doofe erklären) und hab folgendes Problem:
 ich möchte 2 andere Programme zur Automatisierung steuern, die auf demselben Rechner laufen, die ich aber nicht selbst programmiert hab (nur als blackbox (.exe) vorhanden). Es soll auch nichts kompliziertes sein, sondern lediglich Standard-Befehle und Meldungen gesendet werden wie "Speichern" oder "Exit". Derzeit mach ich das Ganze über VBScript was sehr einfach ist, allerdings auch unschön und ein Problem gibt, wenn mir mal ein anderes Programm mitten in einem Vorgang den Focus klaut.

 Deshalb dachte ich, man könnte evtl. Meldungen und Befehle wie ID_FILE_SAVE oder ID_APP_EXIT an das Fensterhandles der anderen Programme senden. Doch geht das so einfach?
  - Muss das andere Programm bestimmte Voraussetzungen erfüllen (bestimmte public Schnittstellen)?
 - Falls es geht, wie komm ich an das Fensterhandle des anderen Programms? Hab bisher nur mit Handles aus meinem eigenen Programm gearbeitet.

 [Beide Programme haben Fenster (müssten doch dann eigentlich auch von CWnd abgeleitet sein?) und ich nutze z.Zt. C++.NET (MFC), könnte evtl. aber auch anderes nutzen.]

  Gruß, Benny


----------



## Flegmon (9. Juli 2005)

ben222 hat gesagt.:
			
		

> Deshalb dachte ich, man könnte evtl. Meldungen und Befehle wie ID_FILE_SAVE oder ID_APP_EXIT an das Fensterhandles der anderen Programme senden.



Wenn du die IDs kennst (sind ja Zahlen), dann geht das recht einfach

mit FindWindow bekommst du  das Fensterhandle (musst nur den Titel des Fensters kennen)

und mit SendMessage kannst du die Nachricht verschicken


----------



## ben222 (9. Juli 2005)

Hi Flegmon,

 FindWindow hatte mir gefehlt / kannte ich nicht. Danke schon mal! Werd's die Tage mal testen. Dann dürfte es ja eigentlich nicht mehr schwierig sein.


----------

