Entwickler-Ecke

Windows API - Komponente installieren <> Komponente verwenden ??


r0fel.xls - Mo 22.12.03 16:57
Titel: Komponente installieren <> Komponente verwenden ??
Ich habe hier mal 2 verschiedene Versionen meiner Komponente aufgelistet. Das Problem dabei ist, dass einmal die eine Version gültig ist und einmal die andere :roll: Jenachdem von wo ich sie aufrufe....
Wenn ich die Komponente installieren will braucht er die 1. Version und wenn ich dann ein Programm mit dieser Komponente laufen lassen will dann braucht er die 2. Version :confused:

Hoffe jemand kann mir da weiterhelfen

Für beide

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
uses Classes, Variants, ActiveX, WbemScripting_TLB

var

  Enum      : IEnumVARIANT;     // brauchen beide Versionen

  Obj       : SWBemObjectSet;    //wird nur von der 1.
  Services  : ISWbemServices;   // Version
  pUnk      : IInterface;              // benötigt


1. Version (Komponente installieren)

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  CoSWbemLocator.Create.ConnectServer(
          '.''root\cimv2'''''''''0nil,Services);

  Services.ExecQuery(
          'Select * from Win32_NetworkAdapter','WQL',
          wbemFlagBidirectional, nil,Obj);
  obj.Get__NewEnum(pUnk);
  Enum := pUnk as IEnumVariant;


2. Version (Komponente verwenden)

Delphi-Quelltext
1:
2:
3:
4:
   Enum := CoSWbemLocator.Create.ConnectServer(
          '.''root\cimv2'''''''''0nil).ExecQuery(
          'Select * from Win32_NetworkAdapter','WQL',
          wbemFlagBidirectional, nil)._NewEnum as IEnumVariant;


Hoffe jemand kann mir da helfen bevor ich den PC aus dem Fenster geschmissen habe :evil:


r0fel.xls - So 11.01.04 14:30

Hmm... Ist nicht klar was ich meine ??
Wenn dazu fragen sind, gerne fragen.

Hoffe jemand hat davon Ahnung :roll:


Motzi - So 11.01.04 15:13

Hm.. du willst die WMI-Scripting-Interfaces benutzen... allerdings schaut mir dein Code ein bisschen seltsam aus..!

Hab auch schon vor längerer Zeit mal angefangen mich damit zu beschäftigen und bin dabei auf folgende Seite gestoßen: http://users.andara.com/~dblondeau/downloads.htm

Lad dir das mal runter und schaus dir an... mir hat es damals recht viel geholfen..!

Wichtig: du hast leider nicht angegeben ob dein D6 eine Personal oder Prof/Ent Version ist. Die Personal-Version enthält die TOleServer-Klasse nicht weswegen der Import der TypeLibrary ein bisschen anders ausschaut. Ich weiß daher nicht inwieweit der das Programm der oben genannten Seite mit einer Personal-Version läuft...


r0fel.xls - Mo 12.01.04 18:41

Vielen Dank für deine Antwort. Ich benutze 6 Ent. Werde den Link mal testen.....