<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8013&amp;type=atom" />
	<updated>2016-12-06T12:55:49Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8013</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=109661#p109661" />
			<content type="html"><![CDATA[<p>Добрый день, подскажите, пожалуйста, как модифицировать код из 4 сообщения так, чтобы при одновременном клике на ПКМ + ЛКМ происходило зажатие Средней кнопки&nbsp; {MButton Down}.&nbsp; И она оставалась зажатой до тех пор, пока не будет произведен клин ПКМ?</p>]]></content>
			<author>
				<name><![CDATA[sd7962]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34089</uri>
			</author>
			<updated>2016-12-06T12:55:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=109661#p109661</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=69024#p69024" />
			<content type="html"><![CDATA[<p>Немного дополнил скрипт:<br /></p><div class="codebox"><pre><code>SendMode, Input
SetKeyDelay, -1
SetMouseDelay, -1
Sens := &quot;3&quot;           ;================ [ Чувствительность прокрутки ] ====================
T_Sens := &quot;3&quot;        ;==================== [ Интервал прокрутки ] ========================
MB_U := &quot;{MButton Up}&quot;, MB_D := &quot;{MButton Down}&quot;, WA := &quot;WheelUp&quot;, WD := &quot;WheelDown&quot;


RButton::
If GetKeyState(&quot;LButton&quot;, &quot;P&quot;) {
    Send, % (OnF := !OnF) ? (MB_D) : (MB_U)
    return
}
MemPos_Y := MGP_Y(), MemPos_X := MGP_X()
Loop
{    
    Slp(&quot;25&quot;)
    If (MemPos_Y &lt;&gt; MGP_Y()) || (MemPos_X &lt;&gt; MGP_X()) {
        Wheel_Funk1(A_ThisHotkey, Sens, T_Sens, WA, WD)
        return
    }
    If !(GetKeyState(&quot;RButton&quot;, &quot;P&quot;)) {
        break
    }
    Slp(&quot;25&quot;)
}
UpDwKeyFunk(A_ThisHotkey)
return


Wheel_Funk1(Hot_key_, Sens, T_Sens, WA, WD)
{
    Loop
    {
        MemPos_Y := MGP_Y(), MemPos_X := MGP_X()
        Slp(T_Sens)
        ((MemPos_Y - Sens) &gt; MGP_Y()) ? MC(WA), ((MemPos_Y + Sens) &lt; MGP_Y()) ? MC(WD)
        ((MemPos_X - Sens) &gt; MGP_X()) ? MC_WL(), ((MemPos_X + Sens) &lt; MGP_X()) ? MC_WR()
        Slp(T_Sens)
        If !GetKeyState(Hot_key_, &quot;P&quot;) {
            return
        }
    }
}
UpDwKeyFunk(Hot_key)
{
    SendInput, % &quot;{&quot; Hot_key &quot; Down}&quot;
    while GetKeyState(Hot_key, &quot;P&quot;)
        Slp(&quot;25&quot;)
    SendInput, % &quot;{&quot; Hot_key &quot; Up}&quot;
}
MGP_Y()
{
    MouseGetPos,, Var_Y
    return, Var_Y
}
MGP_X()
{
    MouseGetPos, Var_X
    return, Var_X
}
Slp(T_Sens)
{
    Sleep, T_Sens
}
MC(Key)
{
    MouseClick, % Key
    return
}
MC_WL()
{
    ControlGetFocus, fcontrol, A
    SendMessage, 0x114, 0, 0, % fcontrol, A
}

MC_WR()
{
    ControlGetFocus, fcontrol, A
    SendMessage, 0x114, 1, 0, % fcontrol, A
}

ESC::
    ExitApp</code></pre></div><p><strong>Функционал</strong>:<br />1) Нажимаем: ЛКМ + ПКМ&nbsp; = Срабатывать удержание СКМ ,<br />&nbsp; &nbsp; &nbsp;Повторно нажимаем ЛКМ + ПКМ&nbsp; &nbsp;=&nbsp; СКМ будет становиться отпущеной.<br />2) При одновременном нажатии ПКМ и вращении шарика (Или движение мишки Вверх / Низ) =&nbsp; прокрутка вверх-вниз.<br /><strong>Добавлено:</strong><br />3) При одновременном нажатии ПКМ и вращении шарика (Или движение мишки Вправо / Влево) =&nbsp; прокрутка Вправо-Влево.</p>]]></content>
			<author>
				<name><![CDATA[migomigo]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24684</uri>
			</author>
			<updated>2013-01-31T15:28:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=69024#p69024</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68966#p68966" />
			<content type="html"><![CDATA[<p>Да, я в курсе, что предупреждения можно отключать.<br />Уважаемому migomigo большое спасибо - скрипт очень удобный.</p>]]></content>
			<author>
				<name><![CDATA[abax]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29483</uri>
			</author>
			<updated>2013-01-29T13:48:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68966#p68966</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68953#p68953" />
			<content type="html"><![CDATA[<p>Так сказано же запустить <strong>этот</strong> скрипт, а не вставить код в файл шаблона ahk скрипта.<br />Уберите директиву #Warn из первой строки.</p>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2013-01-29T13:33:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68953#p68953</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68951#p68951" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>migomigo пишет:</cite><blockquote><p>Попробуйте запустить этот скрипт.</p></blockquote></div><p>Выдает предупреждение при запуске и при первом срабатывании:<br />http://savl.spb.ru/screens/2013-01-29_1720.png<br />http://savl.spb.ru/screens/2013-01-29_1723.png</p><p>Но, в принципе, работает.</p>]]></content>
			<author>
				<name><![CDATA[abax]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29483</uri>
			</author>
			<updated>2013-01-29T13:26:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68951#p68951</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68937#p68937" />
			<content type="html"><![CDATA[<p>Попробуйте запустить этот скрипт.<br />Отдельно.<br /><strong>Функционал</strong>:<br />1) Нажимаем: ЛКМ + ПКМ&nbsp; = Срабатывать удержание СКМ ,<br />&nbsp; &nbsp; &nbsp;Повторно нажимаем ЛКМ + ПКМ&nbsp; &nbsp;=&nbsp; СКМ будет становиться отпущеной.<br />2) При одновременном нажатии ПКМ и вращении шарика (Или движение мишки Вверх / Низ) =&nbsp; прокрутка вверх-вниз.</p><br /><div class="codebox"><pre><code>SendMode, Input
SetKeyDelay, -1
SetMouseDelay, -1
Sens := &quot;3&quot;           ;================ [ Чувствительность прокрутки ] ====================
T_Sens := &quot;3&quot;        ;==================== [ Интервал прокрутки ] ========================


RButton::
MemPos_Y := MGP_Y()
If GetKeyState(&quot;LButton&quot;, &quot;P&quot;) {
    OnOff := !OnOff
    If (!OnOff) {
        Send, {MButton Up}
        return
    }
    Send, {MButton Down}
    return
}
Loop
{
    If (MemPos_Y &lt;&gt; MGP_Y()) {
        Wheel_Funk1(A_ThisHotkey, Sens, T_Sens)
        return
    }
    If !(GetKeyState(&quot;RButton&quot;, &quot;P&quot;)) {
        break
    }
    Sleep, 25
}
UpDwKeyFunk(A_ThisHotkey)
return


Wheel_Funk1(Hot_key_, Sens, T_Sens)
{
    Loop
    {
        MemPos_Y := MGP_Y()
        Sleep, % T_Sens
        If ((MemPos_Y - Sens) &gt; MGP_Y())
        {
            MouseClick, WheelUp
            Sleep, % T_Sens
        }
        If ((MemPos_Y + Sens) &lt; MGP_Y())
        {
            MouseClick, WheelDown
            Sleep, % T_Sens
        }
        Sleep, % T_Sens
        If !GetKeyState(Hot_key_, &quot;P&quot;) {
            return
        }
    }
}
UpDwKeyFunk(Hot_key)
{
    SendInput, % &quot;{&quot; Hot_key &quot; Down}&quot;
    while GetKeyState(Hot_key, &quot;P&quot;)
        Sleep, 25
    SendInput, % &quot;{&quot; Hot_key &quot; Up}&quot;
}
MGP_Y()
{
    MouseGetPos,, Var_Y
    return, Var_Y
}

ESC::
    ExitApp</code></pre></div>]]></content>
			<author>
				<name><![CDATA[migomigo]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24684</uri>
			</author>
			<updated>2013-01-29T10:45:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68937#p68937</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68928#p68928" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>migomigo пишет:</cite><blockquote><p>У меня нет трекбола что бы понять что делает выложеный скрипт..<br />1)Опишите что делает этот скрипт, и при каких обстоятельствах.</p></blockquote></div><p>При одновременном нажатии ПКМ и вращении шарика (на обычной мышке - полагаю, движения мыши) прокрутка вверх-вниз.</p><div class="quotebox"><cite>migomigo пишет:</cite><blockquote><p>Такой вариант актуален?:<br /></p><div class="codebox"><pre><code>Нажимаем: ПКМ + ЛКМ  = Срабатывать удержание СКМ ,
Повторно нажимаем ПКМ + ЛКМ   =  СКМ будет становиться отпущеной.</code></pre></div></blockquote></div><p>Да.</p>]]></content>
			<author>
				<name><![CDATA[abax]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29483</uri>
			</author>
			<updated>2013-01-28T14:40:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68928#p68928</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68924#p68924" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>abax пишет:</cite><blockquote><p>Кроме того, он делает неработоспособным другой скрипт для трекбола, который я вытащил в другом месте - эмулирующий прокрутку колесиком:</p></blockquote></div><br /><br /><p>У меня нет трекбола что бы понять что делает выложеный скрипт..<br />1)Опишите что делает этот скрипт, и при каких обстоятельствах.</p><br /><div class="quotebox"><cite>abax пишет:</cite><blockquote><p>Большое спасибо, почти, но не совсем. В Файрфоксе он дает эффект нажатой средней кнопки мыши, ПОКА ОБЕ КНОПКИ НЕ ОТПУЩЕНЫ. Что, увы, делает его малополезным.</p></blockquote></div><p>Такой вариант актуален?:<br /></p><div class="codebox"><pre><code>Нажимаем: ПКМ + ЛКМ  = Срабатывать удержание СКМ ,
Повторно нажимаем ПКМ + ЛКМ   =  СКМ будет становиться отпущеной.</code></pre></div>]]></content>
			<author>
				<name><![CDATA[migomigo]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24684</uri>
			</author>
			<updated>2013-01-28T10:29:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68924#p68924</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68921#p68921" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Вот этот скрипт работает так как вы хотели?</p></blockquote></div><p>Большое спасибо, почти, но не совсем. В Файрфоксе он дает эффект нажатой средней кнопки мыши, ПОКА ОБЕ КНОПКИ НЕ ОТПУЩЕНЫ. Что, увы, делает его малополезным.</p><p>Кроме того, он делает неработоспособным другой скрипт для трекбола, который я вытащил в другом месте - эмулирующий прокрутку колесиком:</p><div class="codebox"><pre><code>
;;
;; Emulate_Scrolling_Middle_Button.ahk
;; Author: Erik Elmore &lt;erik@ironsavior.net&gt;
;; Version: 1.1 (Aug 16, 2005)
;;
;; Enables you to use any key with cursor movement
;; to emulate a scrolling middle button.  While
;; the TriggerKey is held down, you may move the
;; mouse cursor up and down to send scroll wheel
;; events.  If the cursor does not move by the
;; time the TriggerKey is released, then a middle
;; button click is generated.  I wrote this for my
;; 4-button Logitech Marble Mouse (trackball), 
;; which has no middle button or scroll wheel.
;;

;; Configuration

;#NoTrayIcon

;; Higher numbers mean less sensitivity
esmb_Threshold = 3
;; Delay 10*10ms, then put pointer back to original location
esmb_delay = 10

;; This key/Button activates scrolling
esmb_TriggerKey = RButton

;; End of configuration

#Persistent
CoordMode, Mouse, Screen
Hotkey, %esmb_TriggerKey%, esmb_TriggerKeyDown
HotKey, %esmb_TriggerKey% Up, esmb_TriggerKeyUp
esmb_KeyDown = n
return

esmb_TriggerKeyDown:
esmb_Moved = n
esmb_FirstIteration = y
esmb_KeyDown = y
MouseGetPos,, esmb_OldY
MouseGetPos, esmb_OrigX, esmb_OrigY
esmb_counter := 0
SetTimer, esmb_CheckForScrollEventAndExecute, 10
;;LButton &amp; RButton::MButton
return

esmb_TriggerKeyUp:
esmb_KeyDown = n
SetTimer, esmb_CheckForScrollEventAndExecute, Off
;; Send a middle-click if we did not scroll
if esmb_Moved = n
    MouseClick, Right
return

esmb_CheckForScrollEventAndExecute:
if esmb_KeyDown = n
    return

MouseGetPos,, esmb_NewY
esmb_Distance := esmb_NewY - esmb_OldY
if esmb_Distance
    esmb_Moved = y

;; Do not send clicks on the first iteration
if esmb_FirstIteration = y
    esmb_FirstIteration = n
else if esmb_Distance &gt; %esmb_Threshold%
{
    esmb_OldY := esmb_OldY + esmb_Threshold
    MouseClick, WheelDown
}
else if esmb_Distance &lt; -%esmb_Threshold%
{
    esmb_OldY := esmb_OldY - esmb_Threshold
    MouseClick, WheelUp
}
else
{
    esmb_counter := esmb_counter + 1
    if( esmb_counter &gt; esmb_delay)
    {
        esmb_counter := 0
        MouseMove,esmb_OrigX,esmb_OrigY
        MouseGetPos,, esmb_OldY
    }
}
return </code></pre></div><p>В любом случае, признателен Вам за помощь.</p>]]></content>
			<author>
				<name><![CDATA[abax]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29483</uri>
			</author>
			<updated>2013-01-27T18:57:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68921#p68921</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68919#p68919" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>abax пишет:</cite><blockquote><p>С верным синтаксисом оно все равно не работает</p></blockquote></div><p>Уже лучше, но где ты нашёл такой синтаксис:<br /></p><div class="codebox"><pre><code>~LButton &amp; RButton::Send, MouseClick,Middle ;</code></pre></div><p><em>MouseClick</em> — это отдельная команда, в качестве параметра <em>Send</em> она не катит.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2013-01-27T18:48:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68919#p68919</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68917#p68917" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>abax пишет:</cite><blockquote><p>Помогите, пожалуйста - я мало понимаю в программировании AHK, решаю чисто практическую проблему. Купил трекбол, у него нет средней кнопки. Хотел назначить, чтобы одновременное нажатие левой и правой эмулировало среднюю.</p></blockquote></div><p>Вот этот скрипт работает так как вы хотели? <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /></p><div class="codebox"><pre><code>LButton::
If GetKeyState(&quot;RButton&quot;, &quot;P&quot;) {
    Send, {MButton}
    return
}
If GetKeyState(A_ThisHotkey, &quot;P&quot;) {
    SendInput, % &quot;{&quot; A_ThisHotkey &quot; Down}&quot;
    Loop {
    if !GetKeyState(A_ThisHotkey, &quot;P&quot;)
        break
    }
SendInput, % &quot;{&quot; A_ThisHotkey &quot; Up}&quot;
}
return


RButton::
If GetKeyState(&quot;LButton&quot;, &quot;P&quot;) {
    Send, {MButton}
    return
}
If GetKeyState(A_ThisHotkey, &quot;P&quot;) {
    SendInput, % &quot;{&quot; A_ThisHotkey &quot; Down}&quot;
    Loop {
    if !GetKeyState(A_ThisHotkey, &quot;P&quot;)
        break
    }
SendInput, % &quot;{&quot; A_ThisHotkey &quot; Up}&quot;
}
return


ESC::
    ExitApp</code></pre></div>]]></content>
			<author>
				<name><![CDATA[migomigo]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24684</uri>
			</author>
			<updated>2013-01-27T17:04:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68917#p68917</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68916#p68916" />
			<content type="html"><![CDATA[<p>С верным синтаксисом оно все равно не работает:</p><div class="codebox"><pre><code>~LButton &amp; RButton::Send, MouseClick,Middle ;</code></pre></div><p>запускается, но эффекта никакого</p>]]></content>
			<author>
				<name><![CDATA[abax]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29483</uri>
			</author>
			<updated>2013-01-27T13:46:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68916#p68916</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68913#p68913" />
			<content type="html"><![CDATA[<p>Синтаксис неверный, в <a href="http://script-coding.com/AutoHotkey/Hotkeys.html">справке</a> есть примеры.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2013-01-27T10:24:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68913#p68913</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: как назначить для LButton & RButton среднюю кнопку мыши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68910#p68910" />
			<content type="html"><![CDATA[<p>Помогите, пожалуйста - я мало понимаю в программировании AHK, решаю чисто практическую проблему. Купил трекбол, у него нет средней кнопки. Хотел назначить, чтобы одновременное нажатие левой и правой эмулировало среднюю.</p><p>1) Как это сделать?<br />2) Почему простой код <br /></p><div class="codebox"><pre><code>
~ LButton &amp; RButton :: MButton ;</code></pre></div><p>или<br /></p><div class="codebox"><pre><code> 
~ LButton &amp; RButton :: Send, MouseClick,Middle ; </code></pre></div><p>работать не желает, говорит Invalid hotkey?</p>]]></content>
			<author>
				<name><![CDATA[abax]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29483</uri>
			</author>
			<updated>2013-01-27T09:08:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68910#p68910</id>
		</entry>
</feed>
