tym Posted October 29, 2008 Share Posted October 29, 2008 (edited) Tried to get some help in the autoit forms. Um no luck there. So I thought I would try here . I have a install I am doing. I got the silent install done. I need a script to help with the install. Problem is while trying to slipstream this norton ghost 2003, It starts the install but its like I need to stall the installation for a short time to give nortons time to install. I am new to autoit script. I am just now learning it. The first install I tried without script failed. Its like I need to stall the program to give it time to install. Without the script it starts to install, but the next addon starts to install at the same time and nortons fails. I used automatated script maker for the setup file. I just need to figure out what to change and how to change it. First question. What is the diffrence between "use winexists in a loop" and "use winwaits in sequence" ? I guessed and picked "use winwaits in sequence" Second queston, What do I need to change to get the install to wait a short time to give nortons time to install.?? Here is my script.#region - setup install script - (Automated with WinWait functions)Opt('TrayIconDebug', 1)Opt('WinDetectHiddenText', 1)Opt('WinTitleMatchMode', 4); Installer.$executable = 'setup.exe'; Show progess.$splash = 0; Default catagory folder in startmenu.$group = ''; New catagory to move the default folder into.$catagory = ''; Installation folder in Program Files.$directory = ''; Run the installer.$pid = _Install()If WinWait('', '', 60) Then ControlClick('', '', '') WinWait('', '') ControlClick('', '', '') WinWait('', '') ControlClick('', '', '') WinWait('', '') ControlClick('', '', '') WinWait('', '') ControlClick('', '', '')Else _Abort()EndIfProcessWaitClose($pid); Remove shortcuts.If _MainShortcut('?.lnk') Then ; Relative to shortcut directories ; Remove Startmenu shortcuts FileDelete('?.lnk') FileDelete('?.lnk') FileDelete('?.lnk') FileDelete('?.lnk') FileDelete('?.lnk') ; Remove other shortcuts _Desktop('?.lnk') _QuickLaunch('?.lnk')EndIf#endregionExit#cs - Exitcodes 1 = _Install(): Installer not found 2 = _Abort(): Installer process closed and then Abort 3 = _Abort(): Abort only -1 = _ProcessBlock(): Blocked processes not unblocked#ceFunc _Install($path = 'Default') ; Run the installer in Default Script directory. Dim $splash, $processblock If $path = 'Default' Then $path = @ScriptDir If StringRight($path, 1) <> '\' Then $path = $path & '\' If StringInStr($executable, '\') Then $path = '' If Not FileExists($path & $executable) Then Exit 1 If $processblock <> '' Then Call('_' & 'ProcessBlock') If $splash Then _Splash('Installing:' & StringTrimRight(StringReplace(@ScriptName, '_', ' '), 4)) If StringRight($executable, 3) = 'msi' Then Return Run(@SystemDir & '\msiexec /i "' & $path & $executable & '"') Else Return Run($path & $executable) EndIfEndFuncFunc _Abort() ; close process if exists then exit. Dim $pid If ProcessExists($pid) Then ProcessClose($pid) Exit 2 Else Exit 3 EndIfEndFuncFunc _Desktop($shortcut) ; Delete a Desktop shortcut. If FileExists(@DesktopDir & '\' & $shortcut) Then Return FileDelete(@DesktopDir & '\' & $shortcut) ElseIf FileExists(@DesktopCommonDir & '\' & $shortcut) Then Return FileDelete(@DesktopCommonDir & '\' & $shortcut) EndIfEndFuncFunc _MainShortcut($shortcut, $rename = '') ; Change working directory to correct StartMenu\Group directory. Dim $group, $catagory, $splash If $group = '' Then Return 0 If FileExists(@ProgramsDir & '\' & $group) Then FileChangeDir(@ProgramsDir & '\' & $group) ElseIf FileExists(@ProgramsCommonDir & '\' & $group) Then FileChangeDir(@ProgramsCommonDir & '\' & $group) Else Return 0 EndIf ; Wait for main shortcut. If $splash Then _Splash('Waiting for shortcuts') For $i = 1 To 20 If FileExists($shortcut) Then ExitLoop Sleep(500) Next If $splash Then _Splash('Cleaning up:' & StringTrimRight(StringReplace(@ScriptName, '_', ' '), 4)) ; If catagory not assigned anything, then return. If $catagory = '' Then Return 1 ; Move the group folder into the catagory folder. If FileChangeDir('..') And DirCopy($group, $catagory & '\' & $group, 1) Then If DirRemove($group, 1) Then ; If optional rename parameter is used, then rename the group folder. If $rename <> '' And FileChangeDir($catagory) Then If DirCopy($group, $rename, 1) And DirRemove($group, 1) Then Return FileChangeDir($rename) EndIf Else Return FileChangeDir($catagory & '\' & $group) EndIf EndIf EndIfEndFuncFunc _QuickLaunch($shortcut) ; Delete a Quicklaunch shortcut. Local $subdirs = 'Microsoft\Internet Explorer\Quick Launch' If FileExists(@AppDataDir & '\' & $subdirs & '\' & $shortcut) Then Return FileDelete(@AppDataDir & '\' & $subdirs & '\' & $shortcut) ElseIf FileExists(@AppDataCommonDir & '\' & $subdirs & '\' & $shortcut) Then Return FileDelete(@AppDataCommonDir & '\' & $subdirs & '\' & $shortcut) EndIfEndFuncFunc _Splash($text = '') ; Shows a small borderless splash message. Dim $splash If $splash Then If $text Then SplashTextOn('', $text, 500, 25, -1, 5, 1, '', 14) Else SplashOff() EndIf EndIfEndFuncFunc _WinClose($title, $text = '') ; Close a window with further attempts. For $i = 1 To 10 WinClose($title, $text) If Not WinExists($title) Then Return 1 Sleep(500) NextEndFuncFunc OnAutoItStart() ; A 2nd script instance will exit. If StringInStr($CMDLINERAW, '/dummy') Then Exit If WinExists(@ScriptName & '_Interpreter') Then Exit AutoItWinSetTitle(@ScriptName & '_Interpreter')EndFunc This is just a copy and paste job. Edited October 29, 2008 by tym Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now