https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e34d3cf3792b9ae44d1e814a1ca160e1714aa71f

commit e34d3cf3792b9ae44d1e814a1ca160e1714aa71f
Author:     Colin Finck <co...@reactos.org>
AuthorDate: Wed Apr 24 10:48:15 2019 +0200
Commit:     Colin Finck <co...@reactos.org>
CommitDate: Fri Apr 26 10:02:47 2019 +0200

    [REGTEST] Add regtest.cmd to the Run key inside regtest.cmd, so we're also 
started on the next reboot in case ReactOS crashed *and* the registry has been 
saved.
    
    unattend.inf only allows to add RunOnce entries, which are in theory only 
executed on the first boot after installation.
    For almost a decade, this worked anyway to start regtest.cmd again after a 
ReactOS crash, because the registry and thus the deletion of the RunOnce entry 
wasn't stored on disk in case of a crash.
    Thanks to Sylvain for the hint!
    
    As Explorer processes the Run key right after RunOnce and therefore picks 
up regtest.cmd a second time during the first boot, exit the script just after 
adding the Run key.
    Otherwise, rosautotest.exe would be started twice, with catastrophic 
results.
---
 boot/bootdata/bootcdregtest/regtest.cmd | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/boot/bootdata/bootcdregtest/regtest.cmd 
b/boot/bootdata/bootcdregtest/regtest.cmd
index 29ea7becb2..ec263e1324 100644
--- a/boot/bootdata/bootcdregtest/regtest.cmd
+++ b/boot/bootdata/bootcdregtest/regtest.cmd
@@ -2,6 +2,15 @@
 set WINETEST_DEBUG=0
 set WINETEST_PLATFORM=reactos
 
+:: On the first boot, we're started through RunOnce.
+:: Add us to the Run key, so we're also started on the next reboot in case 
ReactOS crashed *and* the registry has been saved.
+:: Exit right after that, because Explorer processes the Run key right after 
RunOnce and therefore picks up regtest.cmd a second time during the first boot.
+reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v regtest
+if "%errorlevel%"=="1" (
+    reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v regtest /t 
REG_SZ /d "%SystemRoot%\system32\cmd.exe /c regtest.cmd"
+    exit 0
+)
+
 move C:\ReactOS\bin\redirtest1.dll C:\ReactOS\bin\kernel32test_versioned.dll
 move C:\ReactOS\bin\testdata\redirtest2.dll 
C:\ReactOS\bin\testdata\kernel32test_versioned.dll
 if exist "C:\ReactOS\bin\AHKAppTests.cmd" (

Reply via email to