Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Zugriff auf Sicherheitscenter von WinXP SP2 (https://www.delphipraxis.net/47387-zugriff-auf-sicherheitscenter-von-winxp-sp2.html)

Luckie 10. Dez 2005 15:56

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.

x000x 10. Dez 2005 21:50

Re: Zugriff auf Sicherheitscenter von WinXP SP2
 
Moin moin,

du könntest nochmal folgendes versuchen:
Delphi-Quellcode:
//...
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);
//...
Falls das nicht funktionieren sollte, kannst du das ganze auch über die Unit WbemScripting_TLB realisieren, wie
du zu dieser kommst, findest du bestimmt hier im Forum...

masc-online 10. Dez 2005 22:18

Re: Zugriff auf Sicherheitscenter von WinXP SP2
 
Zitat:

Zitat von x000x
Moin moin,
du könntest nochmal folgendes versuchen:
Delphi-Quellcode:
IUnknown(unknown).QueryInterface(IEnumVariant, enumUnk);

Hallo Peter,

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.

hincapie 9. Nov 2007 07:54

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:
[Fehler] MDIFrame.pas(2449): Undefinierter Bezeichner: 'Next'
Ich benutze D5 Prof.

x000x 12. Nov 2007 18:18

Re: Zugriff auf Sicherheitscenter von WinXP SP2
 
Moin moin,
Zitat:

Zitat von hincapie
Ich benutze D5 Prof.

ich habe hier aktuell kein Delphi 5, kann morgen erst nach schaun.

x000x 13. Nov 2007 18:25

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.

hincapie 15. Nov 2007 09:40

Re: Zugriff auf Sicherheitscenter von WinXP SP2
 
Zitat:

Zitat von x000x
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.

Hallo,
also ComObj und AktiveX stehen in den uses,
enumUnk ist so deklariert:
Delphi-Quellcode:
enumUnk     : IEnumUnknown;
trotzdem kommt der Fehler 'undefinierter Bezeichner: next'. :?: :(

x000x 19. Nov 2007 18:51

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:
  {$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;
Du könntest enumUnk auch mal so deklarieren:
Delphi-Quellcode:
enumUnk     : ActiveX.IEnumUnknown;
Ansonsten hab ich im Moment keine weiteren Ideen woran es liegen könnte...

hincapie 20. Nov 2007 07:38

Re: Zugriff auf Sicherheitscenter von WinXP SP2
 
Zitat:

Zitat von x000x
Du könntest enumUnk auch mal so deklarieren:
Delphi-Quellcode:
enumUnk     : ActiveX.IEnumUnknown;
Ansonsten hab ich im Moment keine weiteren Ideen woran es liegen könnte...

Das wars, jetzt funktioniert's! :thumb:
Danke! :-D

peschai 31. Jan 2008 16:26

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.
Seite 3 von 4     123 4      

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