php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 30-08-2002, 13:43
Op@ U.
 Junior Member
Links : Onlinestatus : Op@ U. ist offline
Registriert seit: Aug 2002
Ort: Good old Germany
Beiträge: 155
Op@ U. ist zur Zeit noch ein unbeschriebenes Blatt
Standard Componet Object Model & PHP

Hallo!
Ich habe ein Problem mit der COM-Schnittstelle.

Für alle die nicht wissen, was die COM-Schnittstelle ist:
Component Object Model, Microsofts Standard für Software-Komponenten, Basistechnik von Microsofts OLE. COM definiert unabhängig von einer Programmiersprache das Interface eines Software-Objekts und macht es für andere Programme zugänglich. Bei COM beschränkt sich dies auf einen Rechner, bei DCOM können auch Komponenten auf anderen Rechnern einbezogen werden. Das heisst, das zum Beispiel mit diesem PHP-Script Word gesteuert werden kann.

PHP-Code:
<? 
$word 
= new COM("word.application") or die ("Not available"); 
echo 
"Word, Version {$word->Version} geladen<BR>"
$word->Visible 1
$word->Documents->Add(); 
$word->Selection->TypeText("Wir schreiben in Word... "); 
$word->Documents[1]->SaveAs("Mit PHP generiert.doc"); 
$word->Quit(); 
?>
Nun aber zu meiner Frage:
$word = new COM("word.application")
Damit wird eine neue Klasse instanziert, mit welcher man über die ProgID "word" bequem das gleichnamige Programm steuern kann.
Weiterhin wäre es interessant zu erfahren, wie die ProgIDs oder CLSIDs zu anderen Programmen lauten. So zum Beispiel zum I-Net Explorer.

$word->Documents->Add(); Zum Beispiel öffnet dies ein neues Document in Word.
Wo bekomme ich nun mal eine Übersicht über mögliche Befehle, mit denen man andere Programme über die COM-Schnittstelle steuern kann.
Mit Zitat antworten
  #2 (permalink)  
Alt 31-08-2002, 18:38
beebob
 PHP Junior
Links : Onlinestatus : beebob ist offline
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 604
beebob ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Componet Object Model & PHP

Zitat:
Wo bekomme ich nun mal eine Übersicht über mögliche Befehle, mit denen man andere Programme über die COM-Schnittstelle steuern kann.
hmm, wohl ein generelles problem, bei closed source geschichten, irgendwas rauszukriegen, was sich ausserhalb der proprietären standards bewegt. ich kann mir zudem vorstellen, dass es ausserordentlich schwierig sein wird, represäntative spezifikationen zu bekommen, da einem gerne auch mal ein paar 'steinchen in den weg gelegt' werden können, wie dieser link untermauert:

http://msdn.microsoft.com/isapi/msdn...ecs/S1D137.htm

von den meisten projekten bei sourceforge kenne ich sowas nicht.

ich empfehle dir daher, falls es möglich ist, schnittstellen-kommunikation mit den tools des herstellers zu verwenden. z.b. statt php asp zu verwenden, wäre denkbar. aber dann darfst du dich wahrscheinlich mit anderen sachen rumschlagen ...

vielleicht kannst du ja einen umweg in php mit der java integration schaffen? java bietet, soweit ich weiss, gut dokumentierte apis, die das gleiche tun, wie die php-com lib. der nachteil wäre eine zusätzliche ausführungsschicht, was klar auf die performance drückt. allerdings tut das com ohnehin schon von sich aus.

hier der link zur java integration:
http://www.php.net/manual/en/ref.java.php


beebob
Mit Zitat antworten
  #3 (permalink)  
Alt 31-08-2002, 20:04
beebob
 PHP Junior
Links : Onlinestatus : beebob ist offline
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 604
beebob ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ps: hier noch ein link, wie man externe java libraries in php/java einbinden kann.

http://www.onlamp.com/pub/a/php/2001...av.html?page=2
Mit Zitat antworten
  #4 (permalink)  
Alt 01-09-2002, 09:38
Op@ U.
 Junior Member
Links : Onlinestatus : Op@ U. ist offline
Registriert seit: Aug 2002
Ort: Good old Germany
Beiträge: 155
Op@ U. ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Erstmal vielen Dank an Dich!
Das war die erste vernünftige Antwort, die ich bekommen habe. Und da hab ich schon in einigen Foren angefragt! Es scheihnt nicht viele zu geben, die sich damit auskennen.
Deine zwei Lösungansätze sind sicher richtig und würden schneller zum Ergebnis führen. Aber dafür müsste ich mir noch eine neue Prog-Sprache aneignen, da ich weder Java noch ASP mächtig bin. Also wäre für MICH dieser Weg sicher der komplizierteste.

Leider funzt dein Microsoft-Link nicht mehr?!? Es ist aber auch wirklich schwer, überhaupt an brauchbare Informationen zu kommen. Hab da im I-Net bis jetzt noch nichts gefunden.
Aber es muss doch generell auch mit PHP möglich sein, Windows-Programme über diese COM zu steuern. Wie das funzt hab ich auch schon verstanden (denke ich zumindest ).
Das einzige Problem ist, dass ich zum ersten nicht weiss wie die ProgId zum ansteuern eines Programms lautet (wo könnte man das ausfindig machen? Hab mal was gelesen, dass diese in der Registry vermerkt sein sollen??? ).
Und zum zweiten, wie die Befehle lauten, die dann solche Programme steuern.

Noch ne Frage: Es ist doch soweit ich weiss, garnicht möglich an den Source für diese COM-Schnittstelle zu kommen, weil dieser doch schon in binärer Form (wahrscheinlich als dll) vorliegt, oder?!?
Mit Zitat antworten
  #5 (permalink)  
Alt 01-09-2002, 11:50
Blaster
 PHP Junior
Links : Onlinestatus : Blaster ist offline
Registriert seit: Nov 2001
Ort: Köln
Beiträge: 970
Blaster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

also der Hauptgrund, warum Du in IT-orientierten Foren meist keine Komponetentechnologie-Kompetenzen findest, liegt im Anspruch und Anwendungsnutzen. Selbst Applikationsentwickler brauchen für den professionellen Einsatz von COM, DCOM, COM+, CORBA, RMI und EJB etwa 1-2 Jahre Einarbeitung (wenn sie gut sind).
Aber aufgrund von Samples, kannst Du die eine oder andere COM-Anbindung vielleicht umsetzen :

http://www.phpbuilder.com/columns/alain20001003.php3

COM ist ein Industriestandard von Microsoft. Der ist immer gleich und hat nicht mit der source-Implementierung in PHP zu tun. Was Du brauchst sind die CLSID´s bzw GUID´s in der registry.
Die Spezifikation des COM-Standards findest hier:

http://www.microsoft.com/com/

Aber sei gewarnt! - Das ist nichts für Anfänger. Und z.B. bei der Umsetzung mit IDispatchInvoke wären analoge Erfahrungen in anderen Programmiersprachen von Vorteil (VB, C++, Delphi oder Java) von Vorteil.

cu

Blaster
Mit Zitat antworten
  #6 (permalink)  
Alt 01-09-2002, 20:08
beebob
 PHP Junior
Links : Onlinestatus : beebob ist offline
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 604
beebob ist zur Zeit noch ein unbeschriebenes Blatt
Standard

>> Leider funzt dein Microsoft-Link nicht mehr?!?

ich weiss! genau das meinte ich nämlich mit den 'steinchen'
Mit Zitat antworten
  #7 (permalink)  
Alt 03-09-2002, 09:11
Op@ U.
 Junior Member
Links : Onlinestatus : Op@ U. ist offline
Registriert seit: Aug 2002
Ort: Good old Germany
Beiträge: 155
Op@ U. ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Thx @blaster!
Deine Tips haben mir doch schon etwas weitergeholfen. Zu empfehlen ist besonders der Link zu phpbuilder.com . Dort wird doch recht ausfühlich an einigen Beispielen beschrieben, wie man mit der COM arbeiten kann. So hab ich auch "herausgefunden" wo die ProgIDs versteckt sind.

Allerdings beschleicht mich langsam das Gefühl, das es für den dazugehörigen Funktionsumfang zu jeder Application meist garkeine Dokumentation gibt.
Hier ist wohl nur raten angesagt...
Mit Zitat antworten
  #8 (permalink)  
Alt 03-09-2002, 12:03
Blaster
 PHP Junior
Links : Onlinestatus : Blaster ist offline
Registriert seit: Nov 2001
Ort: Köln
Beiträge: 970
Blaster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Opa U:

Hmmmhm, ich hatte das selbe Problem damals mit C++ [MFC].

Mit VBA an Office zu gehen für Automationsprozesse ist ja kein Problem, mit C++ - da muss man genau wissen wie und wo?

Ich hatte den Funktionsumfang nur elongiert, indem ich die VBA Dokumentation von Office direkt analog in C++ transziliert hatte. Eine Alternative dazu ist das Auslesen der 'Helpstrings' der sogenannten IDL interface definition language, die die Schnittstellen zwischen den Modulen deklariert.

Deshalb würde ich es mit PHP genauso versuchen. Trotzdem - Rudimentäre Bemühungen werden scheitern, wenn man sich nicht mit COM auskennt.

Aber schön, dass ich Dir helfen konnte.

cu

Blaster
Mit Zitat antworten
  #9 (permalink)  
Alt 03-09-2002, 14:44
Op@ U.
 Junior Member
Links : Onlinestatus : Op@ U. ist offline
Registriert seit: Aug 2002
Ort: Good old Germany
Beiträge: 155
Op@ U. ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Joo, also wie man an Befehle für Office Applicationen herankommt weiss ich jetzt auch. Und zwar genauso wie du es gesagt hast, per Dokumentation aus VBA. Die lässt sich dann zum grossen Teil sogar auf PHP einfach übertragen. So fällt das kommandieren von Word, Excel, Powerpoint und co nicht schwer.

Allerdings an gewünschte Spezifikationen für den InetExplorer heranzukommen wird wohl wesentlich schwerer.
Ich werds aber mal mit der IDL versuchen. Vielleicht bringt das mehr...
Mit Zitat antworten
  #10 (permalink)  
Alt 03-09-2002, 14:46
beebob
 PHP Junior
Links : Onlinestatus : beebob ist offline
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 604
beebob ist zur Zeit noch ein unbeschriebenes Blatt
Standard

vielleicht wäre es ja auch für andere hilfreich, wenn du deine ergebnisse hier rein posten könntest?
Mit Zitat antworten
  #11 (permalink)  
Alt 03-09-2002, 22:14
Blaster
 PHP Junior
Links : Onlinestatus : Blaster ist offline
Registriert seit: Nov 2001
Ort: Köln
Beiträge: 970
Blaster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Op@ U.
Allerdings an gewünschte Spezifikationen für den InetExplorer heranzukommen wird wohl wesentlich schwerer.
Ich werds aber mal mit der IDL versuchen. Vielleicht bringt das mehr...
Da schießt Du wohl "mit Kanonen auf Mücken" (Konfuzius). Warum gehst Du nicht ganz simpel über Sockets.

@beebob:
Ich weiß nicht ganz was das bringen soll. Samples findest Du in PHPbuilder. Es geht hier um globale Informationen und Handgriffe, die von outsidern sowieso nicht verstanden werden.

P.S.: Wer ist/war R. Stallman? - Bartmodel?!
Mit Zitat antworten
  #12 (permalink)  
Alt 04-09-2002, 01:30
beebob
 PHP Junior
Links : Onlinestatus : beebob ist offline
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 604
beebob ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Blaster:
ja, du hast recht phpbuilder finde ich auch recht pragmatisch ...
es sollte ihn darauf hinweisen, dass das öffentliche zugänglich machen von dokumentationen aus dem hause renommierter konzerne, sträflich vernachlässigt wird

sagt dir gnu etwas?
Mit Zitat antworten
  #13 (permalink)  
Alt 04-09-2002, 10:46
Blaster
 PHP Junior
Links : Onlinestatus : Blaster ist offline
Registriert seit: Nov 2001
Ort: Köln
Beiträge: 970
Blaster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von beebob
@Blaster:
sagt dir gnu etwas?
Yupp, aber beantwortet das die Frage?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Von 0 auf über 2 Mio € Umsatz in weniger als 12 Monaten – wie die Pixelwerker das nur durch SEO geschafft haben
Von 0 auf über 2 Mio € Umsatz in weniger als 12 Monaten – wie die Pixelwerker das nur durch SEO geschafft habenSEO oder SEA? Warum SEO die besserer Methode ist.

01.10.2021 | Berni

Kundengewinnung und Kundenbindung
Kundengewinnung und KundenbindungVertrieb läuft doch immer persönlich. Das funktioniert nicht mit dem Internet! Wirklich?

24.09.2021 | Berni


 

Aktuelle PHP Scripte

AdRotator Light ansehen AdRotator Light

AdRotator Light (kurz: "Arlight") ist ein kostenloser und spielend einfach zu bedienender AdServer in PHP.

18.10.2021 scripthostingnet | Kategorie: PHP/ Bannerverwaltung
WebCounter by Scripthosting.net ansehen WebCounter by Scripthosting.net

Der WebCounter von Scripthosting.net ist ein kostenloser Besucherzähler in PHP. Seine Daten speichert er in einer SQLite oder MySQL Datenbank ab.

17.10.2021 scripthostingnet | Kategorie: PHP/ Besucherzaehler
Simple CMS PHP ansehen Simple CMS PHP

Simple CMS PHP is a very simple content management system. You just create a page content into the admin area and then copy the code for this content and paste it into the page of your website, where you want the content to appear. You do not need of any

01.10.2021 nevenov | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:03 Uhr.