<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Бесконечный toggle цикл]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=6268</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6268&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Бесконечный toggle цикл».]]></description>
		<lastBuildDate>Sat, 01 Oct 2011 19:21:14 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52074#p52074</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Александр_)]]></author>
			<pubDate>Sat, 01 Oct 2011 19:21:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52074#p52074</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52037#p52037</link>
			<description><![CDATA[<p><strong>Александр_, ypppu</strong>, спасибо.<br /><strong>Grey</strong>, спасибо, отличные примеры, лучше чем у меня вышли...</p>]]></description>
			<author><![CDATA[null@example.com (ratatata.)]]></author>
			<pubDate>Fri, 30 Sep 2011 22:13:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52037#p52037</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52033#p52033</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Александр_)]]></author>
			<pubDate>Fri, 30 Sep 2011 21:09:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52033#p52033</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52030#p52030</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Grey)]]></author>
			<pubDate>Fri, 30 Sep 2011 19:47:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52030#p52030</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52024#p52024</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Fri, 30 Sep 2011 16:51:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52024#p52024</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52022#p52022</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (ratatata.)]]></author>
			<pubDate>Fri, 30 Sep 2011 16:23:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52022#p52022</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52017#p52017</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Александр_)]]></author>
			<pubDate>Fri, 30 Sep 2011 13:19:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52017#p52017</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=51987#p51987</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (ratatata.)]]></author>
			<pubDate>Thu, 29 Sep 2011 23:41:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=51987#p51987</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=51980#p51980</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Александр_)]]></author>
			<pubDate>Thu, 29 Sep 2011 22:43:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=51980#p51980</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=51976#p51976</link>
			<description><![CDATA[<p>Мне бы лишь понять как привязать к одному хоткею 2 команды, сначало луп, потом брейк<br />причем не понять как это впринцепе делается, а именно синтаксис ахк...</p>]]></description>
			<author><![CDATA[null@example.com (ratatata.)]]></author>
			<pubDate>Thu, 29 Sep 2011 20:53:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=51976#p51976</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=51975#p51975</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (ratatata.)]]></author>
			<pubDate>Thu, 29 Sep 2011 20:04:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=51975#p51975</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=51974#p51974</link>
			<description><![CDATA[<p>В первом сообщении много знакомых букв, но также много незнакомых слов. <img src="//forum.script-coding.com/img/smilies/hmm.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Thu, 29 Sep 2011 19:51:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=51974#p51974</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=51973#p51973</link>
			<description><![CDATA[<div class="codebox"><pre><code>loop
{
send{hotkey}
sleep, % param
}</code></pre></div><p>Чтото вроде этого</p><p>Извините за непонятные объяснения.</p>]]></description>
			<author><![CDATA[null@example.com (ratatata.)]]></author>
			<pubDate>Thu, 29 Sep 2011 19:43:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=51973#p51973</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=51972#p51972</link>
			<description><![CDATA[<p>Я, честно говоря, не очень понял условие. Выражение &quot;луп на сенд со слипом&quot; вызывает у меня лёгкое головокружение. Ну, может, найдётся кто более понятливый.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 29 Sep 2011 19:34:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=51972#p51972</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бесконечный toggle цикл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=51971#p51971</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (ratatata.)]]></author>
			<pubDate>Thu, 29 Sep 2011 19:28:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=51971#p51971</guid>
		</item>
	</channel>
</rss>
