Function ModifyStartMenu()
dim $ars, $i, $count, $settings, $x
If @INWIN=1
$ARS = writevalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","AutoRestartShell","1","REG_DWORD")
EndIF
Select
Case @PRODUCTTYPE="Windows 95"
$settings = readvalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects","settings")
Case @PRODUCTTYPE="Windows 98"
$settings = readvalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects","settings")
Case @PRODUCTTYPE="Windows Me"
$settings = readvalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects","settings")
Case @PRODUCTTYPE="Windows NT Workstation"
$settings = readvalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects","settings")
Case @PRODUCTTYPE="Windows 2000 Professional"
$settings = readvalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2","settings")
Case @PRODUCTTYPE="Windows XP Professional"
$settings = readvalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2","settings")
Case 1
Return
EndSelect
Dim $regstring[(len($settings)/2)-1]
for $i = 1 to len($settings) step 2
$regstring[$count] = substr($settings,$i,2)
$count = $count + 1
next
Select
Case @PRODUCTTYPE="Windows 95"
$regstring[8] = "06"
$x = writevalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects","settings",join($regstring,""),"REG_BINARY")
Case @PRODUCTTYPE="Windows 98"
$regstring[8] = "06"
$x = writevalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects","settings",join($regstring,""),"REG_BINARY")
Case @PRODUCTTYPE="Windows Me"
$regstring[8] = "06"
$x = writevalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects","settings",join($regstring,""),"REG_BINARY")
Case @PRODUCTTYPE="Windows NT Workstation"
$regstring[52] = "06"
$x = writevalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects","settings",join($regstring,""),"REG_BINARY")
Case @PRODUCTTYPE="Windows 2000 Professional"
$regstring[8] = "06"
$x = writevalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2","settings",join($regstring,""),"REG_BINARY")
Case @PRODUCTTYPE="Windows XP Professional"
$regstring[8] = "06"
$x = writevalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2","settings",join($regstring,""),"REG_BINARY")
Case 1
Return
EndSelect
If @PRODUCTTYPE="Windows XP Professional"
$state = readvalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer","shellstate")
Dim $regstate[(len($state)/2)-1]
$count = 0
For $i = 1 to len($state) step 2
$regstate[$count] = substr($state,$i,2)
$count = $count + 1
next
$regstate[32]="00" ; 00=Classic Menu 02=XP Menu
; Start_LargeMFUIcons value of 1=Use Large Icons in XP Menu 0=Use Small Icons in XP Menu
$x = WriteValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Start_LargeMFUIcons","0", "REG_DWORD")
$x = writevalue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer","shellstate",join($regstate,""),"REG_BINARY")
Endif
$COMPUTER=@WKSTA
$PROC = "EXPLORER.EXE"
For each $Process in GetObject("winmgmts:{impersonationLevel=impersonate}!//$COMPUTER").ExecQuery("select * from Win32_Process where Name='$PROC'")
$x=$Process.Terminate
Next
If @INWIN=2
Run "Explorer"
Endif
EndFunction