Jump to content

Daemon Tools Lite 4.30.3 Installer


NDog37

Recommended Posts

This is an autoit script that will install Daemon Tools 4.30.3 and configure the options

It will asign the virtual CD as x:

It works and I have tested it on multiple PC's including Virtual Machines, however it is not 100% reliable as far as setting the drive options, since it uses a system tray click, so if you have lots of tray item popups while running it - it might not work so well.

-daemon4303-lite.exe must be in the same folder as you are running the script

-reboots computer after installing SPTD

-I recommend to compile it to exe as it reboots and continues running

This is setup using my prefered options as defaults, change it how you need.

Opt("TrayIconDebug", 1)
opt("WinTitleMatchMode",4)
$g_szVersion = "NDog_WPIW"
If WinExists($g_szVersion) Then Exit; It's already running
AutoItWinSetTitle($g_szVersion)
HotKeySet("{ESC}", "MyExit")
Func MyExit()
Exit
EndFunc

#requireadmin
#include <GuiConstantsEx.au3>
#Include <GuiToolBar.au3>

$type = "CD"
$exe = "daemon4303-lite.exe"
$titlepre = "nul"
$title = "DAEMON Tools Lite 4.30.3"
$processname = $exe

;#cs

RegWrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", "dtools", "REG_SZ", """" & @ScriptFullPath & """")

If Not ProcessExists($processname) Then
Run(@ScriptDir & "\" & $exe)
EndIf

Local $Done = False
While Not $Done

If WinExists($titlepre) Then
WinActivate($titlepre)
WinWaitActive($titlepre, "", 5)

ElseIf WinExists($title, "Please select a language.") Then
;ControlSend($title, "", "Button1","{ENTER}")
ControlClick($title, "", "Button1")
ElseIf WinExists($title, "Welcome to the DAEMON Tools Lite") Then
;ControlSend($title, "", "Button2","{ENTER}")
ControlClick($title, "", "Button2")
ElseIf WinExists($title, "License Agreement") Then
;ControlSend($title, "", "Button2","{ENTER}")
ControlClick($title, "License Agreement", "Button2")
While WinExists($title, "License Agreement")
If WinExists($title, "Setup must restart Windows and continue installation after reboot") Then
ControlClick($title, "Setup must restart Windows and continue installation after reboot", "Button2")
RegDelete("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", $title & " Setup")
Sleep(500)
Shutdown(2); Computer will restart
EndIf
WEnd
ElseIf WinExists($title, "Choose Components") Then
ControlSend($title, "", "SysTreeView321","{DOWN}")
ControlSend($title, "", "SysTreeView321","{DOWN}")
ControlSend($title, "", "SysTreeView321","{SPACE}");Untick DAEMON Tools Toolbar
ControlSend($title, "", "SysTreeView321","{DOWN}")
ControlSend($title, "", "SysTreeView321","{SPACE}");Untick Desktop Shortcut
ControlSend($title, "", "SysTreeView321","{DOWN}")
ControlSend($title, "", "SysTreeView321","{SPACE}");Untick Start Menu Shortcuts
;ControlSend($title, "", "Button2","{ENTER}")
ControlClick($title, "", "Button2")
ElseIf WinExists($title, "Support the DAEMON Tools Team") Then
ControlClick($title, "", "Button4")
;ControlSend($title, "", "Button2","{ENTER}")
ControlClick($title, "", "Button2")
ElseIf WinExists($title, "Choose Install Location") Then
;ControlSend($title, "", "Button2","{ENTER}")
ControlClick($title, "", "Button2")
ElseIf WinExists($title, "Completing the DAEMON Tools Lite Setup Wizard") Then
;ControlSend($title, "", "Button2","{ENTER}")
ControlClick($title, "", "Button2")
RegDelete("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", "dtools")
$Done = True

ElseIf WinExists($title, "Already Installed") Then
;ControlClick($title, "", "Button3")
ControlClick($title, "Already Installed", "Button3")
While WinExists($title, "Already Installed")
If WinExists($title, "Are you sure you want to quit Setup?") Then
Sleep(5000)
;ControlSend($title, "", "Button1","{ENTER}")
ControlClick($title, "Are you sure you want to quit Setup?", "Button1")
EndIf
WEnd
RegDelete("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", "dtools")
Exit
Else
Sleep(500)
ContinueLoop
EndIf
WEnd

While ProcessExists($processname)
If ProcessExists("iexplore.exe") Then
ProcessClose("iexplore.exe")
EndIf
If ProcessExists("firefox.exe") Then
ProcessClose("firefox.exe")
EndIf
If ProcessExists("opera.exe") Then
ProcessClose("opera.exe")
EndIf
WEnd

FileDelete(@DesktopCommonDir & "\DAEMON Tools Lite.lnk")
DirRemove(@StartMenuCommonDir & "\Programs\DAEMON Tools Lite",1)

#ce

While Not IsDeclared ("BtnNum")
;Configure Daemon Tools (system tray)
$hToolBar = WinGetHandle("[CLASS:Shell_TrayWnd]", "")
$hSysTray = ControlGetHandle($hToolBar, "", "ToolbarWindow321")
$BtnCnt = _GUICtrlToolbar_ButtonCount($hSysTray)
$BtnTxt = "DAEMON Tools"

;Search for the right icon on the tray
$i = 0
While $i < $BtnCnt
;MsgBox(2,"",StringLeft(_GUICtrlToolbar_GetButtonText($hSysTray, $i),12))
If StringLeft(_GUICtrlToolbar_GetButtonText($hSysTray, $i),12) = $BtnTxt Then
$BtnNum = $i
ExitLoop
EndIf
$i += 1
WEnd
Sleep(500)
WEnd


$title = "Preferences"
Local $Done = False
While Not $Done
If WinExists($title, "Autostart tray icon") Then
ControlFocus($title, "", "Button31")
ControlClick($title, "", "Button31")
ControlClick($title, "", "Button33")
ControlSend($title,"","ListBox1","{END}{UP 4}")
Sleep(1000)
ElseIf WinExists($title, "Enable DT Panel") Then
ControlClick($title, "", "Button24")
ControlSend ($title,"","ListBox1","{END}{UP 2}")
Sleep(1000)
ElseIf WinExists($title, "Mount on the first empty device") Then
ControlClick($title, "", "Button4")
ControlClick($title, "", "Button34")
ControlClick($title, "", "Button35")
Sleep(1000)
ExitLoop
Else
_GUICtrlToolbar_ClickButton($hSysTray, $BtnNum, "right")
WinWait("[CLASS:#32768]", "", 5)
SendKeepActive("[LAST]")
ControlSend("[LAST]", "", "", "{UP 5}{ENTER}")
Sleep(1000)
WinWaitClose("[CLASS:#32768]", "", 5)
Sleep(1000)
EndIf
WEnd


$dtconfig = "HKCU\Software\DT Soft\DAEMON Tools Lite\Config"
RegWrite($dtconfig,"Autostart", "REG_DWORD", "1")
RegWrite($dtconfig,"Automount", "REG_DWORD", "0")
RegWrite($dtconfig,"CheckForUpdate", "REG_DWORD", "0")
RegWrite($dtconfig,"EnableShellExtensions", "REG_DWORD", "0")
RegWrite($dtconfig,"Integration_MountOnEmpty", "REG_DWORD", "1")

$dtoptions="HKCU\Software\DT Soft\DAEMON Tools Lite\Options"
RegWrite($dtoptions,"PanelIncluded", "REG_DWORD", "0")
RegWrite($dtoptions,"PanelTopmost", "REG_DWORD", "0")
RegWrite($dtoptions,"ShowPanelByDblClick", "REG_DWORD", "0")
RegWrite($dtoptions,"PanelVisble", "REG_DWORD", "0")

$dtclasses="HKLM\SOFTWARE\Classes\"
RegWrite($dtclasses & ".b5t","","REG_SZ","DAEMON.Tools.Lite")
RegWrite($dtclasses & ".b6t","","REG_SZ","DAEMON.Tools.Lite")
RegWrite($dtclasses & ".bwt","","REG_SZ","DAEMON.Tools.Lite")
RegWrite($dtclasses & ".ccd","","REG_SZ","DAEMON.Tools.Lite")
RegWrite($dtclasses & ".cdi","","REG_SZ","DAEMON.Tools.Lite")
RegWrite($dtclasses & ".cue","","REG_SZ","DAEMON.Tools.Lite")
RegWrite($dtclasses & ".iso","","REG_SZ","DAEMON.Tools.Lite")
RegWrite($dtclasses & ".isz","","REG_SZ","DAEMON.Tools.Lite")
RegWrite($dtclasses & ".mds","","REG_SZ","DAEMON.Tools.Lite")
RegWrite($dtclasses & ".nrg","","REG_SZ","DAEMON.Tools.Lite")
RegWrite($dtclasses & ".pdi","","REG_SZ","DAEMON.Tools.Lite")

Local $Done = False
While Not $Done

If WinExists("Device parameters") Then
ControlClick("Device parameters", "", "Button5")
ControlClick("Device parameters", "", "ComboBox1")
ControlSend("[LAST]", "", "", "{END}{UP 2}{ENTER}")
Sleep(100)
ControlClick("Device parameters", "", "Button2")
Sleep(1000)
ExitLoop
Else
_GUICtrlToolbar_ClickButton($hSysTray, $BtnNum, "right")
WinWait("[CLASS:#32768]", "", 5)
SendKeepActive("[LAST]")
ControlSend("[LAST]", "", "", "{UP 6}{RIGHT 2}{DOWN}{ENTER}")
Sleep(1000)
EndIf
WEnd

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...