<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Корректировка полета пуль]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8604&amp;type=atom" />
	<updated>2013-08-22T11:00:01Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8604</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Корректировка полета пуль]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74866#p74866" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>if A_TimeSinceThisHotkey &lt; 900 ; <strong><span class="bbu"><span style="color: red">что это?</span></span></strong></p></blockquote></div><p>Время в миллисекундах сколько нажат этот Hotkey. </p><p>Если нужно точное смещение на определённое кол-во пикселей, я бы как то так написал:<br /></p><div class="codebox"><pre><code>
MaxStep := 60 

~*LButton:: 
    While GetKeyState(&quot;LButton&quot;, &quot;P&quot;)   { 
        if (A_Index &lt;= MaxStep)
            MouseMove, 0, 1, 0, R 
        var := A_Index &gt;= MaxStep ? MaxStep : A_Index
    }
    MouseMove, 0, -var, 0, R  
    return    
</code></pre></div><div class="codebox"><pre><code>SetMouseDelay</code></pre></div><p>Лучше в этом случае установить в районе 15. Настройка с помощью SetMouseDelay более плавная чем использование Sleep, 10.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;тоже с DllCall</div><div class="fancy_spoiler"><div class="codebox"><pre><code>
MaxStep := 60  

~*LButton:: 
    While GetKeyState(&quot;LButton&quot;, &quot;P&quot;)   { 
        if (A_Index &lt;= MaxStep)
            DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, 1, uint, 0, int, 0) 
        var := A_Index &gt;= MaxStep ? MaxStep : A_Index
        Sleep, 10 
    }
    DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, -var, uint, 0, int, 0) 
    return    
</code></pre></div></div></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-22T11:00:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74866#p74866</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Корректировка полета пуль]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74858#p74858" />
			<content type="html"><![CDATA[<p>Здравствуйте!<br />Я читал правила поэтому старался придумать название темы как можно ближе к вопросу. Так что если что извиняюсь.</p><p>Нашел я этот скрипт на просторах интернета. Протестировал его и он почти подходит, но моих знаний не хватает что бы до конца его понять. Если бы я понял его до конца то знал бы как подкорректировать скрипт.</p><p>Вот сам скрипт<br /></p><div class="codebox"><pre><code>#IfWinActive, Blablabla
SetBatchLines, -1
SetMouseDelay, -1
SetKeyDelay, -1
Suspend, On
return

CapsLock::
Suspend, Toggle
if A_IsSuspended
{
    SetCapsLockState, Off
    SoundBeep, 500, 150
}
else
{
    SetCapsLockState, On
    SoundBeep, 1500, 150
}
return

*LButton::
Click Down
Loop
{
    GetKeyState, state, LButton, P
    if A_TimeSinceThisHotkey &lt; 900
    {
        var1 := 1
        var2 := A_TimeSinceThisHotkey / 15
    }
    else
    {
        var1 := 0
        var2 := 60
    }
    if state = U
        break
    DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, var1, uint, 0, int, 0)
    Sleep, 10
}
Click Up
DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, -var2, uint, 0, int, 0)
return</code></pre></div><p>Помогите пожалуйста и объясните построчно этот кусочек кода:<br /></p><div class="codebox"><pre><code>*LButton::
Click Down 
Loop
{
    GetKeyState, state, LButton, P
    if A_TimeSinceThisHotkey &lt; 900               
    {
        var1 := 1                                              
        var2 := A_TimeSinceThisHotkey / 15  
    }
    else
    {
        var1 := 0
        var2 := 60
    }
    if state = U
        break
    DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, var1, uint, 0, int, 0)
    Sleep, 10
}
Click Up
DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, -var2, uint, 0, int, 0)
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2013-08-22T01:07:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74858#p74858</id>
		</entry>
</feed>
