Hallo,
ich starte meine Anwendung via Registry RUNONCE und zur Sicherheit nochmal in der RUN Sektion, klappt auch soweit gut. RUNONCE damit meine Anwendung die aller erste Anwendung beim Windows Start ist. Nun habe ich einen Kunden mit Windows10 der meint nach einem Power Off startet die Anwendung (Kiosk) meist nicht. Also irgendwas löscht den RUN und RUNONCE Eintrag. Ja, der RUNONCE wird von meiner Anwendung nach dem Start wieder angelegt, ist also da! User ist Administrator und
UAC Anforderung ist als Manifest drin. Bei Tests in einer VM mit Win10 konnte ich nichts feststellen, bei mir funktioniert es immer. Das ist der Code der die Start Einträge anlegt:
Delphi-Quellcode:
// HKEY_LOCAL_MACHINE
if TPJOSInfo.IsWow64 then begin
MyPrg := TRegistry.Create(KEY_ALL_ACCESS OR KEY_WOW64_64KEY);
end else begin
MyPrg := TRegistry.Create(KEY_ALL_ACCESS OR KEY_WOW64_32KEY);
end;
MyPrg.Rootkey := HKEY_LOCAL_MACHINE;
MyPrg.LazyWrite := false;
try
try
if MyPrg.Openkey('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer', true) then begin
MyPrg.WriteInteger('DisableLocalUserRunOnce', 0);
end;
except
MyLogAdd('Error writing registry: DisableLocalUserRunOnce', False);
end;
finally
MyPrg.CloseKey;
end;
try
try
if MyPrg.Openkey('Software\Microsoft\Windows\CurrentVersion\RunOnce', true) then begin
MyPrg.WriteString('!KioskStart', '"' + sPath + 'kioskstart.exe"');
end;
except
MyLogAdd('Error writing registry: !KioskStart', False);
end;
finally
MyPrg.CloseKey;
end;
try
try
if MyPrg.Openkey('Software\Microsoft\Windows\CurrentVersion\Run', true) then begin
MyPrg.WriteString('Kiosk', '"' + sPath + 'kiosk.exe" /bootstart');
end;
except
MyLogAdd('Error writing registry: Kiosk', False);
end;
finally
MyPrg.CloseKey;
end;
MyPrg.Free;
Hat jemand einen Tipp warum das auf Win10 nach einem Power Off nicht mehr startet?