nibble74
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору AlexM2222 Можно добавить кнопку для выбора файла ответов. Код: #include <FileConstants.au3> Global $xmlpath = @ScriptDir & "\unattend.xml" --- $btn = GUICtrlCreateButton("A", 16, 130, 30, 23) --- filescheck() --- GUISetState(@SW_SHOW) While 1 $nmsg = GUIGetMsg() Call(KBDLayout) Switch $nmsg Case $btn $xmlcheck = FileOpenDialog("Выберите файл автоустановки", "", "(*.xml)|(*.*)", $FD_FILEMUSTEXIST, "Autounattend", $Form1) If @error Then ContinueLoop Global $xmlpath = $xmlcheck GUICtrlSetTip($btn, "Выбран файл автоустановки:" & @CRLF & $xmlpath, "Примечание", 1) GUICtrlSetBkColor($btn, 0x00FF00) EndSwitch WEnd Func filescheck() If Not FileExists($xmlpath) Then MsgBox(16 + 262144, "ВНИМАНИЕ", "Не найден файл, необходимый для автоустановки:" & @CRLF & $xmlpath) GUICtrlSetTip($btn, "Выберите файл автоустановки.", "Примечание", 3) GUICtrlSetBkColor($btn, 0xFF0000) Else GUICtrlSetTip($btn, "Выбран файл автоустановки:" & @CRLF & $xmlpath, "Примечание", 1) GUICtrlSetBkColor($btn, 0x00FF00) EndIf EndFunc Func go() $hfile = FileOpen($xmlpath, 0 + 128) $stext = StringRegExpReplace($stext, "(<CommandLine>cmd /c net localgroup Пользователи )(.+)( /delete</CommandLine>)", "\1" & StringStripWS(GUICtrlRead($name), 3) & "\3", 0) $hfile = FileOpen($xmlpath, 2 + 128) RunWait("x:\setup.exe /unattend:""" & $xmlpath & """") EndFunc | Так проще будет: Код: Func checkcompname() If StringRegExp(GUICtrlRead($compname), '[1234567890\s"{|}~^'':;<=>?@!#$%`()+/\\.,\]\[]') Then GUICtrlSetData($status, "Недопустимые символы") GUICtrlSetColor($status, 0xFF0000) GUICtrlSetColor($compname, 0xFF0000) $dataerror = 1 Else GUICtrlSetColor($compname, 0) EndIf EndFunc Func checkworkgroup() If StringRegExp(GUICtrlRead($workgroup), '[1234567890\s"{|}~^'':*;<=>?@!#$%`()+/\\.,\]\[]') Then GUICtrlSetData($status, "Недопустимые символы") GUICtrlSetColor($status, 0xFF0000) GUICtrlSetColor($workgroup, 0xFF0000) $dataerror = 1 Else GUICtrlSetColor($workgroup, 0) EndIf EndFunc | Ощибки в коде, надо так: не localgroups а localgroup не GUICtrlRead($displayname) а GUICtrlRead($name) в конце всего кода лучше использовать 0), т.к бывают совмещённые файлы ответов x86 и x64 Код: $stext = StringRegExpReplace($stext, "(<CommandLine>net localgroup Пользователи )(.+)( /delete</CommandLine>)", "\1" & StringStripWS(GUICtrlRead($name), 3) & "\3", 0) | |