Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Com Server in einer Applikation unter Vista (https://www.delphipraxis.net/103083-com-server-einer-applikation-unter-vista.html)

iskywalker 9. Nov 2007 17:20


Com Server in einer Applikation unter Vista
 
Ich habe eine Applikation um tifs anzuzeigen, sie wird von aussem mittles com gesteuert. Das geht unter vista leider nicht,
da bei der Registrierung(application.initialize) es abstürtzt( alos bevor jeder form erstellt wurde).
Wenn ich die Com-Anbindung weglasse, läuft die Anwendung problemlos. Gibt es da einen Weg, um rechtzeitig zu prüfen, ob es vista das Betreibssystem vista ist, und gegebenenfalls die COM-Regsitrierung zu unterlassen?
Ich würde es dann ein separates com-server, der über kommando zeile (singleinst) die anwendung steuert, falls ein befehl mitttels COM ankommt.
Aber ich würde gern diese Test führen...
Jemand ne Idee?
Gruß
iskywalker

Bernhard Geyer 9. Nov 2007 18:16

Re: Com Server in einer Applikation unter Vista
 
Zitat:

Zitat von iskywalker
Ich habe eine Applikation um tifs anzuzeigen, sie wird von aussem mittles com gesteuert. Das geht unter vista leider nicht,
da bei der Registrierung(application.initialize) es abstürtzt( alos bevor jeder form erstellt wurde).

Das wird vermutlich daran liegen das die Anwendung bei aktiven UAC keine Admin-Rechte bekommt und deshalb die Registrierung fehlschlägt. Das gleiche "Problem" wirst du auch ab Windows NT bekommen wenn der user nicht mindestens Mitglieder der Hauptbenutzergruppe ist. ist also kein Vista-Problem sondern ein generelles Problem wie du COM-Komponten beim ersten Start registrieren willst.

iskywalker 12. Nov 2007 12:51

Re: Com Server in einer Applikation unter Vista
 
Danke für die Antwort!
Das es daran liegt, könnte ich mir auch denken (obwohl NT hatte ich gar nicht in betracht gezogen). Interessanter finde ich, wie man das rechtzeigtigt prüfen kann, und es gegebenenfalls ausführen. Ich meine, mein program stürtzt bei application.initialize. Das abzufangen sollte eine Delphi Aufgabe sein also!?
Gruß
ISkywalker

Bernhard Geyer 12. Nov 2007 12:57

Re: Com Server in einer Applikation unter Vista
 
Delphi-Quellcode:
  try
    Application.Initialize;
  except
    ...
  end;

iskywalker 13. Nov 2007 17:43

Re: Com Server in einer Applikation unter Vista
 
Danke für die Antworten!
Das Problem lag daran, dass mydac eine Komponente hat, um die mysql Befehle zu überwachen. Wenn die eingeschlatet ist, darf man nicht CoUninitialize aufrufen. Das muss ich machen, weil eine andere Komponente (xpburn) sonst den openfolderdialog irgendwie stört.
Seit dem ich das mdbmonitor(mydac) ausgeschlatet habe funktioniert einwandfrei (und entprechend couninitilize, und danach initialize aufrufe).
ISkywalker

iskywalker 14. Nov 2007 10:54

Re: Com Server in einer Applikation unter Vista
 
HAE!
Sorry das oben war noch ein anderer Problem!!
Das hat geklappt! Danke!
das Exception.message sagte aber fehler bei der registrierung eines OLE-Komponente, die Frage ist nur ob alle andere OLE-Komponente bis auf diesen erfolgreich registriert sind... Das werde ich vermutlich später herausfinden.
Danke nochmals!


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz