<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Замена значений в Combobox]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=17905</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=17905&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Замена значений в Combobox».]]></description>
		<lastBuildDate>Thu, 10 Aug 2023 17:31:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Замена значений в Combobox]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=158970#p158970</link>
			<description><![CDATA[<p>В AHK v1 массивы [] и объекты {} это по сути одно и то же, просто в массиве ключами обычно являются числовые значения. Но это не обязательно, то есть можно без проблем выполнить такой код:<br /></p><div class="codebox"><pre><code>arr := []
arr[1] := 1
arr[&quot;nonNumericKey&quot;] := &quot;test&quot;
for k, v in arr {
   MsgBox % &quot;key: &quot; . k . &quot;`nvalue: &quot; . v
}</code></pre></div><p>А вот в AHK v2 такой номер уже не пройдёт, там [] и {} — это объекты разных типов, и такой код выдаст ошибку:<br /></p><div class="codebox"><pre><code>arr := []
arr.Length := 2
arr[1] := 1
arr[&quot;nonNumericKey&quot;] := &quot;test&quot;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 10 Aug 2023 17:31:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=158970#p158970</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замена значений в Combobox]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=158969#p158969</link>
			<description><![CDATA[<p>Добавлю, что, например, в JScript массивы тоже реализованы как объекты. Одно другому, стало быть, не мешает.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Thu, 10 Aug 2023 11:41:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=158969#p158969</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замена значений в Combobox]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=158968#p158968</link>
			<description><![CDATA[<p><strong>Phoenixxx_Czar</strong>, почитайте в справке про ассоциативные массивы.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 10 Aug 2023 09:18:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=158968#p158968</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замена значений в Combobox]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=158967#p158967</link>
			<description><![CDATA[<p><strong>YMP</strong>, вы же берете из объекта, а не массива.</p>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Thu, 10 Aug 2023 06:54:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=158967#p158967</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замена значений в Combobox]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=158959#p158959</link>
			<description><![CDATA[<p><strong>marusa122</strong><br />Из GUI получайте имя, а файл берите из массива.<br /></p><div class="codebox"><pre><code>
Browsers := {&quot;Opera&quot;: &quot;opera.exe&quot;, &quot;Google Chrome&quot;: &quot;chrome.exe&quot;}
MsgBox, % Browsers[&quot;Opera&quot;]
MsgBox, % Browsers[&quot;Google Chrome&quot;]
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Tue, 08 Aug 2023 02:58:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=158959#p158959</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Замена значений в Combobox]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=158958#p158958</link>
			<description><![CDATA[<p>Здравствуйте!<br />В скрипте Autohotley (GUI) есть Combobox со значениями opera.exe, firefox.exe, chrome.exe, msedge.exe, iexplore.exe.<br />Как заменить эти значения на Opera, Mozilla Firefox, Google Chrome, Microsoft Edge, Internet Exprorer соответственно? Но так, чтобы скрипт продолжил их читать как opera.exe, firefox.exe, chrome.exe, msedge.exe, iexplore.exe.<br />Основной скрипт: <br /></p><div class="codebox"><pre><code>Run, chrome.exe &quot;https://www.google.com/&quot; --new-window
Sleep, 5000
MsgBox, 64, Program1, Program1 запущена!`nЗдесь вы сможете начать работу!
WinSet, AlwaysOnTop, , A
Return</code></pre></div><p>Т.е. пользователь в Combobox выбирает Google Chrome, но скрипт должен распознавать это значение как chrome.exe.<br />Сам код формы для настройки скрипта: <br /></p><div class="codebox"><pre><code>#SingleInstance Force
#NoEnv
SetWorkingDir %A_ScriptDir%

ProgramName := &quot;Program1&quot;
ProgramName5 := &quot;Рабочий сайт&quot;

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

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

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



; Чтение настроек из .ini-файла в переменные
; ==========================================
ReadSettingsFromIni:
{
IniRead, Ed_App5, %A_ScriptDir%\..\AppLauncher.ini, Settings, AppToRun5, %A_Space%
IniRead, Ed_Browser, %A_ScriptDir%\..\AppLauncher.ini, Settings, Browser

	Return
}


; Создание окна настроек
; ======================
ShowSettingsWindow:
{
Gui, New
Gui, Add, Text  , XM+20   Y80  W90  R1, %ProgramName5%:
Gui, Add, Edit  , X+10 YP   W120 R1 vEd_App5,   %Ed_App5%
Gui, Add, Button, X+0  YP   W20  R1 vBt_App5 gOnButtonApp5, ...
Gui, Add, Text, XM+20   Y115  W90  R1, Рабочий браузер:
Gui, Add, Combobox, x+10 yp w120 r5 vEd_Browser, opera.exe|firefox.exe|chrome.exe|msedge.exe|iexplore.exe

Gui, Add, Button, XM   Y200 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_App5% , %A_ScriptDir%\..\AppLauncher.ini, Settings, AppToRun5
	IniWrite, %Ed_Browser%, %A_ScriptDir%\..\AppLauncher.ini, Settings, Browser
	Sleep 100
	Msgbox,, %ProgramName%, Настройки успешно сохранены!, 3
	Return
}

OnButtonApp5:
{
	MsgBox, 48, %ProgramName%, В это поле нужно вставить ссылку!, 5
	Return
}

; Обработчик изменения значения Combobox для выбора браузера
Ed_Browser:
GuiControlGet, chosenBrowser
global Ed_Browser
Ed_Browser := chosenBrowser
Return

; При нажатии кнопки Start запускаем приложение с указанными в текстовых полях данными
OnButtonRun:
{
Gui, Submit
Gui, New
Gui, Font, s10
Gui, Add, Text, x10 y10  w128 h50 center, Выберите способ работы с документами:
Gui, Add, Picture, x10 y60 w128 h128 gA1, %A_ScriptDir%\..\Design\Ярлык для %ProgramName5%.png
Gui, Show,  xCenter yCenter w148 h200, %ProgramName%
Return
}

	A1:
if (Ed_Browser = &quot;&quot;) {
    MsgBox, 48, Ошибка, Не указан рабочий браузер!
    Gui, Destroy
    return
}
if (Ed_App5 = &quot;&quot;)
{
    	Run, %Ed_Browser% &quot;https://www.google.com/&quot; --new-window
	Sleep, 5000
	MsgBox, 64, %ProgramName%, %ProgramName% запущена!`nЗдесь вы сможете начать работу!
	WinSet, AlwaysOnTop, , A
	Return
}
else
{
    	Run, %Ed_Browser% %Ed_App5% --new-window
	Sleep, 5000
	MsgBox, 64, %ProgramName%, %ProgramName% запущена!`nЗдесь вы сможете начать работу!
	WinSet, AlwaysOnTop, , A
	Return
}

; При нажатии Esc, закрытии окна или нажатии кнопки Exit скрипт завершается.
GuiClose:
GuiEscape:
OnButtonExit:
	ExitApp</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (marusa122)]]></author>
			<pubDate>Mon, 07 Aug 2023 17:37:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=158958#p158958</guid>
		</item>
	</channel>
</rss>
