![]() |
Re: Zugriff auf Sicherheitscenter von WinXP SP2
Kann sein, dass Delphi 3 das noch nicht unterstützt, weil zu der Zeit WMI noch nicht unterstützt wurde.
|
Re: Zugriff auf Sicherheitscenter von WinXP SP2
Moin moin,
du könntest nochmal folgendes versuchen:
Delphi-Quellcode:
Falls das nicht funktionieren sollte, kannst du das ganze auch über die Unit WbemScripting_TLB realisieren, wie
//...
var //... pFetched : LongInt; unknown : Variant; //IUnknown; enumUnk : IEnumUnknown; //... begin //... unknown := SWbemQuery._NewEnum; IUnknown(unknown).QueryInterface(IEnumVariant, enumUnk); // unknown.QueryInterface(IEnumVariant, enumUnk); //... szWQL := 'Select * from FirewallProduct'; SWbemQuery := SWbemCon.ExecQuery(szWQL,'WQL', 48); unknown := SWbemQuery._NewEnum; IUnknown(unknown).QueryInterface(IEnumVariant, enumUnk); // unknown.QueryInterface(IEnumVariant, enumUnk); //... du zu dieser kommst, findest du bestimmt hier im Forum... |
Re: Zugriff auf Sicherheitscenter von WinXP SP2
Zitat:
kaum zu glauben, aber ich habe tatsächlich ewig an der richtigen Lösung vorbei gecastet. :oops: Vielen Dank für die Verhinderung schlafloser Nächte und für den entscheidenden Hinweis. |
Re: Zugriff auf Sicherheitscenter von WinXP SP2
Also irgendwie erhalte ich in der folgenden zeile einen Fehler:
Delphi-Quellcode:
OleCheck(enumUnk.Next( 1, objVar, @pFetched ));
Delphi-Quellcode:
Ich benutze D5 Prof.
[Fehler] MDIFrame.pas(2449): Undefinierter Bezeichner: 'Next'
|
Re: Zugriff auf Sicherheitscenter von WinXP SP2
Moin moin,
Zitat:
|
Re: Zugriff auf Sicherheitscenter von WinXP SP2
Moin moin,
also ich habs heute mit Delphi 5 getestet und der Code von oben fnuktioniert einwandfrei. (Einfach in ein neues Project kopiert und uses ComObj, ActiveX eingefügt) Kannst du mal die Deklaration der Variablen enumUnk prüfen? die sollte vom Typ IEnumUnknown sein. |
Re: Zugriff auf Sicherheitscenter von WinXP SP2
Zitat:
also ComObj und AktiveX stehen in den uses, enumUnk ist so deklariert:
Delphi-Quellcode:
trotzdem kommt der Fehler 'undefinierter Bezeichner: next'. :?: :(
enumUnk : IEnumUnknown;
|
Re: Zugriff auf Sicherheitscenter von WinXP SP2
Moin moin,
also dann stimmt wohl irgendwas mit deiner ActiveX Unit nicht, bzw. IEnumUnknown ist noch irgendwo anners deklariert :gruebel: Wo springt Delphi hin, wenn du mit der Mause auf IEnumUnknown klickst und dabei [STRG] gedrückt hälst? Es sollte die Unit ActiveX aufgehen und der Cursor sollte an die Stelle springen:
Delphi-Quellcode:
Du könntest enumUnk auch mal so deklarieren:
{$EXTERNALSYM IEnumUnknown}
IEnumUnknown = interface(IUnknown) ['{00000100-0000-0000-C000-000000000046}'] function Next(celt: Longint; out elt; pceltFetched: PLongint): HResult; stdcall; function Skip(celt: Longint): HResult; stdcall; function Reset: HResult; stdcall; function Clone(out enm: IEnumUnknown): HResult; stdcall; end;
Delphi-Quellcode:
Ansonsten hab ich im Moment keine weiteren Ideen woran es liegen könnte...
enumUnk : ActiveX.IEnumUnknown;
|
Re: Zugriff auf Sicherheitscenter von WinXP SP2
Zitat:
Danke! :-D |
Re: Zugriff auf Sicherheitscenter von WinXP SP2
Hallo,
Bei neueren Delphi versionen sollte noch in uses die Unit "Variants" aufgenommen werden, ansonsten findet er das "VarToStr" nicht ... Könnte jemand das auch noch in dem zugeordneten Beitrag von CalganX in der CodeLibrary ergänzen ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz