Форма для редактирования скрипта Topic is solved

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

Форма для редактирования скрипта

15 Apr 2023, 14:58

Здравствуйте!
Можно ли создать форму в Autohotkey для редактирования ahk-скрипта? Чтобы не приходилось каждый раз открывать Блокнот. И чтобы рядовой пользователь не испортил код, случайно удалив лишнее. Например, есть скрипт:

Code: Select all

RunAs, User2, 2222
Run, "C:\Users\User2\AppData\Local\Viber\Viber.exe"
RunAs
Нужно сделать форму, где в Textbox1 пишется имя пользователя (User2, User3 и т.д.), в Textbox2 указывается пароль от учетной записи этого пользователя, а в Textbox3 - дается расположение exe-файла. Кроме того, справа от Textbox3 должна быть кнопка «Обзор ...», чтобы можно было выбрать исполняемый файл на компьютере.
И в конце - две CommandButton ("Сохранить изменения в скрипте" и "Отмена").
Возможно ли реализовать это с помощью Autohotkey?
mcl
Posts: 361
Joined: 04 May 2018, 16:35

Re: Форма для редактирования скрипта  Topic is solved

15 Apr 2023, 18:17

marusa122 wrote: Возможно ли реализовать это с помощью Autohotkey?

Code: Select all

; Читаем сохранённые настройки из файла AppLauncher.ini
IniRead, viUser, AppLauncher.ini, Settings, Username, El Barto
IniRead, viPass, AppLauncher.ini, Settings, Password, Kar@mba!
IniRead, viApp , AppLauncher.ini, Settings, AppToRun, %A_Space%

; Создаём окно с подписями, текстовыми полями и кнопками
Gui, New

Gui, Add, Text  , XM   YM   W60  R1, Username:
Gui, Add, Edit  , X+10 YP   W200 R1 vEd_User,  %viUser%

Gui, Add, Text  , XM   Y+M  W60  R1, Password:
Gui, Add, Edit  , X+10 YP   W200 R1 vEd_Pass,  %viPass%

Gui, Add, Text  , XM   Y+M  W60  R1, Exe to run:
Gui, Add, Edit  , X+10 YP   W180 R1 vEd_App,   %viApp%
Gui, Add, Button, X+0  YP   W20  R1 vBt_App gOnButtonApp, ...

Gui, Add, Button, XM   Y+M W270 R3 vBt_Run  gOnButtonRun , Start!
Gui, Add, Button, XM   Y+M W130 R1 vBt_Save gOnButtonSave, Save
Gui, Add, Button, X+10 YP  W130 R1 vBt_Exit gOnButtonExit, Exit

Gui, Show,, App Launcher
Return

; При нажатии Esc, закрытии окна или нажатии кнопки Exit скрипт завершается.
GuiEscape:
GuiClose:
OnButtonExit:
	ExitApp

; При нажатии Save значения из текстовых полей сохраняются в файл настроек AppLauncher.ini
OnButtonSave:
	Gui, Submit, NoHide
	IniWrite, %Ed_User%, AppLauncher.ini, Settings, Username
	IniWrite, %Ed_Pass%, AppLauncher.ini, Settings, Password
	IniWrite, %Ed_App% , AppLauncher.ini, Settings, AppToRun
	SoundPlay, *64
	ToolTip, Saved!
	Sleep 1000
	ToolTip
	Return

; При нажатии кнопки с многоточием открываем окно выбора файла
OnButtonApp:
	FileSelectFile, vOutFile,  % 1|2|32,  %A_ScriptDir%,  Choose exe to run...,  Application (*.exe)
	If (ErrorLevel == 0)
		GuiControl, Text, Ed_App, %vOutFile%
	Return

; При нажатии кнопки Start запускаем приложение с указанными в текстовых полях данными
OnButtonRun:
	Gui, Submit
	Msgbox Running %Ed_App%`n as %Ed_User% : %Ed_Pass%
	RunAs, %Ed_User%, %Ed_Pass%
	Run %Ed_App%
	RunAs
	Return
github://oGDIp - GDI+ wrapper for AHK v1.1
marusa122
Posts: 135
Joined: 22 Mar 2023, 07:48

Re: Форма для редактирования скрипта

16 Apr 2023, 00:32

Спасибо, это то, что нужно!
И еще вопрос: а есть ли возможность один раз задать настройки, а потом при нажатии на ahk просто запускать скрипт (уже без этого окна настроек)?
marusa122
Posts: 135
Joined: 22 Mar 2023, 07:48

Re: Форма для редактирования скрипта

16 Apr 2023, 01:03

Все, вопрос снят. Поменяла скрипт так, чтобы после запуска появлялся MsgBox с предложением - менять или не менять настройки. mc1, большое спасибо!

Code: Select all

MsgBox, 4,, Вы хотите изменить настройки запуска?
IfMsgBox No
{
    IniRead, viUser, AppLauncher.ini, Settings, Username, El Barto
    IniRead, viPass, AppLauncher.ini, Settings, Password, Kar@mba!
    IniRead, viApp , AppLauncher.ini, Settings, AppToRun, %A_Space%
	RunAs, %viUser%, %viPass%
	Run %viApp%
	RunAs
	Return
}
else
{
; Читаем сохранённые настройки из файла AppLauncher.ini
IniRead, viUser, AppLauncher.ini, Settings, Username, El Barto
IniRead, viPass, AppLauncher.ini, Settings, Password, Kar@mba!
IniRead, viApp , AppLauncher.ini, Settings, AppToRun, %A_Space%

; Создаём окно с подписями, текстовыми полями и кнопками
Gui, New

Gui, Add, Text  , XM   YM   W60  R1, Username:
Gui, Add, Edit  , X+10 YP   W200 R1 vEd_User,  %viUser%

Gui, Add, Text  , XM   Y+M  W60  R1, Password:
Gui, Add, Edit  , X+10 YP   W200 R1 vEd_Pass,  %viPass%

Gui, Add, Text  , XM   Y+M  W60  R1, Exe to run:
Gui, Add, Edit  , X+10 YP   W180 R1 vEd_App,   %viApp%
Gui, Add, Button, X+0  YP   W20  R1 vBt_App gOnButtonApp, ...

Gui, Add, Button, XM   Y+M W270 R3 vBt_Run  gOnButtonRun , Start!
Gui, Add, Button, XM   Y+M W130 R1 vBt_Save gOnButtonSave, Save
Gui, Add, Button, X+10 YP  W130 R1 vBt_Exit gOnButtonExit, Exit

Gui, Show,, App Launcher
Return

; При нажатии Esc, закрытии окна или нажатии кнопки Exit скрипт завершается.
GuiEscape:
GuiClose:
OnButtonExit:
	ExitApp

; При нажатии Save значения из текстовых полей сохраняются в файл настроек AppLauncher.ini
OnButtonSave:
	Gui, Submit, NoHide
	IniWrite, %Ed_User%, AppLauncher.ini, Settings, Username
	IniWrite, %Ed_Pass%, AppLauncher.ini, Settings, Password
	IniWrite, %Ed_App% , AppLauncher.ini, Settings, AppToRun
	SoundPlay, *64
	ToolTip, Saved!
	Sleep 1000
	ToolTip
	Return

; При нажатии кнопки с многоточием открываем окно выбора файла
OnButtonApp:
	FileSelectFile, vOutFile,  % 1|2|32,  %A_ScriptDir%,  Choose exe to run...,  Application (*.exe)
	If (ErrorLevel == 0)
		GuiControl, Text, Ed_App, %vOutFile%
	Return

; При нажатии кнопки Start запускаем приложение с указанными в текстовых полях данными
OnButtonRun:
	Gui, Submit
	Msgbox Running %Ed_App%`n as %Ed_User% : %Ed_Pass%
	RunAs, %Ed_User%, %Ed_Pass%
	Run %Ed_App%
	RunAs
	Return
}

Return to “Помощь”

Who is online

Users browsing this forum: No registered users and 12 guests