AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Zugriff auf Sicherheitscenter von WinXP SP2

Zugriff auf Sicherheitscenter von WinXP SP2

Ein Thema von gsh · begonnen am 10. Jun 2005 · letzter Beitrag vom 5. Dez 2011
Antwort Antwort
Seite 4 von 4   « Erste     234
gauggi

Registriert seit: 18. Apr 2006
177 Beiträge
 
#31

Re: Zugriff auf Sicherheitscenter von WinXP SP2

  Alt 31. Aug 2009, 21:50
Hallo!

Gibt es einen Ersatz für "Longet". Weder Lazarus noch mein Turbo Delphi mögen "Longet".
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#32

Re: Zugriff auf Sicherheitscenter von WinXP SP2

  Alt 31. Aug 2009, 22:01
Meinst Du LongInt?
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#33

Re: Zugriff auf Sicherheitscenter von WinXP SP2

  Alt 1. Sep 2009, 09:16
moin moin,

@gauggi: Wie ich dir schon per PN geschrieben habe, ich kann in meinem Quelltext kein Longet finden. Zeigt doch mal die Stelle wo du Probleme hast, ist ja evtl. nur nen typo...
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#34

Re: Zugriff auf Sicherheitscenter von WinXP SP2

  Alt 4. Okt 2009, 18:17
Unter Windows 7 scheint funktioniert das Auslesen leider nicht mehr Hat da jemand ne Idee? Ich vermute mal, da müssen nur ein Paar Strings angepasst werden.
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#35

AW: Zugriff auf Sicherheitscenter von WinXP SP2

  Alt 5. Dez 2011, 22:37
Moin moin,

der Vollständigkeit halber und um die Frage zu beantworten hier die Lösung (besser spät als nie):
Delphi-Quellcode:
uses {..,} ComObj, ActiveX;

procedure TForm1.Button1Click(Sender: TObject);
var
  SWbem,
  SWbemCon,
  SWbemQuery,
  objVar : OleVariant;
  szWQL : String;
  pFetched : LongInt;
  unknown : IUnknown;
  enumUnk : IEnumUnknown;
  Counter : Integer;
  boIsWinXP: Boolean;
const
  ARR_NAMESPACE : Array[False..True] of String = ('SecurityCenter2', //Vista/Win7
                                                  'SecurityCenter'); //WinXP

            procedure Display(szValue: String = ''; szData : String = '');
            begin
               Form1.Canvas.TextOut(20 , Counter, szValue);
               Form1.Canvas.TextOut(200, Counter, szData );
               inc(Counter, 17);
            end;

begin
   boIsWinXP := False; //get win version
   Canvas.FillRect(Rect(0,0,form1.Width,form1.Height));
   Counter := 20;
   CoInitialize(nil);
   try
      SWbem := CreateOleObject('WbemScripting.SWbemLocator');
      // strServer, strNamespace, strUser, strPassword, strLocale, strAuthority,
      // iSecurityFlags, objwbemNamedValueSet
      SWbemCon := SWbem.ConnectServer('', 'root\'+ARR_NAMESPACE[boIsWinXP], '', '', '');

      //szWQL := 'Select * from AntiSpywareProduct'; // not in WinXP
      szWQL := 'Select * from AntiVirusProduct';
      SWbemQuery := SWbemCon.ExecQuery(szWQL,'WQL', 48);
      unknown := SWbemQuery._NewEnum;
      unknown.QueryInterface(IEnumVariant, enumUnk);

      VarClear(objVar);
      OleCheck(enumUnk.Next( 1, objVar, @pFetched ));
      if (pFetched <> 0) then begin
         if boIsWinXP then begin
            Display('companyName:'               , VarToStr(objVar.companyName));
            Display('displayName:'               , VarToStr(objVar.displayName));
            Display('enableOnAccessUIMd5Hash:'   , VarToStr(objVar.enableOnAccessUIMd5Hash));
            Display('enableOnAccessUIParameters:', VarToStr(objVar.enableOnAccessUIParameters));
            Display('instanceGuid:'              , VarToStr(objVar.instanceGuid));
            Display('onAccessScanningEnabled:'   , VarToStr(objVar.onAccessScanningEnabled));
            Display('pathToEnableOnAccessUI:'    , VarToStr(objVar.pathToEnableOnAccessUI));
            Display('pathToUpdateUI:'            , VarToStr(objVar.pathToUpdateUI));
            Display('productUptoDate:'           , VarToStr(objVar.productUptoDate));
            Display('updateUIMd5Hash:'           , VarToStr(objVar.updateUIMd5Hash));
            Display('updateUIParameters:'        , VarToStr(objVar.updateUIParameters));
            Display('versionNumber:'             , VarToStr(objVar.versionNumber));
         end else begin
            Display('displayName:'               , VarToStr(objVar.displayName));
            Display('instanceGuid:'              , VarToStr(objVar.instanceGuid));
            Display('pathToSignedProductExe:'    , VarToStr(objVar.pathToSignedProductExe));
            Display('pathToSignedReportingExe:'  , VarToStr(objVar.pathToSignedReportingExe));
            Display('productState:'              , VarToStr(objVar.productState));
         end;
      end else
         Display('No supported AV products found...');
      Display('---------------------------------------------');

      szWQL := 'Select * from FirewallProduct';
      SWbemQuery := SWbemCon.ExecQuery(szWQL,'WQL', 48);
      unknown := SWbemQuery._NewEnum;
      unknown.QueryInterface(IEnumVariant, enumUnk);

      VarClear(objVar);
      OleCheck(enumUnk.Next( 1, objVar, @pFetched ));
      if (pFetched <> 0) then begin
         if boIsWinXP then begin
            Display('Company Name:'      , VarToStr(objVar.companyName));
            Display('Display Name:'      , VarToStr(objVar.displayName));
            Display('Enabled:'           , VarToStr(objVar.enabled));
            Display('enableUIParameters:', VarToStr(objVar.enableUIParameters));
            Display('pathToEnableUI:'    , VarToStr(objVar.pathToEnableUI));
            Display('versionNumber:'     , VarToStr(objVar.versionNumber));
         end else begin
            Display('displayName:'               , VarToStr(objVar.displayName));
            Display('instanceGuid:'              , VarToStr(objVar.instanceGuid));
            Display('pathToSignedProductExe:'    , VarToStr(objVar.pathToSignedProductExe));
            Display('pathToSignedReportingExe:'  , VarToStr(objVar.pathToSignedReportingExe));
            Display('productState:'              , VarToStr(objVar.productState));
         end;
      end else
         Display('No supported FW products found...');
   finally
      CoUnInitialize;
   end;
end;
Unter Vista/Win7 funktioniert ebenfalls die Abfrage auf: AntiSpywareProduct (Siehe Kommentar)

Siehe auch: The Road to Delphi
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf