<?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=8406&amp;type=atom" />
	<updated>2013-06-20T01:49:49Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8406</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73136#p73136" />
			<content type="html"><![CDATA[<p>Логичней сделать как-нибудь так:<br /></p><div class="codebox"><pre><code>
~WheelDown::
~WheelUp::
n = 1
return

~LButton::
loop
{
   n = 0
   MouseGetPos, x1, y1
   KeyWait, LButton, T1
   MouseGetPos, x2, y2
   If ((ErrorLevel) &amp;&amp; (x1 = x2) &amp;&amp; (y1 = y2) &amp;&amp; (n = 0))
      break
   sleep, 100
}
SendInput {LButton UP}
GoSub GuiShow 
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2013-06-20T01:49:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73136#p73136</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73133#p73133" />
			<content type="html"><![CDATA[<p>Спасибо Большое! Отличный совет! Спасибо! Буду доделывать:)</p>]]></content>
			<author>
				<name><![CDATA[brwinded]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30304</uri>
			</author>
			<updated>2013-06-19T19:31:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73133#p73133</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73131#p73131" />
			<content type="html"><![CDATA[<p><strong>Irbis</strong><br />Я предложил просто вариант алгоритма на скорую руку. <br />Делать готовое решение по данному вопросу я несобирался.<br />Любую идею можно допиливать до бесконечности. Занимайтесь...<br />Не нравится идея, не комментируйте, предложите свою.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-06-19T16:42:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73131#p73131</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73118#p73118" />
			<content type="html"><![CDATA[<p><strong>serzh82saratov</strong>, при выделении большого текста, выскакивает Gui, даже если курсор еще в движении. Также он появляется, если просто передвигать окно или делать Drag`n`Drop файла.</p><p>Как вариант, можно оставить выделение левой кнопкой как обычно,&nbsp; но если во время этого нажать правую кнопку мыши&nbsp; - будет с выбором действия.<br />Вместо хоткея <strong>LButton::</strong><br /></p><div class="codebox"><pre><code>~LButton &amp; RButton::
    KeyWait, LButton
       GoSub GuiShow 
    Return </code></pre></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2013-06-19T13:30:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73118#p73118</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73106#p73106" />
			<content type="html"><![CDATA[<p>С картинками:<br /></p><div class="codebox"><pre><code>
OnMessage(0x200, &quot;WM_MOUSEMOVE&quot;)   
Return

~LButton::
    KeyWait, LButton, T2
    If ErrorLevel
    {    
        SendInput {LButton UP}
        GoSub GuiShow 
    }    
    Return
    
~LButton up::
    If WinExist(&quot;ahk_id&quot; hgui)
        Gui Destroy
    Return 
    
GuiShow:
    Gui Color, D3DAED
    Gui Font, s20
    Gui, Margin, 0, 0
    Gui +Hwndhgui -Caption +E0x08000000 +Lastfound +AlwaysOnTop
    Gui Add, Picture, Border y33 gSendInput Icon133 vPaste w32 h-1, Shell32.dll
    Gui Add, Picture, Border xp+33 yp-33 gSendInput Icon135 vCopy w32 h-1, Shell32.dll
    Gui Add, Picture, Border xp+33 yp+33 gSendInput Icon272 vDel w32 h-1, Shell32.dll
    Gui Add, Picture, Border xp-33 yp+33 gSendInput Icon260 vCut w32 h-1, Shell32.dll
    WinSet, TransColor, D3DAED
    CoordMode, Mouse
    MouseGetPos, x, y
    Gui Show, % &quot;NA x&quot; x-49 &quot;y&quot; y-49
    Return
    
WM_MOUSEMOVE() {  
    If A_GuiControl
        GoSub SendInput
    Return
    
    SendInput:
        SendInput % A_GuiControl = &quot;Paste&quot; ? &quot;^{vk56}&quot;  ;  &quot;V&quot;
            : A_GuiControl = &quot;Copy&quot; ? &quot;^{vk43}&quot;  ;  &quot;C&quot;
            : A_GuiControl = &quot;Cut&quot; ? &quot;^{vk58}&quot;  ;  &quot;X&quot;
            : A_GuiControl = &quot;Del&quot; ? &quot;{Del}&quot; : &quot;&quot;
        GuiControl, , %A_GuiControl%, *Icon145 Shell32.dll 
        Sleep 350
        Gui Destroy
        Return
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-06-19T10:33:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73106#p73106</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73078#p73078" />
			<content type="html"><![CDATA[<p>Я бы, что-то типа этого сделал:<br /></p><div class="codebox"><pre><code>
OnMessage(0x200, &quot;WM_MOUSEMOVE&quot;) 
Return

~LButton::
    KeyWait, LButton, T2
    If ErrorLevel
    {    
        SendInput {LButton UP}
        GoSub GuiShow 
    }    
    Return
    
~LButton up::
    If WinExist(&quot;ahk_id&quot; hgui)
        Gui Destroy
    Return 
    
GuiShow:
    Gui Color, D3DAED
    Gui Font, s20
    Gui, Margin, 0, 0
    Gui +Hwndhgui -Caption +E0x08000000 +Lastfound +AlwaysOnTop
    Gui Add, Text, Center Border y50 w200 h50 gSendInput vPaste, Вставить
    Gui Add, Text, Center Border xp+200 yp-50 wp hp gSendInput vCopy, Копировать
    Gui Add, Text, Center Border xp+200 yp+50 wp hp gSendInput vDel, Удалить
    Gui Add, Text, Center Border xp-200 yp+50 wp hp gSendInput vCut, Вырезать
    WinSet, TransColor, D3DAED
    CoordMode, Mouse
    MouseGetPos, x, y
    Gui Show, % &quot;NA x&quot; x-300 &quot;y&quot; y-75
    Return
    
WM_MOUSEMOVE() {  
    If A_GuiControl
        GoSub SendInput
    Return
    
    SendInput:
        SendInput % A_GuiControl = &quot;Paste&quot; ? &quot;^{vk56}&quot;  ;  &quot;V&quot;
            : A_GuiControl = &quot;Copy&quot; ? &quot;^{vk43}&quot;  ;  &quot;C&quot;
            : A_GuiControl = &quot;Cut&quot; ? &quot;^{vk58}&quot;  ;  &quot;X&quot;
            : A_GuiControl = &quot;Del&quot; ? &quot;{Del}&quot; : &quot;&quot;
        GuiControl, +cRed, %A_GuiControl%
        GuiControl, +Redraw, %A_GuiControl%
        Sleep 350
        Gui Destroy
        Return
}
</code></pre></div><p>на скорую руку, и без &quot;украшений&quot;.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;1 редакция</div><div class="fancy_spoiler"><div class="codebox"><pre><code>
OnMessage(0x200, &quot;WM_MOUSEMOVE&quot;) 
Return

~LButton::
    KeyWait, LButton, T2
    If ErrorLevel
    {    
        SendInput {LButton UP}
        GoSub GuiShow 
    }    
    Return
    
~LButton up::
    If WinExist(&quot;ahk_id&quot; hgui)
        Gui Destroy
    Return 
    
GuiShow:
    Gui Color, D3DAED
    Gui Font, s20
    Gui, Margin, 0, 0
    Gui +Hwndhgui -Caption +E0x08000000 +Lastfound +AlwaysOnTop
    Gui Add, Text, Center Border y50 w200 h50 gВставить vВставить, Вставить
    Gui Add, Text, Center Border xp+200 yp-50 wp hp gКопировать vКопировать, Копировать
    Gui Add, Text, Center Border xp+200 yp+50 wp hp gУдалить vУдалить, Удалить
    Gui Add, Text, Center Border xp-200 yp+50 wp hp gВырезать vВырезать, Вырезать
    WinSet, TransColor, D3DAED
    MouseGetPos, x, y
    Gui Show, % &quot;NA x&quot; x-300 &quot;y&quot; y-75
    Return
    
WM_MOUSEMOVE() { 
    If IsLabel(A_GuiControl)
        GoSub % A_GuiControl
    Return
    
    Вставить:
        SendInput ^{vk56}  ;  &quot;V&quot;
        GoTo Destroy
    Копировать:
        SendInput ^{vk43}  ;  &quot;C&quot;
        GoTo Destroy
    Удалить:
        SendInput {Del}
        GoTo Destroy
    Вырезать:
        SendInput ^{vk58}  ;  &quot;X&quot;

    Destroy: 
        GuiControl, +cRed, %A_GuiControl%
        GuiControl, +Redraw, %A_GuiControl% 
        Sleep 350
        Gui Destroy
        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-06-19T06:38:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73078#p73078</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73068#p73068" />
			<content type="html"><![CDATA[<p>Вот такой скрипт сделал себе, вроде не плохо:)<br /></p><div class="codebox"><pre><code>

~LButton::
 
 KeyWait, LButton, U, T2
    if (ErrorLevel) {
        Send, ^{vk43} 
     ToolTip, Copy
     SetTimer, RemoveToolTip, 500
        KeyWait LButton
     
    }


 If (A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey &lt; 500)

{

  Sleep 300 ; wait for right-click menu, fine tune for your PC

  Send {Esc} ; close it

  Send, ^{vk56}  ; or your double-right-click action here
  ToolTip, Paste
  SetTimer, RemoveToolTip, 500

}
 Return

    

RemoveToolTip:
SetTimer, RemoveToolTip, Off
ToolTip
Return

</code></pre></div>]]></content>
			<author>
				<name><![CDATA[brwinded]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30304</uri>
			</author>
			<updated>2013-06-18T21:39:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73068#p73068</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73067#p73067" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>  KeyWait, LButton, U, T1

  if errorlevel = 1
{
    Send ^c

}
 else
Return</code></pre></div><p>Может так ожидание сделать ?</p><p>Хочу чтоб выделил мышкой, подержал 5 секунд - скопировал, если меньше - не скопировал.</p>]]></content>
			<author>
				<name><![CDATA[brwinded]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30304</uri>
			</author>
			<updated>2013-06-18T21:13:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73067#p73067</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73064#p73064" />
			<content type="html"><![CDATA[<p>Так я ведь хотел чтоб это меню было возможно - после отпускания мышки.</p><p>Т.е. выделил, отпустил, повел вверх - скопировал, вниз - вставил</p><br /><p>Еще вопросик, маленький:)</p><p>Пилю вот такой скрипт: </p><div class="codebox"><pre><code>~LButton::

If (A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey &lt; 500)

{

  Sleep 300 ; wait for right-click menu, fine tune for your PC

  Send {Esc} ; close it

  Send ^v ; or your double-right-click action here

}
 Return

  If ( НЕ Понятно тут, Нужно условие ЕСЛИ Задержка мышки больше &gt; 100)

    Send ^{vk43}

Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[brwinded]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30304</uri>
			</author>
			<updated>2013-06-18T20:18:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73064#p73064</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73063#p73063" />
			<content type="html"><![CDATA[<p>Работает, как записано в первом посте.<br />Задержка зажатой ЛКМ 1 секунду на месте (+/- 15 пикселей) для включения скрипта. Если для старта привязка к месту не нужна, строки 8-9 нужно убрать.</p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2013-06-18T20:14:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73063#p73063</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73061#p73061" />
			<content type="html"><![CDATA[<p>Оу:) Спасибо что откликнулся:)</p><p>Чтот не совсем понял как работает:) Там погрешность может добавить?</p><p>И добавить ожидание выделения ?:)</p>]]></content>
			<author>
				<name><![CDATA[brwinded]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30304</uri>
			</author>
			<updated>2013-06-18T20:02:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73061#p73061</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73060#p73060" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Вот чтот такое собрал, подскажите что не так тут?!</p></blockquote></div><p>Ну это примерно как коленвал к выхлопной трубе машины пристроить&nbsp; -&nbsp; &quot;чтот такое собрал&quot;,&nbsp; но почему-то не едет <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><div class="codebox"><pre><code>Delay := 1000 ; 1 секунда
~LButton::
   Pressed := 1, Start := 0
   MouseGetPos, X0, Y0
   Sleep % Delay
   If !Pressed
      Exit
   MouseGetPos, X1, Y1
   if (Abs(X1-X0) &lt; 15) &amp;&amp; (Abs(Y1-Y0) &lt; 15)
   Start := 1
Return

~LButton up::
   Pressed := 0
   if !Start
   Exit
   MouseGetPos, X0, Y0
   while Start &amp;&amp; !Pressed {
      MouseGetPos, X1, Y1
      dx := X1-X0
      dy := Y1-Y0
      if ( Abs(dx) &gt; 30) || (Abs(dy) &gt; 30) {
         if Abs(dx) &gt; Abs(dy)
            SendInput % dx &gt; 0 ? &quot;{vk2E}&quot; : &quot;^{vk56}&quot;
         else
            SendInput % dy &gt; 0 ? &quot;^{vk58}&quot; : &quot;^{vk43}&quot;
         Break
      }
      Sleep 50
   }
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2013-06-18T19:35:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73060#p73060</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73056#p73056" />
			<content type="html"><![CDATA[<p>Вот чтот такое собрал, подскажите что не так тут?!</p><div class="codebox"><pre><code>
LButton::
  Quit=0                 ; Добавлена для взаимодействия.
  Click down             ; Имитация нажатия левой кнопки.
  MouseGetPos, x1, y1    ; Взять начальные координаты мыши.
  KeyWait, MButton       ; Ждать отпускания средней кнопки.
  if Quit
    Exit
  Click up               ; Имитация отпускания левой кнопки.
  if (MouseMove, 0, 10, 50, R)
      Send, ^{vk43}        ; Ctrl-C, копирование.
  if else (MouseMove, 0, -10, 50, R)
      Send, ^{vk56}        ; Ctrl-V, вставка.
  if else (MouseMove, -10, 0, 50, R)
      Send, ^{vk58}        ; Ctrl-X, вырезать.
 Exit
</code></pre></div><p>Он не выделяет вообще:)</p>]]></content>
			<author>
				<name><![CDATA[brwinded]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30304</uri>
			</author>
			<updated>2013-06-18T18:15:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73056#p73056</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Буфер обмена - движением мыши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73055#p73055" />
			<content type="html"><![CDATA[<p>Нужна помощь, по созданию скрипта для Буфера Обмена.</p><p>Суть скрипта:<br />Нажатие левой кнопки мыши, если задержка более N_секунд - включение скрипта:</p><p>Выделяя текст - отпуская левую кнопку мыши - ожидание дальнейших координат мыши </p><p>Если вверх двинул мышью - копирование<br />Вниз - вырезание<br />Влево - вставка<br />Вправо - удаление</p><p>Вот нашел пару скриптов из тем<br /></p><div class="codebox"><pre><code>
MButton::
  Quit=0                 ; Добавлена для взаимодействия.
  Click down             ; Имитация нажатия левой кнопки.
  MouseGetPos, x1, y1    ; Взять начальные координаты мыши.
  KeyWait, MButton       ; Ждать отпускания средней кнопки.
  if Quit
    Exit
  Click up               ; Имитация отпускания левой кнопки.
  MouseGetPos, x2, y2    ; Конечные координаты мыши.
  dx:=Abs(x1-x2)         ; Смещения по осям X и Y.
  dy:=Abs(y1-y2)
  if (dx&gt;1.5 || dy&gt;10)   ; Чтобы отличить щелчок от выделения.
    Send, ^{vk43}        ; Ctrl-C, копирование.
  else
    Send, ^{vk56}        ; Ctrl-V, вставка.
Exit

WheelUp::
  if GetKeyState(&quot;MButton&quot;, &quot;P&quot;)  ; Нажата ли средняя кнопка.
  {
    Click up             ; Имитация отпускания левой кнопки в конце выделения.
    Send, ^{vk56}        ; Ctrl-V, вставить.
    Quit=1               ; Сигнал завершения работы.
  }
  else Send, {WheelUp}   ; Если кнопка не нажата, колесо работает как обычно.
Exit

WheelDown::
  if GetKeyState(&quot;MButton&quot;, &quot;P&quot;)
  {
    Click up
    Send, ^{vk58}        ; Ctrl-X, вырезать.
    Quit=1
  }
  else Send, {WheelDown}
Exit
</code></pre></div><p>А вот похожий скрипт, но он выводит после копирование - сообщение Copy:</p><div class="codebox"><pre><code>
~LButton::

x1 =
y1 =

loop
    {
    MouseGetPos, x2, y2
    Sleep, 200
    if (x1 = %x2% and y1 = %y2%)
        Break
    x1 = %x2%
    y1 = %y2%
    }

KeyWait, Lbutton, U T.5
if errorlevel = 1
    {
    Label1:
    ControlGetFocus, control, A
    SendMessage, 0x301, , , %control%, A
    ToolTip, Copy
    KeyWait, Lbutton, U T.5
    if errorlevel = 1
        {
        x3 =
        y3 =

        loop
            {
            MouseGetPos, x4, y4
            Sleep, 200
            if (y3 = %y4% and x3 = %x4%)
                Break
            x3 = %x4%
            y3 = %y4%
            }
        Goto, Label1
        }
    Else
        {
        ToolTip
        Exit
        }
    }
Exit

Return
</code></pre></div><p>Очень буду благодарен за помощь в создании скрипта! Думаю он будет очень удобен для многих!</p>]]></content>
			<author>
				<name><![CDATA[brwinded]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30304</uri>
			</author>
			<updated>2013-06-18T17:40:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73055#p73055</id>
		</entry>
</feed>
