Wenn doch die Bedienung von WinSpy nicht so elend kompliziert wäre...
Es folgt ein Beispiel für das Starten und Beenden eines Programms.
Mit einem Beispiel für ein Programm, das sich nur im Tray zeigt
Es heißt bei mir "K:\StartPortableApps.exe"
1. "Auszuspionierendes Programm" starten
2. WinSpy starten
In WinSpy:
1. Anzeigen/Fenster
2. rechts unten Haken rein bei "unsichtbare Fenster"
In der Spalte mit der Überschrift "Fenster Titel" das gesuchte Programm EINMAL anklicken/markieren.
Dann (in Winspy!) auf den Befehl "Ansicht>Objekt Inspector" (der sogar doppelt falschgeschrieben ist) klicken.
Dort sieht man dann (als "Caption/Text"), wonach FindWindow im eigenen Delphi-Programm ggfs. suchen muss...
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin
ShellExecute(0, 'open', 'k:\startportableapps.exe', nil, nil, sw_show);
end;
procedure TForm1.Button4Click(Sender: TObject);
var
Gefunden: Hwnd;
begin
Gefunden := Findwindow(nil, 'PortableApps.com Platform');
if Gefunden <> 0 then
PostMessage(Gefunden, wm_syscommand, sc_close, 0)
else
MessageBox(0, '"Gefunden" nicht gefunden ;-)', 'Fehler', mb_Ok or
mb_IconExclamation or mb_DefButton1);
end;
@DeddyH post#36
Für die drei Meter zum nächsten Zigarettenautomaten lässt Du Dir sicher auch die Airforce One von Obama einfliegen, oder?
Deine Brutaloholzhammerlösung funktioniert natürlich nicht mit "StartPortableApps.exe" (< ist nämlich nur ein Starter).
LG und
vergessen
Edit hat die Delphi-Tags nachträglich von Hand dazugetextet. Von wegen Markieren und auf ein Symbol klicken...