<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Бесконечный toggle цикл]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6268&amp;type=atom" />
	<updated>2011-10-01T19:21:14Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6268</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52074#p52074" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Александр_ пишет:</cite><blockquote><p>Можно, но в AHK наверно не предусмотрено. Нужно <a href="http://msdn.microsoft.com/en-us/library/ms633591%28VS.85%29.aspx">изменить стиль кнопки</a>, потом <a href="http://msdn.microsoft.com/en-us/library/ms648045.aspx">загрузить картинку</a> и <a href="http://msdn.microsoft.com/en-us/library/ms673567.aspx">установить эту картинку на кнопку</a>. Сам не проверял, но должно сработать <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> .</p></blockquote></div><p>Проверил, вот простейший пример:<br /></p><div class="codebox"><pre><code>Unicode         := A_IsUnicode ? &quot;W&quot; : &quot;A&quot;
bmpname         := &quot;D:\1.bmp&quot; ; путь к битмапу
IMAGE_BITMAP    := 0
LR_LOADFROMFILE := 0x10
BM_SETIMAGE     := 0xF7
BS_BITMAP       := 0x80

LoadImage(hinst, Name, Type, cxDesired, cyDesired, fLoad)
; функция звгружает изображение и возвращает его хэндл
; hinst- дескриптор модуля, при загрузке из файла равен нулю
; Name- путь к файлу
; Type- тип изображения(битмап, курсор или иконка)
; cxDesired, cyDesired- ширина и высота
; fLoad- флаги, определяющие поведение функции, при загрузке из файла обязательно указать LR_LOADFROMFILE 
{
   global Unicode
   return DllCall(&quot;LoadImage&quot; . Unicode,&quot;int&quot;,hinst,&quot;str&quot;,Name,&quot;int&quot;,Type,&quot;int&quot;,cxDesired,&quot;int&quot;,cyDesired,&quot;int&quot;,fLoad)
}

Gui, Add, Button, w200 h100 +%BS_BITMAP% Hwndhb0 GLoadImage, кнопка
hBitmap := LoadImage(0, bmpname, IMAGE_BITMAP, 200, 100, LR_LOADFROMFILE)
Gui, Show
return

LoadImage:
   if (img)
   {
      img := false
	  SendMessage BM_SETIMAGE, 0, 0,, ahk_id %hb0%
   }
   else
   {
      img := true
      SendMessage BM_SETIMAGE, 0, hBitmap,, ahk_id %hb0%
   }
return</code></pre></div><p>При щелчке по кнопке на неё устанавливается картинка, при повторном убирается.</p>]]></content>
			<author>
				<name><![CDATA[Александр_]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24888</uri>
			</author>
			<updated>2011-10-01T19:21:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52074#p52074</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52037#p52037" />
			<content type="html"><![CDATA[<p><strong>Александр_, ypppu</strong>, спасибо.<br /><strong>Grey</strong>, спасибо, отличные примеры, лучше чем у меня вышли...</p>]]></content>
			<author>
				<name><![CDATA[ratatata.]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27253</uri>
			</author>
			<updated>2011-09-30T22:13:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52037#p52037</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52033#p52033" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>2) Можно ли вместо текста кнопки поставить картинку, т.е. все пространство кнопки занять картинкой? или будет проще нарисовать картинку в виде кнопки, а действие задать координатами?</p></blockquote></div><p>Можно, но в AHK наверно не предусмотрено. Нужно <a href="http://msdn.microsoft.com/en-us/library/ms633591%28VS.85%29.aspx">изменить стиль кнопки</a>, потом <a href="http://msdn.microsoft.com/en-us/library/ms648045.aspx">загрузить картинку</a> и <a href="http://msdn.microsoft.com/en-us/library/ms673567.aspx">установить эту картинку на кнопку</a>. Сам не проверял, но должно сработать <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> .</p>]]></content>
			<author>
				<name><![CDATA[Александр_]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24888</uri>
			</author>
			<updated>2011-09-30T21:09:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52033#p52033</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52030#p52030" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>Прочитал тут много тем, но нигде не встретил хотябы упоминания о тоггл цикле.</p></blockquote></div><p>Чем не <a href="http://forum.script-coding.com/viewtopic.php?id=1435">переключение</a>?</p><div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>Так же было бы не плохо если бы присутствовал хоткей на включение/отключение всего скрипта.</p></blockquote></div><div class="codebox"><pre><code>F12:: ; I/O
   Suspend
   If (A_IsSuspended)
   {
      TrayTip,, now is suspended
      SoundBeep, 2500, 100
      Sleep, 50
      SoundBeep, 2500, 100
   }
   Else
   {
      TrayTip,, ready to work
      SoundBeep, 2500, 100
   }
   KeyWait, % A_ThisHotkey
   Return</code></pre></div><div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>И да, я даже не читал документацию, извинте, просто нет времени.</p></blockquote></div><p>Зря.</p><div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>...как это впринцепе делается, а именно синтаксис ахк...</p></blockquote></div><div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><div class="quotebox"><cite>Александр_ пишет:</cite><blockquote><p>В документации есть очень похожий пример #MaxThreadsPerHotkey.</p></blockquote></div><p>Спасибо большое, помогло.</p></blockquote></div><p>Ещё три примера для осознания синтаксиса:</p><div class="codebox"><pre><code>SleepValue := 50

vk23::SleepValue := 50 ; num1

vk28::SleepValue := 500 ; num2

vk22::SleepValue := 1000 ; num3

Alt &amp; LButton::
   CurrentCount++
   SetTimer, Counter, -0
   Return

Counter:
   If CurrentCount = 1
      SetTimer, Lable, -0
   Return

Lable:
   Loop
   {
      ToolTip, % &quot;current iteration: &quot;A_Index
             . &quot;`npause value: &quot;SleepValue
      Sleep, SleepValue
      If CurrentCount &gt; 1
         Break
   }
   ToolTip
   CurrentCount :=
   Return</code></pre></div><div class="codebox"><pre><code>SleepValue := 50

vk23::SleepValue := 50 ; num1

vk28::SleepValue := 500 ; num2

vk22::SleepValue := 1000 ; num3

Alt &amp; LButton::SetTimer, % (State := !State) ? &quot;Label&quot; : &quot;Label2&quot;, -0

Label:
   CurrentCount++
   ToolTip, % &quot;current iteration: &quot;CurrentCount
          . &quot;`npause value: &quot;SleepValue
   Sleep, SleepValue
   If State
      Gosub, Label
   Else
      Gosub, Label2
Label2:
   ToolTip
   CurrentCount :=
   Return</code></pre></div><div class="codebox"><pre><code>SleepValue := 50

vk23::SleepValue := 50 ; num1

vk28::SleepValue := 500 ; num2

vk22::SleepValue := 1000 ; num3

#MaxThreadsPerHotkey, 2
Alt &amp; LButton::Gosub, % (State := !State) ? &quot;Label&quot; : &quot;Label2&quot;
#MaxThreadsPerHotkey, 1

Label:
   While State
   {
      ToolTip, % &quot;current iteration: &quot;A_Index
             . &quot;`npause value: &quot;SleepValue
      Sleep, SleepValue
   }
Label2:
   ToolTip
   Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Grey]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25792</uri>
			</author>
			<updated>2011-09-30T19:47:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52030#p52030</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52024#p52024" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>1) Как скомпилировать картинку в программу?<br /></p><div class="codebox"><pre><code>Gui,add,picture, C:\путь</code></pre></div><p>Если картинка будет отсутствовать в C:\путь то и в скомпилированой программе ее не будет</p></blockquote></div><div class="codebox"><pre><code>
FileInstall, filename.png, %A_TEMP%\filename.png, 1
 Gui, Add, Picture, x6 y6, %A_TEMP%\filename.png</code></pre></div><div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>2) Можно ли вместо текста кнопки поставить картинку, т.е. все пространство кнопки занять картинкой?</p></blockquote></div><p>Насколько мне известно, нет.</p><div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>или будет проще нарисовать картинку в виде кнопки, а действие задать координатами?</p></blockquote></div><p>Можно нарисовать картинку&nbsp; в виде кнопки, а действие задать через метку подпрограммы.<br /></p><div class="codebox"><pre><code> Gui, Add, Picture, x6 y6 gMy_Sub, filename.png
. . .
My_Sub:
SoundBeep
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2011-09-30T16:51:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52024#p52024</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52022#p52022" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Александр_ пишет:</cite><blockquote><div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>1) При нажатии ( не удерживании ) хоткея(например alt+Lbutton) должен запуститья бесконечный цикл из отправки любого хоткея(ну например Lbutton).<br />2) Между отправкой этого хоткея должен находится sleep с переменным значением, это значение должно задаваться хоткеями которые будут присваивать ему эти значения ( например num1= переменное значение:=1 , num2= переменное значение:=2) Это все чтобы задать частоту отправки хоткея (Lbutton)<br />3)При повторном нажатии на хоткей, который нажимался в самом начале(alt+Lbutton), выполняется прирывание этого бесконечного цикла.<br />Это впринцепе все что мне нужно, но я незнаю только как создать toggle.<br />Toggle это когда у одной и той же команды имеется 2 функции.</p></blockquote></div><p>В документации есть очень похожий пример <a href="http://www.script-coding.com/AutoHotkey/MaxThreadsPerHotkey.html">#MaxThreadsPerHotkey</a>. Я думаю проблем с пониманием не возникнет.</p></blockquote></div><p>Спасибо большое, помогло.<br />Возникло еще пара вопросов:<br />1) Как скомпилировать картинку в программу?<br /></p><div class="codebox"><pre><code>Gui,add,picture, C:\путь</code></pre></div><p>Если картинка будет отсутствовать в C:\путь то и в скомпилированой программе ее не будет<br />2) Можно ли вместо текста кнопки поставить картинку, т.е. все пространство кнопки занять картинкой? или будет проще нарисовать картинку в виде кнопки, а действие задать координатами?</p>]]></content>
			<author>
				<name><![CDATA[ratatata.]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27253</uri>
			</author>
			<updated>2011-09-30T16:23:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52022#p52022</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52017#p52017" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>1) При нажатии ( не удерживании ) хоткея(например alt+Lbutton) должен запуститья бесконечный цикл из отправки любого хоткея(ну например Lbutton).<br />2) Между отправкой этого хоткея должен находится sleep с переменным значением, это значение должно задаваться хоткеями которые будут присваивать ему эти значения ( например num1= переменное значение:=1 , num2= переменное значение:=2) Это все чтобы задать частоту отправки хоткея (Lbutton)<br />3)При повторном нажатии на хоткей, который нажимался в самом начале(alt+Lbutton), выполняется прирывание этого бесконечного цикла.<br />Это впринцепе все что мне нужно, но я незнаю только как создать toggle.<br />Toggle это когда у одной и той же команды имеется 2 функции.</p></blockquote></div><p>В документации есть очень похожий пример <a href="http://www.script-coding.com/AutoHotkey/MaxThreadsPerHotkey.html">#MaxThreadsPerHotkey</a>. Я думаю проблем с пониманием не возникнет.</p>]]></content>
			<author>
				<name><![CDATA[Александр_]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24888</uri>
			</author>
			<updated>2011-09-30T13:19:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52017#p52017</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51987#p51987" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Александр_ пишет:</cite><blockquote><div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>Мне бы лишь понять как привязать к одному хоткею 2 команды, сначало луп, потом брейк<br />причем не понять как это впринцепе делается, а именно синтаксис ахк...</p></blockquote></div><p>Тогда сделайте блок-схему или напишите на псевдокоде. Или хотя бы распишите задачу по пунктам. А то сейчас получается что-то типа <a href="http://www.youtube.com/watch?v=96yDkzAfubc">этого</a>.</p></blockquote></div><p>Может быть странно, но я ее понял <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /><br />1) При нажатии ( не удерживании ) хоткея(например alt+Lbutton) должен запуститья бесконечный цикл из отправки любого хоткея(ну например Lbutton).<br />2) Между отправкой этого хоткея должен находится sleep с переменным значением, это значение должно задаваться хоткеями которые будут присваивать ему эти значения ( например num1= переменное значение:=1 , num2= переменное значение:=2) Это все чтобы задать частоту отправки хоткея (Lbutton)<br />3)При повторном нажатии на хоткей, который нажимался в самом начале(alt+Lbutton), выполняется прирывание этого бесконечного цикла.<br />Это впринцепе все что мне нужно, но я незнаю только как создать toggle.<br />Toggle это когда у одной и той же команды имеется 2 функции.</p><p>Напишу пример toggle на консольном скриптинге counter-strike, например...</p><p>alias param1 &quot;param2&quot; - функция присвоения параметра param1 к параметру param2<br /></p><div class="codebox"><pre><code>alias toggle_duck &quot;duck1&quot; //присваеваем для toggle функцию duck1
alias duck1 &quot;+duck; alias toggle_duck duck2&quot; // присваеваем функции duck1 команду +duck и заменяем toggle на функцию duck2
alias duck2 &quot;-duck; alias toggle_duck duck1&quot; // присваеваем функции duck2 команду -duck и заменяем toggle обратно на функцию duck1
bind key &quot;toggle_duck&quot; // биндим тоггл на хоткей</code></pre></div><p>Таким образом получается что при нажатии на хоткей(выполнении toggle) выполняется команда +duck, а при повторном нажатии(повторном выполнении toggle) команда -duck</p><p>Это все, подругому объяснить не смогу...<br />Конечно в синтаксисе ахк это может иметь абсолютно другой вид, но я надеюсь суть вы поняли.</p>]]></content>
			<author>
				<name><![CDATA[ratatata.]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27253</uri>
			</author>
			<updated>2011-09-29T23:41:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51987#p51987</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51980#p51980" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>Мне бы лишь понять как привязать к одному хоткею 2 команды, сначало луп, потом брейк<br />причем не понять как это впринцепе делается, а именно синтаксис ахк...</p></blockquote></div><p>Тогда сделайте блок-схему или напишите на псевдокоде. Или хотя бы распишите задачу по пунктам. А то сейчас получается что-то типа <a href="http://www.youtube.com/watch?v=96yDkzAfubc">этого</a>.</p>]]></content>
			<author>
				<name><![CDATA[Александр_]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24888</uri>
			</author>
			<updated>2011-09-29T22:43:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51980#p51980</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51976#p51976" />
			<content type="html"><![CDATA[<p>Мне бы лишь понять как привязать к одному хоткею 2 команды, сначало луп, потом брейк<br />причем не понять как это впринцепе делается, а именно синтаксис ахк...</p>]]></content>
			<author>
				<name><![CDATA[ratatata.]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27253</uri>
			</author>
			<updated>2011-09-29T20:53:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51976#p51976</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51975#p51975" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>В первом сообщении много знакомых букв, но также много незнакомых слов. <img src="//forum.script-coding.com/img/smilies/hmm.png" width="15" height="15" /></p></blockquote></div><p>Ну неужели я настолько непонятно и безграмотно написал <img src="//forum.script-coding.com/img/smilies/neutral.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[ratatata.]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27253</uri>
			</author>
			<updated>2011-09-29T20:04:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51975#p51975</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51974#p51974" />
			<content type="html"><![CDATA[<p>В первом сообщении много знакомых букв, но также много незнакомых слов. <img src="//forum.script-coding.com/img/smilies/hmm.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2011-09-29T19:51:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51974#p51974</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51973#p51973" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>loop
{
send{hotkey}
sleep, % param
}</code></pre></div><p>Чтото вроде этого</p><p>Извините за непонятные объяснения.</p>]]></content>
			<author>
				<name><![CDATA[ratatata.]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27253</uri>
			</author>
			<updated>2011-09-29T19:43:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51973#p51973</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51972#p51972" />
			<content type="html"><![CDATA[<p>Я, честно говоря, не очень понял условие. Выражение &quot;луп на сенд со слипом&quot; вызывает у меня лёгкое головокружение. Ну, может, найдётся кто более понятливый.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-09-29T19:34:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51972#p51972</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51971#p51971" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><div class="quotebox"><cite>ratatata. пишет:</cite><blockquote><p>И да, я даже не читал документацию, извинте, просто нет времени.</p></blockquote></div><p><strong>ratatata.</strong>, задача нашего форума — помощь в обучении программированию, а не безвозмездная помощь халявщикам. Нет времени — ради бога, в личку, платно.</p></blockquote></div><p>Хотябы подскажите что конкретно читать, ведь возможностей у ахк куча, а мне надо всеголишь 2 функции. Спасибо.</p>]]></content>
			<author>
				<name><![CDATA[ratatata.]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27253</uri>
			</author>
			<updated>2011-09-29T19:28:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51971#p51971</id>
		</entry>
</feed>
