<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Перестаёт работать цикл]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=11369&amp;type=atom" />
	<updated>2016-03-05T12:42:00Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=11369</id>
		<entry>
			<title type="html"><![CDATA[Re: Перестаёт работать цикл]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=101673#p101673" />
			<content type="html"><![CDATA[<p>Спасибо</p>]]></content>
			<author>
				<name><![CDATA[ralorttal]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33349</uri>
			</author>
			<updated>2016-03-05T12:42:00Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=101673#p101673</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Перестаёт работать цикл]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=101665#p101665" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Когда {Blind} стоит первым в посылаемой строке, клавиши Alt/Control/Shift/Win, находящиеся в нажатом состоянии, не будут отпущены перед посылкой строки.</p></blockquote></div><div class="codebox"><pre><code>SendInput {Blind}4</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-03-04T23:18:00Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=101665#p101665</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Перестаёт работать цикл]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=101664#p101664" />
			<content type="html"><![CDATA[<p>Ещё подскажите в чём может быть проблема. Если я в данном цикле использую только клавишу Е, для периодического прожатия 4, то при ручном зажатии шифта,&nbsp; он периодически отпускается, хотя кнопка физически зажата.</p>]]></content>
			<author>
				<name><![CDATA[ralorttal]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33349</uri>
			</author>
			<updated>2016-03-04T22:39:05Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=101664#p101664</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Перестаёт работать цикл]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=101642#p101642" />
			<content type="html"><![CDATA[<p>Странно почему первые 2 дня Е была тригером.<br />Можно переделать так:<br /></p><div class="codebox"><pre><code>vk45:: ; E
vk57:: ; W
	Loop 
	{
		if (W_Down := GetKeyState(&quot;vk57&quot;,&quot;p&quot;)) &amp;&amp; (A_TickCount &gt; T1) &amp;&amp; (T1 := A_TickCount + 100)
			SendInput {Shift down}{LButton down}1{Shift up}{LButton up}  
		if (E_UpWait := GetKeyState(&quot;vk45&quot;,&quot;p&quot;) ? !E_UpWait : E_UpWait)  &amp;&amp; (A_TickCount &gt; T2) &amp;&amp; (T2 := A_TickCount + 100)
			SendInput 4 
			Sleep 100
	} Until (!W_Down &amp;&amp; !E_UpWait)
	Return </code></pre></div><p>Но если E проверять в цикле без Sleep, то одно её нажатие может быть принято за несколько, а использовать тут Sleep не кошерно.<br />Я бы сделал на таймерах:<br /></p><div class="codebox"><pre><code>
vk45:: SetTimer, Send_4, % (E_Work := !E_Work) ? 100 : &quot;Off&quot;    ; E  

vk57::  ; W 
	If !W_Down 
		SetTimer, Send_Shift_LButton_1, %  (W_Down := 100)
	Return
	
vk57 Up:: SetTimer, Send_Shift_LButton_1, % &quot;Off&quot; . (W_Down := &quot;&quot;)
	
Send_4:
	SendInput 4
	Return
	
Send_Shift_LButton_1:
	SendInput {Shift down}{LButton down}1{Shift up}{LButton up} 
	Return
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-03-04T17:23:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=101642#p101642</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Перестаёт работать цикл]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=101629#p101629" />
			<content type="html"><![CDATA[<p>Как ни странно спустя пару дней, код стал рабоать по другому, Е стала работать пока её держишь, а не как тригер. Хотя сначала работала как хотелось. Ни у кого нет никаких идей? Комп перезагружал, скрипт заново копировал.</p>]]></content>
			<author>
				<name><![CDATA[ralorttal]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33349</uri>
			</author>
			<updated>2016-03-04T13:57:28Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=101629#p101629</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Перестаёт работать цикл]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=101572#p101572" />
			<content type="html"><![CDATA[<p>Спасибо</p>]]></content>
			<author>
				<name><![CDATA[ralorttal]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33349</uri>
			</author>
			<updated>2016-03-01T17:28:20Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=101572#p101572</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Перестаёт работать цикл]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=101567#p101567" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>vk57:: ;W
vk45:: ; E
While GetKeyState(&quot;vk57&quot;,&quot;p&quot;) or GetKeyState(&quot;vk45&quot;,&quot;p&quot;)
{
  if GetKeyState(&quot;vk57&quot;,&quot;p&quot;) and (A_TickCount &gt; T1) and (T1 := A_TickCount + 100)
   SendInput {Shift down}{LButton down}1{Shift up}{LButton up} 
  if GetKeyState(&quot;vk45&quot;,&quot;p&quot;) and (A_TickCount &gt; T2) and (T2 := A_TickCount + 100)
   SendInput 4 
}
return </code></pre></div>]]></content>
			<author>
				<name><![CDATA[yalanne]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=32850</uri>
			</author>
			<updated>2016-03-01T14:20:46Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=101567#p101567</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Перестаёт работать цикл]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=101566#p101566" />
			<content type="html"><![CDATA[<p>Имеется код</p><div class="codebox"><pre><code>
vk57:: ;W
SendInput {Shift Down}{LButton Down} 
While GetKeyState(A_ThisHotkey,&quot;p&quot;) 
{
    if (A_TickCount &gt; T1) &amp;&amp; (T1 := A_TickCount + 100) 
        SendInput 1 
     
    sleep 10
}
SendInput {Shift Up}{LButton Up}  
return 

vk45:: ; E
keywait vk45 
loop 
    {
    
     if GetKeyState(&quot;vk45&quot;,&quot;p&quot;) 
        {    
            keywait vk45
            return
        }    
     if (A_TickCount &gt; T10) and (T10 := A_TickCount + 100) 
            SendInput 4 
    }

</code></pre></div><p>Идея в том чтоб по нажатию клавиши Е, прожималась постоянно 4, пока ещё раз не нажать Е. А по зажатию W зажимался шифт с левой кнопкой мышки и прожималась 1. Проблема в том, что при нажатии W прекращается цикл E, пока не отпустить W. Как переделать код чтобы они работали оба одновременно независимо друг от друга.</p>]]></content>
			<author>
				<name><![CDATA[ralorttal]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33349</uri>
			</author>
			<updated>2016-03-01T13:39:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=101566#p101566</id>
		</entry>
</feed>
