Einzelnen Beitrag anzeigen

Markus Effenberger

Registriert seit: 2. Jul 2014
44 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Nicht durchgeführten Neustart nach Windowsupdate detektieren

  Alt 14. Jan 2019, 10:59
Geht es um eine 32-bit-Anwendung auf einem 64-bit-System? Bei Zugriffen auf HKLM ist dann auch KEY_WOW64_64KEY als Flag anzugeben, und nicht nur KEY_READ.
Habe mit deinem Hinweis etwas gesucht. Mit dem überarbeitetem Code
kommt man schon bis zu 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\'.
Sobald man tiefer geht bis 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Wi ndowsUpdate\Auto Update\',
geht es immer noch nicht.

Code:
function RechnerNeustart_nach_WindowsUpdates_ausstehend : boolean; // 'HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'
var reg : TRegistry;
begin
   result:= false;
   reg:= TRegistry.Create(KEY_READ OR $0100 );   // KEY_WOW64_64KEY
   try
     reg.RootKey:= HKEY_Local_Machine;
//   reg.RootKey:= HKEY_CURRENT_USER;                        <- geht
//   if reg.KeyExists('\SOFTWARE\Microsoft\Windows\CurrentVersion\') then  <- geht
     if reg.KeyExists('\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\') then     //   <- geht NICHT
//   if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\', False) = True then
//   if reg.OpenKey('\SOFTWARE\Adobe\', False) = True then   <- geht
//     if reg.KeyExists('\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired') then
       begin
        result:= True;
       end else begin
       end;
   finally
      reg.Free;
   end;
end;
  Mit Zitat antworten Zitat