Hallo,
es gibt ja die Wunderbare Möglichkeit, Programme per
OLE/
COM fernzusteuern.
Dazu importiere ich die Typbibliothek, erstelle mein Objekt und mache da ein COxxx.Create.
Beispielsweise:
Delphi-Quellcode:
var iTunesApp: IiTunes;
{......}
procedure TMainForm.FormCreate(Sender: TObject);
begin
iTunesApp := COiTunesApp.Create; // Denkt euch den try..except block hier einfach.
end;
In meinem Falle also iTunes.
Jetzt gibt es aber zwei Möglichkeiten:
1. iTunes läuft bereits => Es wird einfach die "laufende Instanz" genommen.
2. iTunes läuft nicht => iTunes wird extra gestartet.
Kann ich irgendwie herausfinden ob iTunes vorher schon lief oder ob es durch "mein" .create jetzt extra gestartet wurde?
Wie gebe ich ein
COM-Object danach eigentlich wieder sauber frei?
Wenn ich das hier mache:
Delphi-Quellcode:
procedure TMainForm.FormDestroy(Sender: TObject);
begin
if iTunesApp <> nil then iTunesApp.Quit;
iTunesApp := nil;
end;
wird iTunes beendet. Das will ich aber nicht immer. Ich will eigentlich nur mein iTunesApp sauber entfernen, also die Verbindung zu iTunes lösen ohne iTunes zu beenden.
Danke für Hinweise!