warezoogle3
Новичок
- Сообщения
- 73
- Репутация
- 1
Дождались!
С помощью ОГРОМНОЙ поддержки и помощи участников,модераторов,супермотераторов и администраторов сделал наконец-то свой скрипт!
СПАСИБО ВАМ ОГРОМНОЕ,ДОБРЫЕ ЛЮДИ! :beer: :IL_AutoIt_1:
Но (как и всегда у новичков) заметил,что некоторые вещи не работают! ;D
В общем,более подробно:
Вроде все должно нормально работать (и работало),но вот при добавлении все большего количества код в скрипт, на этой части скрипта
где должно убиться процесс и продолжаться установка на Windows 7,скрипт останавливается и дальше не идет (на Windows XP все нормально,посколько по условному переходу речь о нем не идет)!
Заного собрать инсталлятор без появления процесса на Windows 7,не представляется возможным!
Никак не могу исправить!
Помогите пожалуйста,ДОБРЫЕ ЛЮДИ!
С помощью ОГРОМНОЙ поддержки и помощи участников,модераторов,супермотераторов и администраторов сделал наконец-то свой скрипт!
СПАСИБО ВАМ ОГРОМНОЕ,ДОБРЫЕ ЛЮДИ! :beer: :IL_AutoIt_1:
Но (как и всегда у новичков) заметил,что некоторые вещи не работают! ;D
В общем,более подробно:
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiTab.au3>
#RequireAdmin
;собственно GUI скрипта
#region ### START Koda GUI section ###
$Form1_1 = GUICreate("Zinguilla 6 Sigma Edition", 464, 453, 288, 125)
$Label1 = GUICtrlCreateLabel(" Zinguilla 6 Sigma Edition", 80, 32, 288, 33)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
$Button1 = GUICtrlCreateButton("Change Regional Settings", 144, 152, 171, 25) ;первая кнопка
$Button2 = GUICtrlCreateButton("Install Zinguilla 6 Sigma Edition", 144, 248, 171, 25) ;вторая кнопка
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\Zinguilla_logo.jpg", 80, 72, 292, 68) ;логотип
$Label2 = GUICtrlCreateLabel("Warning! After pressing the Change Regional Settings button your computer may restart!", 24, 192, 418, 17)
$Label3 = GUICtrlCreateLabel("Please save all unsaved data and close all running programs!", 88, 216, 292, 17)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Button1Click()
Case $Button2
Button2Click()
EndSwitch
WEnd
Func Button1Click() ;код первой кнопки
;меняем региональные настройки
If @OSVersion = "WIN_XP" Then ;для Windows XP
Run(@ComSpec & " /c start " & @SystemDir & "\intl.cpl")
WinWait('Regional and Language Options')
$hTab = ControlGetHandle('Regional and Language Options', '', 'SysTabControl321')
$tIndex = _GUICtrlTab_FindTab($hTab, 'Regional Options', True, 0)
_GUICtrlTab_SetCurFocus($hTab, $tIndex)
ControlCommand("Regional and Language Options", "Standards and formats", 1021, "SelectString", 'English (United States)')
ControlClick("Regional and Language Options", "Standards and formats", "Button6")
ControlCommand("Regional and Language Options", "Location", 1023, "SelectString", 'United States')
ControlClick("Regional and Language Options", "Location", "Button6")
Sleep(1000)
$tIndex2 = _GUICtrlTab_FindTab($hTab, 'Advanced', True, 0)
_GUICtrlTab_SetCurFocus($hTab, $tIndex2)
ControlCommand("Regional and Language Options", "Language for non-Unicode programs", 1052, "SelectString", 'English (United States)')
ControlClick("Regional and Language Options", "Language for non-Unicode programs", "Button7")
Else ;для Windows Vista,7
Run(@ComSpec & " /c start " & @SystemDir & "\intl.cpl") ;меняем региональные настройки
WinWait('Region and Language')
$hTab = ControlGetHandle('Region and Language', '', 'SysTabControl321')
$tIndex = _GUICtrlTab_FindTab($hTab, 'Formats', True, 0)
_GUICtrlTab_SetCurFocus($hTab, $tIndex)
ControlCommand("Region and Language", "Formats", 1021, "SelectString", 'English (United States)')
ControlClick("Region and Language", "Formats", "Button6")
Sleep(1000)
$tIndex2 = _GUICtrlTab_FindTab($hTab, 'Location', True, 0)
_GUICtrlTab_SetCurFocus($hTab, $tIndex2)
ControlCommand("Region and Language", "Current location", 1023, "SelectString", 'United States')
ControlClick("Region and Language", "Current location", "Button3")
Sleep(1000)
$tIndex3 = _GUICtrlTab_FindTab($hTab, 'Administrative', True, 0)
_GUICtrlTab_SetCurFocus($hTab, $tIndex3)
ControlClick("Region and Language", "Language for non-Unicode programs", "Button4")
WinWaitActive("Region and Language Settings", "Current system locale")
WinActivate("Region and Language Settings", "Current system locale")
ControlCommand("Region and Language Settings", "Current system locale", 1052, "SelectString", 'English (United States)')
ControlClick("Region and Language Settings", "Current system locale", "Button1")
EndIf
EndFunc
Func Button2Click() ;код второй кнопки
;инсталлируем шрифты и директории скрипта
Const $FONTS = 0x14
$oShell = ObjCreate("Shell.Application")
$oWinFonts = $oShell.Namespace($FONTS)
;Шрифты должны быть в той же директории
$sFirstFile = FileFindFirstFile("*.*")
If $sFirstFile = -1 Then
Exit
EndIf
While 1
Local $sFile = FileFindNextFile($sFirstFile)
If @error Then ExitLoop
Switch StringRight($sFile, 3)
Case 'ttf', 'otf', 'pfm', 'fon'
$sWinFontsPath = @WindowsDir & '\Fonts\' & $sFile
$sLocFontsPath = @ScriptDir & '\' & $sFile
If Not FileExists($sWinFontsPath) Then
$oWinFonts.CopyHere($sLocFontsPath)
Else
MsgBox(262144, $sFile, 'The font is already installed', 1)
EndIf
EndSwitch
WEnd
AutoItSetOption("WinTitleMatchMode", 2)
AutoItSetOption("WinDetectHiddenText", 1)
WinMinimizeAll()
Sleep(1000)
;Запускаем программу установки и начинаем инсталлировать
Run('Zinguilla6_Setup.exe')
$WinTitle = "Zinguilla 6 Sigma Edition - InstallShield Wizard"
WinWaitActive($WinTitle, "Welcome to the InstallShield Wizard for LSBANK 6.0 VTB Edition")
WinActivate($WinTitle, "Welcome to the InstallShield Wizard for Zinguilla 6 Sigma Edition")
Send('{ENTER}')
WinWaitActive($WinTitle, "Customer Information")
WinActivate($WinTitle, "Customer Information")
ControlSetText($WinTitle, "Customer Information", "Edit1", "CKD626U")
ControlSetText($WinTitle, "Customer Information", "Edit2", "6W1K")
ControlSetText($WinTitle, "Customer Information", "Edit3", "FLFJ")
ControlSetText($WinTitle, "Customer Information", "Edit4", "QWD9")
ControlSetText($WinTitle, "Customer Information", "Edit5", "BKG06C4AC")
ControlClick($WinTitle, "", "Button5")
WinWaitActive($WinTitle, "Ready to Install the Program")
WinActivate($WinTitle, "Ready to Install the Program")
ControlClick($WinTitle, "", "Button6")
ControlClick($WinTitle, "", "Button1")
;На Windows 7 при установке появляется процесс MSI***.TMP,
;где *** случайные цифры,и вешает установку,
;но если удалить процесс,то установка продолжается,поэтому удаляем процесс
If @OSVersion = "WIN_7" Then
Sleep(3000)
$PIDs = ProcessList()
For $i = 1 To $PIDs[0][0]
$Reg = StringRegExp($PIDs[$i][0], 'MSI.*\.tmp', 3)
If $Reg <> 1 Then
If ProcessExists($PIDs[$i][1]) Then ProcessClose($PIDs[$i][1])
EndIf
Next
EndIf
Sleep(1000)
WinWaitActive($WinTitle, "InstallShield Wizard Completed")
WinActivate($WinTitle, "InstallShield Wizard Completed")
Send('{ENTER}')
Sleep(5000)
;Устанавливаем тему
If @OSVersion = "WIN_XP" Then ;для Windows XP
$theme = @ScriptDir & "\KDW ARM_XP.Theme"
ShellExecute($theme, "", "", "open", @SW_HIDE)
WinWaitActive("Display Properties")
WinActivate("Display Properties")
ControlClick("Display Properties", "", "Button5")
ControlClick("Display Properties", "", "Button3")
Else ;для Windows Vista,7
WinWaitActive("Control Panel\All Control Panel Items\Personalization")
WinActivate("Control Panel\All Control Panel Items\Personalization")
WinClose("Control Panel\All Control Panel Items\Personalization")
Sleep(3000)
$theme = @ScriptDir & "\Win 7 Blue New.themepack"
ShellExecute($theme, "", "", "open", @SW_HIDE)
WinWaitActive("Control Panel\All Control Panel Items\Personalization")
WinActivate("Control Panel\All Control Panel Items\Personalization")
WinClose("Control Panel\All Control Panel Items\Personalization")
EndIf
;Меняем конфигурацию
$sPath = @CommonFilesDir & '\Borland Shared\BDE\idapi32.cfg'
If FileCopy(@ScriptDir & '\idapi32.cfg', $sPath, 9) Then
Else
If Not FileSetAttrib($sPath, '-RST') Then
MsgBox(16, 'Error', 'FileSetAttrib')
Exit -33
Else
If Not FileCopy(@ScriptDir & '\idapi32.cfg', $sPath, 9) Then
MsgBox(16, 'Error', 'FileCopy')
Exit -44
EndIf
EndIf
EndIf
$__msgbox = MsgBox(0, 'Zinguilla 6 Sigma Edition', 'Setup done')
EndFunc
Exit
Вроде все должно нормально работать (и работало),но вот при добавлении все большего количества код в скрипт, на этой части скрипта
Код:
;На Windows 7 при установке появляется процесс MSI***.TMP,
;где *** случайные цифры,и вешает установку,
;но если удалить процесс,то установка продолжается,поэтому удаляем процесс
If @OSVersion = "WIN_7" Then
Sleep(3000)
$PIDs = ProcessList()
For $i = 1 To $PIDs[0][0]
$Reg = StringRegExp($PIDs[$i][0], 'MSI.*\.tmp', 3)
If $Reg <> 1 Then
If ProcessExists($PIDs[$i][1]) Then ProcessClose($PIDs[$i][1])
EndIf
Next
EndIf
Заного собрать инсталлятор без появления процесса на Windows 7,не представляется возможным!
Никак не могу исправить!
Помогите пожалуйста,ДОБРЫЕ ЛЮДИ!