'Declaration of some constants
DRIVE_UNKNOWN=1 'Bit 0
DRIVE_NO_ROOT=2 'Bit 1
DRIVE_REMOVABLE=4 'Bit 2
DRIVE_FIXED=8 'Bit 3
DRIVE_REMOTE=16 'Bit 4
DRIVE_CDROM=32 'Bit 5
DRIVE_RAMDISK=64 'Bit 6
DRIVE_FUTURE=128 'Bit 7
sPathValue="
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun"
'Called when the Plugin is started
SUB Plugin_Initialize
i=RegReadValue(sPathValue)
if IsEmpty(i)=true then
i=145
end if
if IsNumeric(i)=false then
Call MsgWarning("The current AutoPlay feature settings in your registry are in an incorrect form (REG_BINARY instead of REG_DWORD). These values will be ignored and the default values, as they are out of the box, will be displayed.")
i=145
end if
'TH: Looks stupid, I know! but there is no way to get OR working with variants!
'AK: JScript ||. Should work
dim b1,b2,b3,b4,b5,b6,b7
i=OrHelper(i,DRIVE_FUTURE,b1)
i=OrHelper(i,DRIVE_RAMDISK,b2)
i=OrHelper(i,DRIVE_CDROM,b3)
i=OrHelper(i,DRIVE_REMOTE,b4)
i=OrHelper(i,DRIVE_FIXED,b5)
i=OrHelper(i,DRIVE_REMOVABLE,b6)
i=OrHelper(i,DRIVE_NO_ROOT,b7)
'//If the bit is set, AutoRun is DISABLED
Call SetBox(b3,1)
Call SetBox(b6,2)
Call SetBox(b5,3)
Call SetBox(b4,4)
END SUB
Function OrHelper(CurValue,CheckVal,CheckValSet)
i=CurValue
if i>=CheckVal then
CheckValSet=true
i=i-CheckVal
else
CheckValSet=false
end if
OrHelper=i
End Function
Sub SetBox(CurVal,Elm)
if CurVal=true then
SetUIElement elm,false
else
SetUIElement elm,true
end if
End Sub
'Called when the Plugin should validate the Data the user has entered
SUB Plugin_CheckData(ElementIndex)
END SUB
'Called when the Plugin should apply the changes
SUB Plugin_Apply(ElementIndex,ElementSubIndex)
i=0
'Always disable autorun for the following drives
'according to Q136214 from MS KB
i=i+DRIVE_UNKNOWN
i=i+DRIVE_FUTURE
'//Needed??? i=i+DRIVE_NO_ROOT
'No let's see what the user wants
if GetUIElement(1)=false then i=i+DRIVE_CDROM
if GetUIElement(2)=false then i=i+DRIVE_REMOVABLE
if GetUIElement(3)=false then i=i+DRIVE_FIXED
if GetUIElement(4)=false then i=i+DRIVE_REMOTE
Call RegWriteValue(sPathValue,i,2)
Call Logoff()
END SUB
'Called when the Plugin is about to be removed from memory
SUB Plugin_Terminate
END SUB