Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Benutzerfreundlichen Namen einer DCOM-Komponente herausfinde (https://www.delphipraxis.net/117970-benutzerfreundlichen-namen-einer-dcom-komponente-herausfinde.html)

MrKnogge 29. Jul 2008 10:17


Benutzerfreundlichen Namen einer DCOM-Komponente herausfinde
 
Moin,

wenn ich über OLE oder DCOM Drittprogramme anspreche, dann gibt es ja zum einen die Anwendungs-ID welche man sich auch unter Komponentendienste anschauen kann, und zum anderen die "benutzerfreundlichen Namen" wie beispielsweise Excel.Applikation.

Gibt es eine Möglichkeit, mit der ID den benutzerfreundlichen Namen herauszufinden ?

Grüße Christian

sirius 29. Jul 2008 10:26

Re: Benutzerfreundlichen Namen einer DCOM-Komponente herausf
 
Du meinst MSDN-Library durchsuchenProgIDfromCLSID?

MrKnogge 29. Jul 2008 10:30

Re: Benutzerfreundlichen Namen einer DCOM-Komponente herausf
 
Nein, die ProgID habe ich ja, und das was ich suche ist auch nicht die CLSD.

Edit
Danke hat sich erledigt, ich habs nun über die Registry herausgefunden :wall:

sirius 29. Jul 2008 12:02

Re: Benutzerfreundlichen Namen einer DCOM-Komponente herausf
 
Zitat:

Zitat von MrKnogge
Nein, die ProgID habe ich ja, und das was ich suche ist auch nicht die CLSD.

:gruebel:
"Excel.Application" ist die ProgID.
Und richtig, die Beziehungen stehen bidirektional in der Registry.

MrKnogge 29. Jul 2008 12:20

Re: Benutzerfreundlichen Namen einer DCOM-Komponente herausf
 
Mit ProgID von Excel meine ich "{00020812-0000-0000-C000-000000000046}"

sirius 29. Jul 2008 12:31

Re: Benutzerfreundlichen Namen einer DCOM-Komponente herausf
 
Du verwrirst mcih taotl :drunken:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const ExcelGUID:TGUID='{00024500-0000-0000-C000-000000000046}';
var ProgID:PWideChar;
    Malloc:IMalloc;
begin
  ProgIDfromCLSID(ExcelGUID,ProgID);
  showmessage(ProgID); //---> Excel.Application."Version"
  coGetMalloc(1,Malloc);
  Malloc.Free(ProgID);
end;
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var clsID:TGuid;
begin
  CLSIDfromProgID('Excel.Application',clsid);
  showmessage(inttohex(clsID.D1,8));   //-->00024500; und so weiter
end;

Edit2:
Delphi hat in der Unit ComObj auch die beiden funktionen "gekapselt":
-ProgIDToClassID
-ClassIDToProgID

MrKnogge 29. Jul 2008 17:58

Re: Benutzerfreundlichen Namen einer DCOM-Komponente herausf
 
Danke Sirius, habe heute Mittag auch gelesen, dass man die Namen wie Excel.Application ProgID oder AppID nennt, ich hatte hier nur eine Doku in der war bei Excel.Application als Beispiel immer von ProgID die Rede :roll:

Die Funktionen brauche ich nicht, da ich mit Java auf DCOM zugreifen muss, aber dennoch für die Mühe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 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