troon Posted December 17, 2015 Posted December 17, 2015 I have a Program which install some Programms automatic: expandcollapse popup#RequireAdmin #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <file.au3> #Region ### START Koda GUI section ### Form=K:\Privat\Programme\Autoit\GUI´s\Tools.kxf $Tools = GUICreate("Grundinstalation", 121, 259, 192, 124) $Supportinfos = GUICtrlCreateCheckbox("SupportInfos", 16, 8, 97, 17) $7zipx32 = GUICtrlCreateCheckbox("7 Zip x32", 16, 24, 97, 17) $7zipx64 = GUICtrlCreateCheckbox("7 Zip x64", 16, 40, 97, 17) $cdbx32 = GUICtrlCreateCheckbox("CDB x32", 16, 56, 97, 17) $cdbx64 = GUICtrlCreateCheckbox("CDB x64", 16, 72, 97, 17) $freepdf = GUICtrlCreateCheckbox("FreePDF", 16, 88, 97, 17) $gsx32 = GUICtrlCreateCheckbox("GhosScript x32", 16, 104, 97, 17) $gsx64 = GUICtrlCreateCheckbox("GhostScript x64", 16, 120, 97, 17) $javax32 = GUICtrlCreateCheckbox("Java x32", 16, 136, 97, 17) $javax64 = GUICtrlCreateCheckbox("Java x64", 16, 152, 97, 17) $fernwartung = GUICtrlCreateCheckbox("Fernwartung", 16, 168, 97, 17) $adobereader = GUICtrlCreateCheckbox("AdobeReaderDC", 16, 184, 97, 17) $flashplayer = GUICtrlCreateCheckbox("Flashplayer", 16, 200, 97, 17) $go = GUICtrlCreateButton("Go", 16, 224, 75, 25) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### If Not FileExists("C:\Install") Then _FileCreate("C:\Install") EndIf If Not FileExists("C:\Install\IT-Motion") Then _FileCreate("C:\Install\IT-Motion") EndIf While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $go If GUICtrlRead($Supportinfos) = 1 Then FileCopy(@ScriptDir & "\itm-logo.bmp", "C:\Install\IT-Motion") sleep(1000) RegWrite("HKEY_LOCAL_MACHINE64\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation", "Logo", "REG_SZ", "c:\Install\IT-Motion\itm-logo.bmp") RegWrite("HKEY_LOCAL_MACHINE64\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation", "Manufacturer", "REG_SZ", "RIZ IT-Motion GmbH") RegWrite("HKEY_LOCAL_MACHINE64\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation", "SupportHours", "REG_SZ", "Werktags von 08:30 Uhr bis 12:00 Uhr und von 13:00 Uhr bis 17:30 Uhr") RegWrite("HKEY_LOCAL_MACHINE64\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation", "SupportPhone", "REG_SZ", "+49 (0)7732 939 1 940") RegWrite("HKEY_LOCAL_MACHINE64\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation", "SupportURL", "REG_SZ", "http://www.riz-itmotion.de") EndIf if GUICtrlRead($7zipx32) = 1 Then ShellExecute(@ScriptDir & "\7z920-x64.msi") WinWait("7-Zip 9.20 Setup","&Next") ControlClick("7-Zip 9.20 Setup", "&Next", "Button1") sleep(10) ControlClick("7-Zip 9.20 Setup", "I &accept the terms in the License Agreement", "Button1") sleep(10) ControlClick("7-Zip 9.20 Setup", "&Next", "Button3") sleep(10) ControlClick("7-Zip 9.20 Setup", "&Next", "Button5") sleep(10) ControlClick("7-Zip 9.20 Setup", "&Install", "Button1") WinWaitActive("7-Zip 9.20 Setup", "&Finish") ControlClick("7-Zip 9.20 Setup", "&Finish", "Button1") sleep(3000) EndIf If GUICtrlRead($7zipx64) = 1 then ShellExecute(@ScriptDir & "\7z920-x64.msi") WinWait("7-Zip 9.20 (x64 edition) Setup", "&Next") ControlClick("7-Zip 9.20 (x64 edition) Setup", "&Next", "Button1") sleep(10) ControlClick("7-Zip 9.20 (x64 edition) Setup", "I &accept the terms in the License Agreement", "Button1") sleep(10) ControlClick("7-Zip 9.20 (x64 edition) Setup", "&Next", "Button3") sleep(10) ControlClick("7-Zip 9.20 (x64 edition) Setup", "&Next", "Button5") sleep(10) ControlClick("7-Zip 9.20 (x64 edition) Setup", "&Install", "Button1") WinWait("7-Zip 9.20 (x64 edition) Setup", "&Finish") ControlClick("7-Zip 9.20 (x64 edition) Setup", "&Finish", "Button1") sleep(3000) EndIf If GUICtrlRead($cdbx32) = 1 Then ShellExecute(@ScriptDir & "\cdbxp_setup_4.5.6.5931.msi") WinWait("CDBurnerXP Setup") ControlClick("CDBurnerXP Setup", "&Next", "Button1") sleep(10) ControlClick("CDBurnerXP Setup", "I &accept the terms in the License Agreement", "Button1") Sleep(10) ControlClick("CDBurnerXP Setup", "&Next", "Button4") sleep(10) ControlClick("CDBurnerXP Setup", "&Next", "Button5") sleep(10) ControlClick("CDBurnerXP Setup", "&Install", "Button1") sleep(10) WinWaitActive("CDBurnerXP Setup", "&Finish") ControlClick("CDBurnerXP Setup", "&Finish", "Button1") sleep(3000) Endif if GUICtrlRead($cdbx64) = 1 Then ShellExecute(@ScriptDir & "\cdbxp_setup_x64_4.5.6.5931.msi") WinWait("CDBurnerXP (64 bit) Setup") ControlClick("CDBurnerXP (64 bit) Setup", "&Next", "Button1") sleep(10) ControlClick("CDBurnerXP (64 bit) Setup", "I &accept the terms in the License Agreement", "Button1") Sleep(10) ControlClick("CDBurnerXP (64 bit) Setup", "&Next", "Button4") sleep(10) ControlClick("CDBurnerXP (64 bit) Setup", "&Next", "Button5") sleep(10) ControlClick("CDBurnerXP (64 bit) Setup", "&Install", "Button1") sleep(10) WinWaitActive("CDBurnerXP (64 bit) Setup", "&Finish") ControlClick("CDBurnerXP (64 bit) Setup", "&Finish", "Button1") sleep(3000) EndIf if GUICtrlRead($gsx64) = 1 Then ShellExecute(@ScriptDir & "\gs907w64.exe") WinWait("GPL Ghostscript Setup") ControlClick("GPL Ghostscript Setup", "&Next >", "Button2") sleep(10) ControlClick("GPL Ghostscript Setup", "I &Agree", "Button2") sleep(10) ControlClick("GPL Ghostscript Setup", "&Install", "Button2") sleep(10) WinWait("GPL Ghostscript Setup", "&Finish") ControlClick("GPL Ghostscript Setup", "&Show Readme", "Button5") Sleep(10) ControlClick("GPL Ghostscript Setup", "&Finish", "Button2") sleep(3000) EndIf if GUICtrlRead($gsx32) = 1 Then ShellExecute(@ScriptDir & "\gs907w32.exe") WinWait("GPL Ghostscript Setup") ControlClick("GPL Ghostscript Setup", "&Next >", "Button2") sleep(10) ControlClick("GPL Ghostscript Setup", "I &Agree", "Button2") sleep(10) ControlClick("GPL Ghostscript Setup", "&Install", "Button2") sleep(10) WinWait("GPL Ghostscript Setup", "&Finish") ControlClick("GPL Ghostscript Setup", "&Show Readme", "Button5") Sleep(10) ControlClick("GPL Ghostscript Setup", "&Finish", "Button2") sleep(3000) EndIf If GUICtrlRead($freepdf) = 1 Then ShellExecute(@ScriptDir & "\FreePDF4.08.exe") WinWait("FreePDF 4.08", "&Setup") ControlClick("FreePDF 4.08", "&Setup", "ThunderRT5CommandButton3") Sleep(10) WinWait("FreePDF 4.08", "&End") ControlClick("FreePDF 4.08", "&End", "ThunderRT5CommandButton1") sleep(3000) EndIf If GUICtrlRead($adobereader) = 1 Then ShellExecute(@ScriptDir & "\AcroRdrDC1500920069_de_DE\AcroRead.msi") WinWait("Adobe Acrobat Reader DC – Installation", "&Installieren") ControlClick("Adobe Acrobat Reader DC – Installation", "&Installieren", "Button4") WinWait("Adobe Acrobat Reader DC – Installation", "&Fertigstellen") ControlClick("Adobe Acrobat Reader DC – Installation", "&Fertigstellen", "Button1") sleep(3000) EndIf If GUICtrlRead($flashplayer) = 1 then ShellExecute(@ScriptDir & "\20.0.0.228\install_flash_player_20_active_x.msi") WinWait("Adobe Flash Player 20 ActiveX - InstallShield Wizard", "&Install") ControlClick("Adobe Flash Player 20 ActiveX - InstallShield Wizard", "&Install", "Button1") sleep(10) WinWait("Adobe Flash Player 20 ActiveX - InstallShield Wizard", "&Finish") sleep(10) ControlClick("Adobe Flash Player 20 ActiveX - InstallShield Wizard","&Finish", "Button1") sleep(10) ShellExecute(@ScriptDir & "\20.0.0.228\install_flash_player_20_plugin.msi") WinWait("Adobe Flash Player 20 NPAPI - InstallShield Wizard", "&Install") sleep(10) ControlClick("Adobe Flash Player 20 NPAPI - InstallShield Wizard", "&Install", "Button1") WinWait("Adobe Flash Player 20 NPAPI - InstallShield Wizard", "&Finish") ControlClick("Adobe Flash Player 20 NPAPI - InstallShield Wizard", "&Finish", "Button1") sleep(3000) EndIf If GUICtrlRead($fernwartung) = 1 Then Endif MsgBox(0 ,"Tools", "Der Installier Vorgang wurde abgeschlossen! JAVA MUSS EXTRA INSTALLIERT WERDEN!") If GUICtrlRead($javax32) = 1 then ShellExecute(@ScriptDir & "\jre-8u66-windows-i586.exe") EndIf If GUICtrlRead($javax64) = 1 Then ShellExecute(@ScriptDir & "\jre-8u66-windows-x64.exe") EndIf Exit EndSwitch WEnd But if a Installation failes, i want that the programm stop the installation and start the next one, easyst way would be Goto, but there´s no goto in Autoit.
czardas Posted December 17, 2015 Posted December 17, 2015 (edited) After a quick look at your code, I see some possible issues. WinWait() and WinWaitActive() have a timeout option. You should use it, otherwise the script will wait forever if a windows fails to appear. You should also check the return values of ControlClick() and @error with ShellExecute(). Edited December 17, 2015 by czardas operator64 ArrayWorkshop
JohnOne Posted December 17, 2015 Posted December 17, 2015 look at what functions are, and use one for each install, "if a Installation failes" then return from that function. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
TheSaint Posted December 17, 2015 Posted December 17, 2015 You just need to get your head around - IF...ELSE, CASE statements, FUNCTIONS and the Return command, etc.Once you've got a handle on them, you will find that Goto is inferior. Make sure brain is in gear before opening mouth! Remember, what is not said, can be just as important as what is said. Spoiler What is the Secret Key? Life is like a Donut If I put effort into communication, I expect you to read properly & fully, or just not comment. Ignoring those who try to divert conversation with irrelevancies. If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it. I'm only big and bad, to those who have an over-active imagination. I may have the Artistic Liesense to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)
troon Posted December 17, 2015 Author Posted December 17, 2015 thanks for the fast help, ill look at functions
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