Не читаются настройки с AppLauncher Topic is solved

Помощь в написании скриптов
marusa122
Posts: 135
Joined: 22 Mar 2023, 07:48

Не читаются настройки с AppLauncher

06 May 2023, 03:37

Здравствуйте. Есть скрипт. При выборе "Да" на стартовом Msgbox открывается окно с настройками скрипта. Эти настройки пользователь меняет на свое усмотрение. При нажатии "Сохранить" они сохраняются в AppLauncher.ini, который лежит в папке уровнем выше. При нажатии "Начать работу" скрипт запускается с сохраненными настройками. Здесь все работает нормально.
При выборе "Нет" на стартовом Msgbox скрипт сразу запускается со сохраненными настройками.
И тут ошибка - при выборе "Нет" скрипт не читает настройки, сохраненные ранее в AppLauncher.ini. Вместо запуска скрипта сразу выскакивает ошибка "Вы не выбрали расположение рабочего браузера" (как если бы браузер не был выбран ранее при первоначальной настройке). Хотя в AppLauncher.ini расположение сохранено. В чем может быть проблема?

Code: Select all

#SingleInstance Force
#NoEnv
SetWorkingDir %A_ScriptDir%

ProgramName := "Программа1"


; Читаем настройки
GoSub ReadSettingsFromIni

MsgBox, 4, %ProgramName%, Вы хотите изменить настройки запуска? `n%ProgramName% пропустит этот шаг через несколько секунд..., 5
IfMsgBox Yes
{
	GoSub ShowSettingsWindow
	Return
}
else
; Тут или прошло пять секунд, или пользователь нажал Нет.
{
GoTo OnButtonRun
Return
}

; ===========================
; Конец секции автовыполнения



; Чтение настроек из .ini-файла в переменные
; ==========================================
ReadSettingsFromIni:
{
IniRead, viUser, %A_ScriptDir%\..\AppLauncher.ini, Settings, Username, Пользователь Windows
IniRead, viPass, %A_ScriptDir%\..\AppLauncher.ini, Settings, Password, 0000
IniRead, viApp0, %A_ScriptDir%\..\AppLauncher.ini, Settings, AppToRun0, %A_Space%

	Return
}


; Создание окна настроек
; ======================
ShowSettingsWindow:
{
Gui, New

Gui, Add, Text  , XM   YM   W60  R1, Уч. запись:
Gui, Add, Edit  , X+10 YP   W200 R1 vEd_User,  %viUser%

Gui, Add, Text  , XM   Y+M  W60  R1, Пароль:
Gui, Add, Edit  , X+10 YP   W200 R1 Password vEd_Pass,  %viPass%

Gui, Add, Text  , XM   Y+M  W60  R1, Браузер:
Gui, Add, Edit  , X+10 YP   W180 R1 vEd_App0,   %viApp0%
Gui, Add, Button, X+0  YP   W20  R1 vBt_App0 gOnButtonApp0, ...

Gui, Add, Button, XM   Y+M W270 R3 vBt_Run  gOnButtonRun , Начать работу
Gui, Add, Button, XM   Y+M W130 R1 vBt_Save gOnButtonSave, Сохранить
Gui, Add, Button, X+10 YP  W130 R1 vBt_Exit gOnButtonExit, Выйти

Gui, Show,, %ProgramName%
Return
}

; При нажатии Save значения из текстовых полей сохраняются в файл настроек AppLauncher.ini
OnButtonSave:
{
	Gui, Submit, NoHide
	IniWrite, %Ed_User%, %A_ScriptDir%\..\AppLauncher.ini, Settings, Username
	IniWrite, %Ed_Pass%, %A_ScriptDir%\..\AppLauncher.ini, Settings, Password
	IniWrite, %Ed_App0% , %A_ScriptDir%\..\AppLauncher.ini, Settings, AppToRun0
	Sleep 1000
	Msgbox,, %ProgramName%, Настройки успешно сохранены!, 5
	Return
}

; При нажатии кнопки с многоточием открываем окно выбора файла
OnButtonApp0:
{
	FileSelectFile, vOutFile,  % 1|2|32,  %A_ScriptDir%,  Выберите расположение рабочего браузера...,  Application (*.exe)
	If (ErrorLevel == 0)
		GuiControl, Text, Ed_App0, %vOutFile%
	Return
}

; При нажатии кнопки Start запускаем приложение с указанными в текстовых полях данными
OnButtonRun:
	Gui, Submit
	if (Ed_App0 = "")
	{
	  MsgBox, 16, %ProgramName%, Вы не выбрали расположение рабочего браузера. `nДля начала работы с браузером измените настройки запуска %ProgramName%, 5
	  return
	}
	RunAs, %Ed_User%, %Ed_Pass%
	Run %Ed_App0%
	Sleep, 5000
	MsgBox, 64, %ProgramName%, %ProgramName% запущена! `nЗдесь вы сможете начать работу, 5
	Return

	Return

; При нажатии Esc, закрытии окна или нажатии кнопки Exit скрипт завершается.
GuiClose:
GuiEscape:
OnButtonExit:
	ExitApp
mcl
Posts: 361
Joined: 04 May 2018, 16:35

Re: Не читаются настройки с AppLauncher  Topic is solved

06 May 2023, 14:30

marusa122 wrote: В чем может быть проблема?
Из .ini-файла настройки читаются в переменные viXXX. А при запуске используются переменные Ed_XXX.
Если окно настроек показывается, то переменные viXXX записываются в текстовые поля, и оттуда копируются в переменные Ed_XXX.
Если же окно не показывается, настройки читаются, но не копируются, и переменные Ed_XXX так и остаются пустыми.
Исправляется называнием одинаковыми именами всех переменных.
Привет :3

Code: Select all

#SingleInstance Force
#NoEnv
SetWorkingDir %A_ScriptDir%

ProgramName := "Программа1"


; Читаем настройки
GoSub ReadSettingsFromIni

MsgBox, 4, %ProgramName%, Вы хотите изменить настройки запуска? `n%ProgramName% пропустит этот шаг через несколько секунд..., 5
IfMsgBox Yes
{
	GoSub ShowSettingsWindow
	Return
}
else
; Тут или прошло пять секунд, или пользователь нажал Нет.
{
GoTo OnButtonRun
Return
}

; ===========================
; Конец секции автовыполнения



; Чтение настроек из .ini-файла в переменные
; ==========================================
ReadSettingsFromIni:
{
IniRead, Ed_User, %A_ScriptDir%\..\AppLauncher.ini, Settings, Username, Пользователь Windows
IniRead, Ed_Pass, %A_ScriptDir%\..\AppLauncher.ini, Settings, Password, 0000
IniRead, Ed_App0, %A_ScriptDir%\..\AppLauncher.ini, Settings, AppToRun0, %A_Space%

	Return
}


; Создание окна настроек
; ======================
ShowSettingsWindow:
{
Gui, New

Gui, Add, Text  , XM   YM   W60  R1, Уч. запись:
Gui, Add, Edit  , X+10 YP   W200 R1 vEd_User,  %Ed_User%

Gui, Add, Text  , XM   Y+M  W60  R1, Пароль:
Gui, Add, Edit  , X+10 YP   W200 R1 Password vEd_Pass,  %Ed_Pass%

Gui, Add, Text  , XM   Y+M  W60  R1, Браузер:
Gui, Add, Edit  , X+10 YP   W180 R1 vEd_App0,   %Ed_App0%
Gui, Add, Button, X+0  YP   W20  R1 vBt_App0 gOnButtonApp0, ...

Gui, Add, Button, XM   Y+M W270 R3 vBt_Run  gOnButtonRun , Начать работу
Gui, Add, Button, XM   Y+M W130 R1 vBt_Save gOnButtonSave, Сохранить
Gui, Add, Button, X+10 YP  W130 R1 vBt_Exit gOnButtonExit, Выйти

Gui, Show,, %ProgramName%
Return
}

; При нажатии Save значения из текстовых полей сохраняются в файл настроек AppLauncher.ini
OnButtonSave:
{
	Gui, Submit, NoHide
	IniWrite, %Ed_User%, %A_ScriptDir%\..\AppLauncher.ini, Settings, Username
	IniWrite, %Ed_Pass%, %A_ScriptDir%\..\AppLauncher.ini, Settings, Password
	IniWrite, %Ed_App0% , %A_ScriptDir%\..\AppLauncher.ini, Settings, AppToRun0
	Sleep 1000
	Msgbox,, %ProgramName%, Настройки успешно сохранены!, 5
	Return
}

; При нажатии кнопки с многоточием открываем окно выбора файла
OnButtonApp0:
{
	FileSelectFile, vOutFile,  % 1|2|32,  %A_ScriptDir%,  Выберите расположение рабочего браузера...,  Application (*.exe)
	If (ErrorLevel == 0)
		GuiControl, Text, Ed_App0, %vOutFile%
	Return
}

; При нажатии кнопки Start запускаем приложение с указанными в текстовых полях данными
OnButtonRun:
	Gui, Submit
	if (Ed_App0 = "")
	{
	  MsgBox, 16, %ProgramName%, Вы не выбрали расположение рабочего браузера. `nДля начала работы с браузером измените настройки запуска %ProgramName%, 5
	  return
	}
	RunAs, %Ed_User%, %Ed_Pass%
	Run %Ed_App0%
	Sleep, 5000
	MsgBox, 64, %ProgramName%, %ProgramName% запущена! `nЗдесь вы сможете начать работу, 5
	Return

	Return

; При нажатии Esc, закрытии окна или нажатии кнопки Exit скрипт завершается.
GuiClose:
GuiEscape:
OnButtonExit:
	ExitApp
marusa122
Posts: 135
Joined: 22 Mar 2023, 07:48

Re: Не читаются настройки с AppLauncher

06 May 2023, 15:27

mcl, привет)) и спасибо, смена названий переменных действительно помогла.

Return to “Помощь”

Who is online

Users browsing this forum: No registered users and 11 guests