Programm fernsteuern mit Konsolenanwendung

Hi,
ich arbeite mit DEV C++ mit Windows 2000Pro SP4 version 5.0.2195 und möchte nun mit Hilfe einer Konolenanwendung ein anderes Programm fernsteuern…
Ich dach te dabei sofort an

HWND hasys = ::FindWindow(„CabinetWClass“,„Systemsteuerung“);
::SendMessage(hasys, WM_DESTROY, 0, 0);

womit Windows Befehle wie beenden sendet. Leider habe ich bei der Sache einige Probleme, denn ich kann leider keine anderen Befehle senden und ich weiß0 leider auch nicht, wie ich diese gesendeten Befehle auslesen könnte, welche ich an mein Programm sende.

Oder hat jamand eine andere sinnige Idee, womit ich dieses erledigen kann, ohne das schreiben und lesen einer textdatei verwenden zu müssen??!

Ach, es handelt sich dabei um den selben rechner, also keine Sendungen über Netzerk oder Internet…

Vielen DANK!!

Hallo Schnepel,

SendMessage(hasys, WM_DESTROY, 0, 0);
…ich kann leider keine anderen Befehle senden

Du kannst senden, was Du willst. Statt der „WM_DESTROY“ gibst Du eben eine andere Nachricht an, z.B. WM_PAINT, oder die Texteingabe mit WM_CHAR automatisieren (spart doch einiges an Muehe, :wink:).
Die „SendMessage“ jetzt im MSDN anschauen. Das gibt es bei Dev-C++ nicht, geht aber hier:
http://www.microsoft.com
(in der Suchmaske)

und ich weiß0 leider auch nicht, wie ich diese gesendeten Befehle :auslesen könnte, welche ich an mein Programm sende.

In der Callback, sieht z.B. so aus (der Name „WndProc“ ist beliebig, muss aber in der WinMain() eingetragen werden):

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 PAINTSTRUCT ps;

 switch (message)
 {
 case WM\_DESTROY: // tu was
 break;
 case WM\_CHAR: // tu was
 break;
 case WM\_PAINT:
 BeginPaint(hWnd, &ps); 
 drawIt();
 EndPaint(hWnd, &ps);
 break;
 // wenn wir sonst nichts machen, dann eben das:
 default:
 return DefWindowProc( hWnd, message, wParam, lParam ); 
 }

 return 0;
}

…ohne das schreiben und lesen einer textdatei verwenden zu :müssen??!

Brauchst Du nicht. Du kannst halt SendMessage() gerne von der Console aufrufen, der Empfaenger muss aber ein WIN32-Proggy sein, Console-Proggies kriegen keine Nachrichten von WIN.
Guck Dir die Beispiele von Dev-C++ an, gibt es für WIN32 auch. Da findest Du wohl auch eine callback, ähnlich wie oben.

lg
Martin

WM_PAINT nicht!
Tschuldigung:

Statt der „WM_DESTROY“ gibst
Du eben eine andere Nachricht an, z.B. WM_PAINT,

Die WM_PAINT sollte man nicht direkt verschicken, sondern besser InvalidateRect() für das jeweilige HWND aufrufen, hab ich vergessen.
WIN schickt dann selbst die WM_PAINT an das jeweilige Fenster.

lg
Martin