<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: CheckBox in Tray, команда Run и переменная]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=11862</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11862&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: CheckBox in Tray, команда Run и переменная».]]></description>
		<lastBuildDate>Tue, 02 Aug 2016 08:06:29 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106519#p106519</link>
			<description><![CDATA[<p><strong>yalanne</strong> В общем идея сего скрипта такова:<br />Запускать тор браузер с открытием нескольких (рандом от 2 до 4) вкладок со случайными ссылками, которые хранятся в 123.txt. Из скрипта понятно, что я пытаюсь реализовать некое подобие интерфейса (пока что трейменю) с некоторыми настройками, как те же чек боксы. Что бы можно было включить Запускать браузер видимым или не видимым.<br />Таймер нужен для того, что бы можно было понять когда был запущен последний раз браузер, сколько времени он должен быть открыть и сколько времени осталось до конца.<br />Задержку записанную в INI я использую в виде минут и потом перевожу их в мс. Это для удобства настройки.<br />Количество строк в 123.txt периодически изменяется, посему добавлена переменная last_line.<br />Впринципе скрипт реализован криво и топорно, но он работает и это самое главное. Не работает только WinHide. Если в параметрах запуска не стоял параметр Hide и браузер запустился &quot;как есть&quot;, либо было использовано WinShow, то спрятать окно браузера уже не получается, по сути пункт <br /></p><div class="codebox"><pre><code>Menu, Tray, Add, &amp;Спрятать в трей, HMM</code></pre></div><p>выполняет роль декорации.</p>]]></description>
			<author><![CDATA[null@example.com (DaVinchi)]]></author>
			<pubDate>Tue, 02 Aug 2016 08:06:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106519#p106519</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106506#p106506</link>
			<description><![CDATA[<p>Команда run создает новый поток при каждом запуске, а в pi_d хранится старый. Да и в коде что то все напутано)<br />Можешь описать подробно что хочешь от своего скрипта, я напишу его с нуля по своему с комментариями.<br />То что скрывать браузер Tor По кнопке в трей это понятно, а Вот Зачем там таймер с случайной меткой??</p><p>Там еще вроде в ини файле параметры запуска Tor&#039;a прописаны же?</p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Mon, 01 Aug 2016 17:21:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106506#p106506</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106479#p106479</link>
			<description><![CDATA[<p><strong>yalanne</strong><br />Оно там есть, просто я забыл этот кусок дописать. Я же говорю, тут просто куски кода. В общем лучше я представлю полный код и от него будем отталкиваться.<br /></p><div class="codebox"><pre><code>
DetectHiddenWindows,On
#Persistent
IniRead, It_1, config.ini, MenuTray,It_1,% &quot; &quot;

Menu, Tray, NoStandard
Menu, Tray, Add, &amp;START, 1st
Menu, Tray, add,

Menu, Tray, add, &amp;Спрятать,Item1
IfEqual,It_1,1,Menu,Tray,Check,&amp;Спрятать

Menu, Tray, add,
Menu, Tray, Add, &amp;Показать браузер, ShowMM
Menu, Tray, Add, &amp;Спрятать в трей, HMM
Menu, Tray, Add, &amp;Таймер, Timer
Menu, Tray, Add, &amp;Exit, Exit
Return

1st:
Process, Close, firefox.exe
IniRead, pi_d, config.ini, P_I_D, pi_d
Sleep, 500
IfWinNotExist, ahk_pid %pi_d%
	{
		IniRead, minmin, config.ini, freez, minmin
		IniRead, maxmin, config.ini, freez, maxmin
		IniRead, last_line, config.ini, Line, last_line ;Нужен ли тут IniRead? или хватит и в шапке кода?
		IniRead, It_1, config.ini, MenuTray,It_1,% &quot; &quot;
		Random, freez, %minmin%, %maxmin%
		freeztime:= freez*1000*60 ;задержка в минутах*нам кл-во мс в секунды*на кол-во секунд в минуте
		Random, rand, 2, 4
		gosub, %rand%vid
	}
return

2vid:
Random, rr1, 1, %last_line%
FileReadLine, vid1, 123.txt, %rr1%
Random, rr2, 1, %last_line%
FileReadLine, vid2, 123.txt, %rr2%
run, Start Tor Browser.lnk %vid1% %vid2%, D:\Tor Browser\, % It_1 ? &quot;Hide&quot; : &quot;&quot;, pi_d
IniWrite, %pi_d%, config.ini, P_I_D, pi_d
WinWait, ahk_pid %pi_d%
TrayTip, Запускаю видео, %rand% Окна; ИД окна %pi_d%; Время слипа %freez%, 1, info,
gosub, Finish
return

3vid:
Random, rr1, 1, %last_line%
FileReadLine, vid1, 123.txt, %rr1%
Random, rr2, 1, %last_line%
FileReadLine, vid2, 123.txt, %rr2%
Random, rr3, 1, %last_line%
FileReadLine, vid3, 123.txt, %rr3%
run, Start Tor Browser.lnk %vid1% %vid2% %vid3%, D:\Tor Browser\, % It_1 ? &quot;Hide&quot; : &quot;&quot;, pi_d
IniWrite, %pi_d%, config.ini, P_I_D, pi_d
WinWait, ahk_pid %pi_d%
TrayTip, Запускаю видео, %rand% Окна; ИД окна %pi_d%; Время слипа %freez%, 1, info, 
gosub, Finish
return

4vid:
Random, rr1, 1, %last_line%
FileReadLine, vid1, 123.txt, %rr1%
Random, rr2, 1, %last_line%
FileReadLine, vid2, 123.txt, %rr2%
Random, rr3, 1, %last_line%
FileReadLine, vid3, 123.txt, %rr3%
Random, rr4, 1, %last_line%
FileReadLine, vid4, 123.txt, %rr4%
run, Start Tor Browser.lnk %vid1% %vid2% %vid3% %vid4%, D:\Tor Browser\, % It_1 ? &quot;Hide&quot; : &quot;&quot;, pi_d
IniWrite, %pi_d%, config.ini, P_I_D, pi_d
WinWait, ahk_pid %pi_d%
TrayTip, Запускаю видео, %rand% Окна; ИД окна %pi_d%; Время слипа %freez%, 1, info, 
gosub, Finish
return

Finish:
settimer time, 1000    ; запускаем таймер для отображения время паузы
time:=a_tickcount
Sleep, %freeztime%
IniRead, pi_d, config.ini, P_I_D, pi_d
Sleep, 500
;WinShow, ahk_pid %pi_d%
;Sleep, 500
WinKill,  ahk_pid %pi_d%
Sleep, 5000
gosub, 1st
return

time:
    time2 := (a_tickcount - time) // 60000 ;;минуты
	return

Timer:
	last2:= freez - time2
	MsgBox, , Время, &quot;Было всего:&quot; %freez% &quot;Осталось:&quot; %last2% МИНУТ
return

Item1:
Menu, % A_ThisMenu, ToggleCheck, %A_ThisMenuItem%
It_1 := not It_1
IniWrite,% It_1,config.ini,MenuTray,It_1
Return

ShowMM: 
IniRead, pi_d, config.ini, P_I_D, pi_d
WinShow, ahk_pid %pi_d%
return


HMM:
IniRead, pi_d, config.ini, P_I_D, pi_d
WinHide, ahk_pid %pi_d%
return


Exit:
	WinShow, ahk_pid %pi_d%
    ExitApp
</code></pre></div><p>Данный скрипт выполнен топорно, но я отталкивался от времени и своих заний <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.</p>]]></description>
			<author><![CDATA[null@example.com (DaVinchi)]]></author>
			<pubDate>Sat, 30 Jul 2016 13:14:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106479#p106479</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106478#p106478</link>
			<description><![CDATA[<p>А зачем постоянно при нажатии тех пунктов читать ини файл?<br /></p><div class="codebox"><pre><code>IniRead, pi_d, config.ini, P_I_D, pi_d</code></pre></div><p>И этот pi_d идет от run&#039;a, но нет записи(IniWrite) же в этот самый ини файл. При прочтени скрипт получает ERROR при IniRead, pi_d...<br />Так как скорой всего там нет этого.</p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Sat, 30 Jul 2016 12:27:52 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106478#p106478</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106476#p106476</link>
			<description><![CDATA[<p><strong>yalanne</strong> Я вас понял. Все прекрасно работает. Разве что с порядковым номером не вышло, но это и не принципиально.<br />upd. Появилась новая проблема. Как уже выше писал, у меня не стандартное меню трея, в котором есть пункты показать или спрятать браузер (это для периодического контроля). Код этот выглядит примерно так (приведу в пример куски кода):<br /></p><div class="codebox"><pre><code>
Menu, Tray, NoStandard
Menu, Tray, Add, &amp;START, 1st
Menu, Tray, add,

Menu, Tray, add, &amp;Спрятать,Item1
IfEqual,It_1,1,Menu,Tray,Check,&amp;Спрятать

Menu, Tray, add,
Menu, Tray, Add, &amp;Показать браузер, ShowMM
Menu, Tray, Add, &amp;Спрятать в трей, HMM
Menu, Tray, Add, &amp;Таймер, Timer
Menu, Tray, Add, &amp;Exit, Exit
Return

1st:
Run, Notepad.exe, C:\Мои документы, % It_1 ? &quot;Hide&quot; : &quot;&quot;, pi_d
return

ShowMM: 
IniRead, pi_d, config.ini, P_I_D, pi_d
WinShow, ahk_pid %pi_d%
return

Item1:
Menu, % A_ThisMenu, ToggleCheck, %A_ThisMenuItem%
It_1 := not It_1
IniWrite,% It_1,config.ini,MenuTray,It_1
Return

HMM:
IniRead, pi_d, config.ini, P_I_D, pi_d
WinHide, ahk_pid %pi_d%
return
</code></pre></div><p>Так вот вопрос в чем: Почему иногда скрипт отказывается выполнять блоки <strong>НММ</strong> и <strong>ShowMM</strong>? А точнее он показывает программу почти всегда, но после выполнения <strong>ShowMM</strong>, программу уже не спрятать командой WinHide из блока<strong>НММ</strong>. Что ему не нравится?</p>]]></description>
			<author><![CDATA[null@example.com (DaVinchi)]]></author>
			<pubDate>Sat, 30 Jul 2016 09:59:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106476#p106476</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106475#p106475</link>
			<description><![CDATA[<div class="quotebox"><cite>DaVinchi пишет:</cite><blockquote><p>009:Menu, Tray, add, <strong><span style="color: red">&amp;Спрятать</span></strong>,<strong><span style="color: blue">Item1</span></strong><br />	010:IfEqual,<strong><span style="color: Green">It_1=1</span></strong>,<br />	010:Menu,Tray,Check,<strong><span style="color: red"> ̶I̶t̶e̶m̶1̶</span></strong></p></blockquote></div><p><strong><span style="color: red">3й параметр </span></strong> это имя пункта.<br /><strong><span style="color: blue">4й параметр</span></strong> это уже имя метки.<br /><strong><span style="color: green">Это лишнее</span></strong>.<br />Что бы поставить\снять галочку надо указывать имя пункта(или порядковый номер и знак &amp;) а не имя метки.<br /></p><div class="codebox"><pre><code>#Persistent
Menu, Tray, add, &amp;Спрятать,Item1
IfEqual,It_1,1,Menu,Tray,Check,&amp;Спрятать ; или 1&amp;
return

Item1:</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Sat, 30 Jul 2016 08:56:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106475#p106475</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106472#p106472</link>
			<description><![CDATA[<p><strong>yalanne</strong> Обнаружил такую проблему. Если я закрываю скрипт с включенным ChekBox, что при попытке повторного запуска выдает ошибку:<br /></p><div class="codebox"><pre><code>
Error: Nonexist menu item.
Specifically: Item1
	Line#
	001:DetectHiddenWindows,On
	003:IniRead, It_1, config.ini, MenuTray,It_1,&quot; &quot;
	005:Menu, Tray, NoStandard
	006:Menu, Tray, Add, &amp;START, 1st
	007:Menu, Tray, add
	009:Menu, Tray, add, &amp;Спрятать,Item1
	010:IfEqual,It_1=1,
	010:Menu,Tray,Check,Item1
	012:Menu, Tray, add
	013:Menu, Tray, Add, &amp;ShowBrowser, ShowMM
	014:Menu, Tray, Add, &amp;InTrayBrowser, HMM
	015:Menu, Tray, Add, &amp;TimeLeft, Timer
	016:Menu, Tray, Add, &amp;Exit, Exit
	017:Return
	020:Process, Close, firefox.exe
The current thread will exit.
</code></pre></div><p>Извиняюсь что ошибку предоставляю в таком виде, но тут очень не удобно работать со скриншотами.<br />Если же я ручками поправлю INI и поставлю значение 0, то запускается скрипт без проблем. Не пойму как исправить.</p><div class="quotebox"><cite>yalanne пишет:</cite><blockquote><p>В такой связке нельзя убирать : и то что после него идет, должно быть хотя бы так : &quot;&quot;.</p></blockquote></div><p>Значит кавычки это &quot;Пробел&quot;\ пустота. Т.е. ноль. Честно говоря я уже все голову разбил об этот вопрос, а оно оказывается все гораздо проще.</p>]]></description>
			<author><![CDATA[null@example.com (DaVinchi)]]></author>
			<pubDate>Sat, 30 Jul 2016 08:01:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106472#p106472</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106471#p106471</link>
			<description><![CDATA[<p>Знак вопроса значит Если переменная содержит <strong>1,-1,СЛОВО</strong> - то это истина(1). Знак двоеточия значит что должно быть если там ноль или вообще пустая переменная - ложь.<br />В такой связке нельзя убирать : и то что после него идет, должно быть хотя бы так <strong>: &quot;&quot;</strong>.<br /></p><div class="codebox"><pre><code>var := -1
;var := 0
;var := &quot;test&quot;
;var := &quot;&quot;
msgbox % var ? &quot;Не ноль&quot; : &quot;Ноль&quot;</code></pre></div><p>Так же можно поменять местами, для этого надо добавить <strong>not</strong> или <strong>!</strong><br /></p><div class="codebox"><pre><code>var := -1
;var := 0
;var := &quot;test&quot;
;var := &quot;&quot;
msgbox % !var ? &quot;ноль&quot; : &quot;не ноль&quot;</code></pre></div><div class="quotebox"><cite>DaVinchi пишет:</cite><blockquote><p>Можно по этому поводу ссылочку на методический материал?</p></blockquote></div><p><a href="https://www.autohotkey.com/docs/Variables.htm#ternary">https://www.autohotkey.com/docs/Variables.htm#ternary</a></p><div class="quotebox"><cite>DaVinchi пишет:</cite><blockquote><p>Перед командой Run не обязательно снова ставить IniRead?</p></blockquote></div><p>Если вручную менять значение в ini файле при вкл скрипте, то можно.<br />А так необязательно.</p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Sat, 30 Jul 2016 07:38:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106471#p106471</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106470#p106470</link>
			<description><![CDATA[<p><strong>yalanne</strong> А можно мне подробнее объяснить вот этот момент:<br /></p><div class="codebox"><pre><code>Run, Notepad.exe, C:\Мои документы, % It_1 ? &quot;Hide&quot; : &quot;&quot;, pi_d</code></pre></div><p>Интересует меня именно значение переменной? Ну знак переменной, дальше имя переменной, дальше значение, откуда оно понимает что использовать Hide, либо заполнить пустым? Просто для меня конструкция такого вида новая<br /></p><div class="codebox"><pre><code>% It_1 ? &quot;Hide&quot; : &quot;&quot;</code></pre></div><p>То что это 2 значения, одно из которых может стать переменная, я понял. Просто сам принцип не пойму.<br />Можно по этому поводу ссылочку на методический материал?</p><p>И еще один вопрос: Перед командой Run не обязательно снова ставить IniRead?</p>]]></description>
			<author><![CDATA[null@example.com (DaVinchi)]]></author>
			<pubDate>Sat, 30 Jul 2016 07:19:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106470#p106470</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106469#p106469</link>
			<description><![CDATA[<div class="codebox"><pre><code>
DetectHiddenWindows,On
#Persistent
IniRead, It_1, config.ini, MenuTray,It_1,% &quot; &quot;

Menu,Tray,NoStandard
Menu, Tray, add, Run
Menu, Tray, add, Item1
IfEqual,It_1,1,Menu,Tray,Check,Item1

Menu, Tray, add,
Menu, Tray, add,Выход
Return

Выход:
WinClose,ahk_pid %pi_d%
ExitApp

Item1:
Menu, % A_ThisMenu, ToggleCheck, %A_ThisMenuItem%
It_1 := not It_1
IniWrite,% It_1,config.ini,MenuTray,It_1
Return


Run:
Run, Notepad.exe, C:\Мои документы, % It_1 ? &quot;Hide&quot; : &quot;&quot;, pi_d</code></pre></div><br /><p>Вместо <strong>not It_1</strong> в принципе можно использовать <strong>GetMenuItemChecked(A_ThisMenu,A_ThisMenuItemPos)</strong>.</p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Sat, 30 Jul 2016 06:59:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106469#p106469</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106467#p106467</link>
			<description><![CDATA[<p><strong>yalanne</strong> Спасибо огромное. Расписал так расписал <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />. Эльфийский вариант решения мне не подходит по 2м причинам: а) Слишком сложно для моей соображалки; б) Мне нужно что бы мой код выполнялся у меня на компе на 1й программе, все остальное мне не интересно.<br />И вторая часть вопроса. ChekBox будет записываться в INI, что бы при следующем запуске не нужно было делать лишних телодвижений. Т.е. после чтения config.ini мне же не обязательно присваивать переменную типа <br /></p><div class="codebox"><pre><code>statusWin := &quot;Max&quot;</code></pre></div><p>Достаточно будет прописать так:<br /></p><div class="codebox"><pre><code>
IniRead, minmin, config.ini, winsize, minmin

Run, Notepad.exe, C:\Мои документы, %minmin%, pi_d
</code></pre></div><p>я все правильно понял?</p>]]></description>
			<author><![CDATA[null@example.com (DaVinchi)]]></author>
			<pubDate>Fri, 29 Jul 2016 19:31:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106467#p106467</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106465#p106465</link>
			<description><![CDATA[<div class="quotebox"><cite>DaVinchi пишет:</cite><blockquote><p>1. Вожможно ли в меню по нажатию на значек трея впихнуть чекбокс?</p></blockquote></div><p>Вот Два варианта:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Обычный</div><div class="fancy_spoiler"><div class="codebox"><pre><code>#Persistent
Menu,Tray,NoStandard
Menu, Tray, add, Item1
Menu, Tray, add, Item2
Menu, Tray, add, Item3
Menu, Tray, add,
Menu, Tray, add,Выход
MenuListChecked := {}
Return

Выход:
ExitApp
Return

Item1:
Item2:
Item3:
Menu, % A_ThisMenu, ToggleCheck, %A_ThisMenuItem%
MenuListChecked[A_ThisMenuItem] := Not MenuListChecked[A_ThisMenuItem]

Msgbox % &quot;Меню:`t&quot; A_ThisMenu
             . &quot;`nПункт:`t&quot; A_ThisMenuItem
			 . &quot;`nПозиция:`t&quot; A_ThisMenuItemPos
             . &quot;`nГалочка:`t&quot; MenuListChecked[A_ThisMenuItem]</code></pre></div></div></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Эльфийский:)</div><div class="fancy_spoiler"><p> AHK Версия должна быть последней 1.1.24.00.</p><div class="codebox"><pre><code>#Persistent
Menu,Tray,NoStandard
Menu, Tray, add, Item1
Menu, Tray, add, Item2
Menu, Tray, add, Item3
Menu, Tray, add,
Menu, Tray, add,Выход

Return

Выход:
ExitApp
Return

Item1:
Item2:
Item3:
Menu, % A_ThisMenu, ToggleCheck, %A_ThisMenuItem%
Msgbox % &quot;Меню:`t&quot; A_ThisMenu
             . &quot;`nПункт:`t&quot; A_ThisMenuItem
			 . &quot;`nПозиция:`t&quot; A_ThisMenuItemPos
             . &quot;`nГалочка:`t&quot; GetMenuItemChecked(A_ThisMenu,A_ThisMenuItemPos)
Return


GetMenuItemChecked(HandleOrName,ItemPos)
{
	Local hMenu,MENUITEMINFO,SizeStruct
	hMenu := (HandleOrName + 0 = &quot;&quot;) ? MenuGetHandle(A_ThisMenu) : HandleOrName ; Если переменная в виде имени, то извлекаем id, иначе просто id. 
	VarSetCapacity(MENUITEMINFO, SizeStruct:= A_PtrSize=8 ? 80 : 48) ; win 64x или 32x
	NumPut(SizeStruct, MENUITEMINFO, 0) ;Первый параметр структуры, В нем задается размер который равен тому что было определено выше.
	NumPut(1, MENUITEMINFO, 4) ;fMask = MIIM_STATE. Второй параметр структуры, В нем указывается то что маска стуктуры будет fState.
	DllCall(&quot;GetMenuItemInfo&quot;, &quot;UInt&quot;, hMenu, &quot;UInt&quot;, (ItemPos-1), &quot;UInt&quot;, 1, &quot;UInt&quot;, &amp;MENUITEMINFO) ; получаем информацию о элементе меню.
	Return NumGet(MENUITEMINFO,12) &amp; 0x8 ? true : false ;  Получаем значение fState. Если в нем есть MFS_CHECKED[0x8], то на пункте есть галочка.
}</code></pre></div></div></div><p>Отличаются они тем что, если программно(другой программой. например с помощью api SetMenuItemInfo) изменить значение галочки, то в первом варианте скрипт этого и не заметит. Скрипт будет выдавать ложное значение.<br />Во втором варианте скрипт смотрит значение галочки, а не просто хранит в переменных. Так же может увидить значение галочки в чужом стандартном меню(может даже не от ahk).<br />Но думаю первый вариант в большем случае больше подходит.</p><div class="quotebox"><cite>DaVinchi пишет:</cite><blockquote><p>2. Можно ли использовать переменную вместо параметра Hide|Min|Max в время выполнения команды Run?</p></blockquote></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Вариант 1</div><div class="fancy_spoiler"><div class="codebox"><pre><code>statusWin := &quot;Max&quot;

Run, Notepad.exe, C:\Мои документы, %statusWin%</code></pre></div></div></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Вариант 2</div><div class="fancy_spoiler"><div class="codebox"><pre><code>statusWin := [&quot;Max&quot;,&quot;Min&quot;,&quot;Hide&quot;]

Run, Notepad.exe, C:\Мои документы, % statusWin[2]</code></pre></div><p>*2 - порядковый номер в массиве. 2 = Min</p></div></div>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Fri, 29 Jul 2016 18:20:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106465#p106465</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106464#p106464</link>
			<description><![CDATA[<p><strong>teadrinker</strong> Так вопрос то как раз и связан. Я хочу добавить в меню трея CheckBox, который и будет отвечать за переменную. Т.е. если ChekBox отмечен, то переменная будет Hide и программа будет запущена скрытно. А если галочка не стоит, то параметр запуска будет пустым и программа просто запустится.</p>]]></description>
			<author><![CDATA[null@example.com (DaVinchi)]]></author>
			<pubDate>Fri, 29 Jul 2016 18:18:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106464#p106464</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106463#p106463</link>
			<description><![CDATA[<p>Ещё есть правило: одна тема — один вопрос (если вопросы не связанные).</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 29 Jul 2016 18:15:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106463#p106463</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: CheckBox in Tray, команда Run и переменная]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106462#p106462</link>
			<description><![CDATA[<p><strong>DaVinchi</strong> добавь текст </p><div class="codebox"><pre><code>run,   ...   , pi_d</code></pre></div><p> в тег [ code ] и точек добавь. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Fri, 29 Jul 2016 18:11:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106462#p106462</guid>
		</item>
	</channel>
</rss>
