Mailinglisten-Archive |
Hi Andre,
Andre Steffens schrieb:
> $com = new COM("name.dll");
> $ergebnis = $com->function();
> $com->null;
Nein, Du brauchst die Progid der
Komponente (dh. des COM-Objektes).
Ein schönes Tool, um eine Übersicht über die
installierten Com-Objekte und Ihre
Methoden, Interfaces und Eigenschaften zu
bekommen ist der Scripting Spy von
Dr. Tobias Weltner, siehe
http://www.wininfo.de/ dazu.
Nach dem Start ist im ersten Reiter eine
Sammlung der verfügbarern Komponenten zu
finden, also der Dinge, die man mit
new COM(Progid) anfassen kann.
Man findet dort z.B. das "Verzeichnis"
InternetExplorer mit dem Inhalt
"Application" - die Progid davon ist
"InternetExplorer.Application", der
komplette Aufruf also
$ie = new COM("InternetExplorer.Application");
Über einen Klick auf "Details anzeigen"
kommt man auf den Reiter "Innenleben",
in dem alle Interfaces, deren Eigenschaften
und Methoden beschrieben werden.
Es können alle Interfaces transparent angesprochen
werden, eine Auswahl eines Interfaces ist nicht
nötig.
Will man den durch das new gestarteten
Internetexplorer auch sehen, so muss man
sich der Eigenschaft/Property "Visible" bedienen,
die z.B. im Defaultinterface IWebBrowser2
zu finden ist.
Mit
$ie->Visible=true;
wird er sichtbar geschaltet.
Jetzt möchte man damit aber auch noch eine
Webseite ansteuern, und braucht hierfuer die
Hilfe einer Methode, die im gleichen Interface
zu finden ist, nämlich z.B.
$ie->Navigate("http://www.thinkphp.de");
Damit wird der Browser zu der Url geschickt, und
beginnt diese zu laden, man könnte z.B. mit einer
while-schleife ueber die Property Busy
while ($ie->Busy) sleep(1);
warten, bis die Seite angefordert worden ist.
Ausschalten des ganzen geht über die Methode
$ie->Quit();
Die Installation des Scripting Spys lohnt
sich definitiv, er gibt einem alle benötigten
Informationen in die Hand.
Viele Grüße
- johann
ps: Windows ist nicht wirklich mein Heimatsystem,
und ich kenne mich nicht richtig damit aus.
Aber dieses COM/Dotnet-zeug ist bei PHP
real hochspannend, nur umständlich
dokumentiert.
Hat jemand eine Ahnung oder einen Link,
wie der VARIANT-Kram funktioniert ?
php::bar PHP Wiki - Listenarchive