(06.01.04 05:45)

Gestern hat mich ein guter Freund (und Nicht-Softwareentwickler) angerufen und mich verzweifelt um Hilfe gebeten. Sein Problem: Wie kann ich per Programm ein anderes Programm unter Windows beenden.

Ich habe ihm auf die schnelle eine kleine Konsolenanwendung geschrieben, die das erledigt:

program AppShutDown;
{$APPTYPE CONSOLE}
uses
  windows, messages;
var
  H: HWND;
  AppName: string;
begin
  if ParamCount = 1 then begin
    AppName := ParamStr(1);
    H := FindWindow(nil, PAnsiChar(AppName));
    if H <> 0 then PostMessage(H, WM_CLOSE, 0, 0);
  end;
end.

Als ob die Entwickler von Windows es geahnt hätten, existiert die Möglichkeit, über FindWindow und das Posten einer entsprechenden Botschaft, eine andere Anwendung zu beenden.

Das kleine Programm ist weder besonders originell noch besonders schwierig. Bemerkenswert scheint mir, dass es anscheinend nötig ist, solche Programme überhaupt schreiben zu müssen. Im Falle meines Freundes ist das Problem auf die Temperamente zweier Programmierer von zwei Softwarefirmen zurück zu führen, die miteinander reden müssten, um das wirkliche Problem zu lösen, dass darin besteht, eine gemeinsame Schnittstelle zu entwerfen, damit zwei Programme geordent miteinander kommunizieren können. Eigentlich keine grosse Sache, möchte man meinen. Doch bis jetzt hat das nicht geklappt. Und da mein Freund eine Lösung brauchte, habe ich ihm geholfen, Symptombekempfängung zu betreiben. Wie leider allzu oft in unserer Branche.

Das sollte uns wirklich nachdenklich stimmen.

-nemo :-)

Zugriffe heute: 1 - gesamt: 3892.




Goodbye Office Jonglieren

Druckbare Version