'''''''''''''''''''''''''''''''''''''''' ' Shutdown timeout modifier ' ' Initialization const HKEY_LOCAL_MACHINE = &H80000002 strComputer = "." Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ strComputer & "\root\default:StdRegProv") ' Obtain original values from HKLM oReg.GetStringValue HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Control","WaitToKillServiceTimeout",sTimeout lTimeout = CLng(sTimeout) ' and convert into seconds lTimeoutSec = Round(Clng(sTimeout)/1000) ' ask user for new value t = inputbox( "Nastavte počet sekund, po které čekat na ukončení procesu při vypínání počítače (současná hodnota je " & CStr(lTimeoutSec) & ")." & _ vbCrLf & "Původní hodnotu si poznačte a v případě problémů ji vraťte zpět." & vbCrLf & "Doporučené nastavení je v rozmezí 2-5 sekund." , "Nastavte novou hodnotu", CStr(lTimeoutSec) ) ' convert to msec on error resume next lMilisec = CLng(t) * 1000 ' Test for valid values, show error if something's wrong if (lMilisec=>1000) and (lMilisec<=50000) then ' Write to the registry oReg.SetStringValue HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Control","WaitToKillServiceTimeout", CStr(lMilisec) ' finish message msgbox "Změna byla úspěšně provedena. Nyní zkuste otestovat, zda se počítač vypíná rychleji." & vbCrLf & "Nenastane-li zlepšení nebo dojde k nějakým problémům, vraťte vše na původní hodnotu.", vbOkOnly, "Hotovo" else msgbox "Nesprávně zadaná hodnota nebo hodnota mimo rozmezí 1-50 sec. Nebyla provedena žádná změna.", vbOkOnly, "Chyba" end if