procedure TForm1.setupClick(Sender: TObject); var sl: TstringList; begin if AutoRadioButton.Checked then begin if User.Text = '' then begin ShowMessage('Не задано имя пользователя!'); User.SetFocus; exit; end; if Login.Text = '' then begin ShowMessage('Не задан логин!'); Login.SetFocus; exit; end; if Compname.Text = '' then begin ShowMessage('Не задано имя компьютера!'); Compname.SetFocus; exit; end; if WorkGroup.Text = '' then begin ShowMessage('Не задана рабочая группа!'); WorkGroup.SetFocus; exit; end; if ProxyCheckBox.Checked then begin if ProxyName.Text = '' then begin ShowMessage('Не задан прокси!'); ProxyName.SetFocus; exit; end; end; if IPCheckBox.Checked then begin if IPaddr.Text = '' then begin ShowMessage('Не задан IP адрес!'); IPaddr.SetFocus; exit; end; if Subnet.Text = '' then begin ShowMessage('Не задана подсеть!'); Subnet.SetFocus; exit; end; end; if DnsCheckBox.Checked then begin if Dns.Text = '' then begin ShowMessage('Не задан DNS адрес!'); Dns.SetFocus; exit; end; end; end; if (application.MessageBox(pchar('Начать установку?'), pchar('Установка Windows'), MB_OKCANCEL + MB_ICONWARNING) <> IdOK) then exit; try MkDir(DataDir); except end; if (SetDrivers) and (AutoRadioButton.Checked) and (SevenZip1 <> nil) then begin if application.MessageBox(pchar('Установить пакеты драйверов?'), pchar('Установка Windows'), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON1) = IdYES then begin HideMainForm; Form1.Height := 180; RebootPanel.Visible := False; SetupPanel.Visible := False; ExtrPanel.Visible := true; RestoreMainForm; application.ProcessMessages; ForceDirectories(DataDir + '\$1'); ExtractAll(CurDir + 'DRIVERS', DataDir + '\$1\SD'); DrvPath := ''; DriversPath(DataDir + '\$1\SD'); if Tag = 1 then begin close; Exit; end end; end; sl := TstringList.Create; if AutoRadioButton.Checked then begin //-----------CMDLINES.TXT sl.Clear; sl.Add('[Commands]'); sl.Add('"REGEDIT /S logon.reg"'); sl.Add('"autoset.cmd"'); sl.SaveToFile(DataDir + '\CMDLINES.TXT'); //-----------LOGON.REG sl.Clear; sl.Add('REGEDIT4'); if CheckBox1.Checked then begin sl.Add('[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]'); sl.Add('"DefaultUserName"="' + Login.Text + '"'); sl.Add('"DefaultPassword"="' + Password.Text + '"'); sl.Add('"AutoAdminLogon"="1"'); end; sl.Add('[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]'); sl.Add('"001"="reblogo.exe /r"'); sl.SaveToFile(DataDir + '\LOGON.REG'); //-----------AUTOSET.CMD sl.Clear; buf := pchar('net user "' + Login.Text + '" "' + Password.Text + '" /add '); CharToOemBuff(buf, buf, length(buf)); sl.Add(buf); buf := pchar('net localgroup Администраторы "' + Login.Text + '" /add '); CharToOemBuff(buf, buf, length(buf)); sl.Add(buf); sl.Add('net accounts /maxpwage:unlimited'); sl.Add('copy reblogo.exe %windir%\reblogo.exe'); sl.Add('EXIT'); sl.SaveToFile(DataDir + '\AUTOSET.CMD'); //-----------AUTOSET.INI sl.Clear; sl.Add('[Data]'); sl.Add(' MsDosInitiated=No'); sl.Add(' UnattendedInstall=Yes'); sl.Add(' AutomaticUpdates=yes'); sl.Add('[Unattended]'); sl.Add(' UnattendMode=FullUnattended'); sl.Add(' OemSkipEula=Yes'); sl.Add(' OemPreinstall=Yes'); sl.Add(' OemFilesPath="' + DataDir + '"'); sl.Add(' TargetPath=\WINDOWS'); sl.Add(' DriverSigningPolicy=Ignore'); sl.Add(' Repartition=No'); sl.Add(' WaitForReboot="No"'); if (SetDrivers) and (DrvPath <> '') then sl.Add(' OemPnPDriversPath="' + DrvPath + '"'); sl.Add('[Display]'); sl.Add(' BitsPerPel=32'); sl.Add(' Xresolution=1024'); sl.Add(' YResolution=768'); // sl.Add(' Vrefresh=85'); sl.Add('[GuiUnattended]'); sl.Add(' AdminPassword=*'); sl.Add(' EncryptedAdminPassword=no'); sl.Add(' OEMSkipRegional=1'); sl.Add(' TimeZone=180'); sl.Add(' OemSkipWelcome=1'); sl.Add('[RegionalSettings]'); sl.Add(' LanguageGroup=5'); sl.Add(' SystemLocale=00000419'); sl.Add(' UserLocale=00000419'); sl.Add(' InputLocale=0419:00000419;0409:00000409'); sl.Add('[UserData]'); if not w2k then sl.Add(' ProductKey="' + sn + '"') else sl.Add(' ProductID="' + sn + '"'); sl.Add(' FullName="' + User.Text + '"'); sl.Add(' OrgName=""'); sl.Add(' ComputerName="' + Compname.Text + '"'); sl.Add('[TapiLocation]'); sl.Add(' CountryCode=7'); sl.Add(' Dialing=Tone'); sl.Add(' AreaCode=351'); sl.Add(' LongDistanceAccess="8"'); sl.Add('[Branding]'); sl.Add(' BrandIEUsingUnattended=Yes'); if ProxyCheckBox.Checked then begin sl.Add('[Proxy]'); sl.Add(' Proxy_Enable=1'); sl.Add(' Use_Same_Proxy=1'); sl.Add(' HTTP_Proxy_Server="' + ProxyName.Text + '"'); if ProxyOver.Text <> '' then sl.Add(' Proxy_Override="' + ProxyOver.Text + '"'); end; sl.Add('[Identification]'); sl.Add(' JoinWorkgroup="' + WorkGroup.Text + '"'); if (not IPCheckBox.Checked) and (not DnsCheckBox.Checked) then begin sl.Add('[Networking]'); sl.Add(' InstallDefaultComponents=Yes'); end else begin sl.Add('[Networking]'); sl.Add(' InstallDefaultComponents=No'); sl.Add('[NetAdapters]'); sl.Add(' Adapter1=params.Adapter1'); sl.Add('[params.Adapter1]'); sl.Add(' INFID=*'); sl.Add('[NetClients]'); sl.Add(' MS_MSClient=params.MS_MSClient'); sl.Add('[NetServices]'); sl.Add(' MS_SERVER=params.MS_SERVER'); sl.Add('[NetProtocols]'); sl.Add(' MS_TCPIP=params.MS_TCPIP'); sl.Add('[params.MS_TCPIP]'); sl.Add(' DNS=No'); sl.Add(' UseDomainNameDevolution=No'); sl.Add(' EnableLMHosts=Yes'); sl.Add(' AdapterSections=params.MS_TCPIP.Adapter1'); sl.Add('[params.MS_TCPIP.Adapter1]'); sl.Add(' SpecificTo=Adapter1'); if IPCheckBox.Checked then begin sl.Add(' DHCP=No'); sl.Add(' IPAddress="' + IPAddr.Text + '"'); sl.Add(' SubnetMask="' + Subnet.Text + '"'); if Gateway.Text <> '' then sl.Add(' DefaultGateway="' + Gateway.Text + '"'); end else sl.Add(' DHCP=Yes'); if dns.Text <> '' then sl.Add(' DNSServerSearchOrder="' + dns.Text + '"'); sl.Add(' WINS=No'); sl.Add(' NetBIOSOptions=0'); end; sl.Add('[Components]'); sl.Add(' msmsgs=off'); sl.Add(' msnexplr=off'); sl.Add(' zonegames=off'); sl.Add(' media_clips=Off'); sl.Add(' rec=Off'); sl.Add(' deskpaper=Off'); sl.Add(' hypertrm=Off'); sl.Add(' media_utopia=Off'); sl.Add(' mousepoint=Off'); sl.Add(' mswordpad=Off'); sl.Add(' templates=Off'); sl.SaveToFile(DataDir + '\AUTOSET.INI'); //-----------REBLOGO.EXE copyfile(pchar(paramstr(0)), pchar(DataDir + '\REBLOGO.EXE'), false); end else begin //-----------AUTOSET.INI sl.Clear; sl.Add('[Data]'); sl.Add(' MsDosInitiated=No'); sl.Add(' UnattendedInstall=Yes"'); sl.Add('[Unattended]'); sl.Add(' UnattendMode=DefaultHide'); sl.Add(' OemPreinstall=No'); sl.Add('[UserData]'); if not w2k then sl.Add(' ProductKey="' + sn + '"') else sl.Add(' ProductID="' + sn + '"'); sl.SaveToFile(DataDir + '\AUTOSET.INI'); end; sl.free; GrProcess(CurDir + 'i386\winnt32 /s:"' + CurDir + 'i386" /makelocalsource /noreboot /unattend:"' + DataDir + '\AUTOSET.INI"', 'wait'); Form1.HideMainForm; Form1.Timer2.Interval := 10; end