Makrut
Новичок
- Сообщения
- 44
- Репутация
- 2
Здравствуйте, для собственных целей я написал установщик, но проблема заключается в том, что он устанавливает только в корень диска. К примеру, в D: он установит, а в D:\Новая папка он не установит. Прошу совета в том, как исправить данную проблему.
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Установка ", 490, 110, 227, 181)
$Input1 = GUICtrlCreateInput('C:\', 24, 16, 321, 21)
$location = GUICtrlCreateButton("Выбор папки", 360, 14, 113, 24)
$progressbar = GUICtrlCreateProgress(24, 64, 321, 21)
$setup = GUICtrlCreateButton("Установить", 360, 62, 113, 24)
GUISetIcon('C:\Users\Константин\Downloads\favicon.ico')
GUICtrlSetImage ($Form1, 'C:\Users\Константин\Downloads\ico.ico')
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $file = 'C:\'
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $location;путь установки
$file = FileSelectFolder('Выбрать путь', "", 1);выбираем путь установки программы
DirCreate($file)
If @error then
GUICtrlSetData ($Input1, 'C:\')
Else
GUICtrlSetData ($Input1, $file)
EndIf
Case $setup
msgBox(0, 'Установка', $file)
If FileInstall("C:\Users\Константин\Desktop\Управляющий.exe", $file, 1) = 1 Then
GUICtrlSetData($progressbar, 25)
Else
MsgBox(0, 'Установка', 'Номер ошибки: ' & @error & '. ' & 'Заново произведите установку или обратитесь к автору ПО.')
Exit
EndIf
If FileInstall("C:\Users\Константин\Desktop\MySettings.ini", $file, 1) = 1 Then
GUICtrlSetData($progressbar, 50)
Else
MsgBox(0, 'Установка', 'Номер ошибки: ' & @error & '. ' & 'Заново произведите установку или обратитесь к автору ПО.')
Exit
EndIf
If FileInstall("C:\Users\Константин\Desktop\IPs.ini", $file, 1) = 1 Then
GUICtrlSetData($progressbar, 75)
Else
MsgBox(0, 'Установка', 'Номер ошибки: ' & @error & '. ' & 'Заново произведите установку или обратитесь к автору ПО.')
Exit
EndIf
If FileInstall("C:\Users\Константин\Desktop\Исполнитель.exe", $file, 1) = 1 Then
GUICtrlSetData($progressbar, 100)
Else
MsgBox(0, 'Установка', 'Номер ошибки: ' & @error & '. ' & 'Заново произведите установку или обратитесь к автору ПО.')
Exit
EndIf
Sleep (1000)
GUISetState(@SW_HIDE)
$Form1 = GUICreate("1", 242, 99, 192, 124)
$Label1 = GUICtrlCreateLabel("Установить ярлык на рабочий стол?", 26, 16, 188, 33)
$Button1 = GUICtrlCreateButton("Да", 8, 56, 97, 33)
$Button2 = GUICtrlCreateButton("Нет", 128, 56, 97, 33)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUISetState(@SW_HIDE)
FileCreateShortcut ( $file & "Управляющий.exe" , @DesktopDir & "\Управляющий - Ярлык.lnk")
MsgBox(0, 'Установка', 'Установка успешно завершена. Приятного пользования.')
Exit
Case $Button2
GUISetState(@SW_HIDE)
MsgBox(0, 'Установка', 'Установка успешно завершена. Приятного пользования.')
Exit
EndSwitch
WEnd
EndSwitch
WEnd