<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=14316</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14316&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов».]]></description>
		<lastBuildDate>Tue, 13 Nov 2018 18:07:05 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129762#p129762</link>
			<description><![CDATA[<p><strong>teadrinker</strong> а вот сейчас - все нормально вроде работает.<br />Спасибо вам большое.</p>]]></description>
			<author><![CDATA[null@example.com (OlegSmirnov)]]></author>
			<pubDate>Tue, 13 Nov 2018 18:07:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129762#p129762</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129761#p129761</link>
			<description><![CDATA[<p>Тогда так попробуйте:<br /></p><div class="codebox"><pre><code>#Persistent
prID := -1 
DllCall(&quot;LoadLibrary&quot;,&quot;Str&quot;,&quot;oleacc&quot;,&quot;Ptr&quot;) 

MouseGet:
   MouseGetPos,,, hWnd, classNN
   WinGetClass, winClass, ahk_id %hWnd%
   Loop 1  {
      _prID := prID, prID := -1
      if winClass not in Shell_TrayWnd,UltraMonDeskTaskBar
         break
      if (winClass = &quot;Shell_TrayWnd&quot; &amp;&amp; classNN != &quot;MSTaskListWClass1&quot;) || (winClass = &quot;UltraMonDeskTaskBar&quot; &amp;&amp; classNN != &quot;ToolbarWindow321&quot;)
         break
      
      prID := _prID
      if ((ID := AccIDUnderMouse()) &amp;&amp; ID != prID &amp;&amp; (prID := ID))
         Send {LButton}
   }  
   SetTimer, MouseGet, -100
   Return

AccIDUnderMouse()   { 
   If DllCall(&quot;oleacc\AccessibleObjectFromPoint&quot;
      , &quot;Int64&quot;, 0*DllCall(&quot;GetCursorPos&quot;,&quot;Int64*&quot;,pt)+pt, &quot;Ptr*&quot;, pacc
      , &quot;Ptr&quot;, VarSetCapacity(varChild,8+2*A_PtrSize,0)*0+&amp;varChild) = 0 
   Return NumGet(varChild,8,&quot;UInt&quot;) 
}</code></pre></div><p>Я не совсем понял, зачем в изначальном скрипте для активации стоит<br /></p><div class="codebox"><pre><code>        WinActivate % &quot;ahk_id&quot; hShellTray
        SendInput ^{LButton}{LControl Up}</code></pre></div><p>Вроде, простого клика достаточно. Но если что-то будет не так, попробуйте заменить <em>Send {LButton}</em> на <em>Send ^{LButton}</em>.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 13 Nov 2018 17:53:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129761#p129761</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129760#p129760</link>
			<description><![CDATA[<p><strong>teadrinker</strong> да действительно - с двумя l - Shell_TrayWnd <br />Остальные названия - без ошибок.<br />Только что перепроверил.</p>]]></description>
			<author><![CDATA[null@example.com (OlegSmirnov)]]></author>
			<pubDate>Tue, 13 Nov 2018 17:49:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129760#p129760</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129758#p129758</link>
			<description><![CDATA[<div class="quotebox"><cite>OlegSmirnov пишет:</cite><blockquote><p>На главной панели задач - название ahk_class Shel_TrayWnd</p></blockquote></div><p>Уверены, что именно так, не Shel<strong>l</strong>_TrayWnd (с двойной l)?<br />Остальные названия точно без ошибок написаны?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 13 Nov 2018 17:18:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129758#p129758</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129751#p129751</link>
			<description><![CDATA[<p><strong>teadrinker</strong> на второстепенных мониторах - везде &quot;ClassNN:ToolbarWindow321&quot;<br />На основном мониторе - везде &quot;ClassNN:MSTaskListWClass1&quot;<br />(На панели задач второстепенных мониторов - трей отсутствует)</p>]]></description>
			<author><![CDATA[null@example.com (OlegSmirnov)]]></author>
			<pubDate>Tue, 13 Nov 2018 15:52:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129751#p129751</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129745#p129745</link>
			<description><![CDATA[<p>Попробуйте на второстепенных мониторах навести курсор на панель задач, сначала на середину, потом на область иконок (трей).<br />Какой ClassNN выдаёт ActiveWindow Info в этих двух случаях?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 13 Nov 2018 14:52:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129745#p129745</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129741#p129741</link>
			<description><![CDATA[<p><strong>teadrinker</strong>, не срабатывает скрипт.<br />На панели задач главного монитора - работает нормально. <br />Но если наводить курсор на ярлыки - на других панелей задач - то скрипт не щелкает по ним.</p><p>Насчет ahk панелей задач:<br />На главной панели задач - название ahk_class Shel_TrayWnd<br />На второстепенных панелях задач - название ahk_class UltraMonDeskTaskBar</p>]]></description>
			<author><![CDATA[null@example.com (OlegSmirnov)]]></author>
			<pubDate>Tue, 13 Nov 2018 14:48:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129741#p129741</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129738#p129738</link>
			<description><![CDATA[<div class="quotebox"><cite>OlegSmirnov пишет:</cite><blockquote><p>А щелчок на панели задач второстепенного монитора - выдает название: &quot;ClassNN:ToolbarWindow321&quot;</p></blockquote></div><p>Если наведёте курсор на область трея в панели задач главного монитора — думаю, выдаст то же самое. Здесь нас интересует не ClassNN, а класс окна (ahk_class).<br />Попробуйте так:<br /></p><div class="codebox"><pre><code>#Persistent
prID := -1 
DllCall(&quot;LoadLibrary&quot;,&quot;Str&quot;,&quot;oleacc&quot;,&quot;Ptr&quot;) 

MouseGet:
    MouseGetPos,,, hWnd
    WinGetClass, winClass, ahk_id %hWnd%
    If (winClass != &quot;Shell_TrayWnd&quot;)
        prID := -1
    Else If ((ID := AccIDUnderMouse()) &amp;&amp; ID != prID &amp;&amp; (prID := ID))
    { 
        WinActivate % &quot;ahk_id&quot; hShellTray
        SendInput ^{LButton}{LControl Up}
    }  
    SetTimer, MouseGet, -10
    Return
    
AccIDUnderMouse()   { 
    If DllCall(&quot;oleacc\AccessibleObjectFromPoint&quot;
        , &quot;Int64&quot;, 0*DllCall(&quot;GetCursorPos&quot;,&quot;Int64*&quot;,pt)+pt, &quot;Ptr*&quot;, pacc
        , &quot;Ptr&quot;, VarSetCapacity(varChild,8+2*A_PtrSize,0)*0+&amp;varChild) = 0 
    Return NumGet(varChild,8,&quot;UInt&quot;) 
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 13 Nov 2018 14:04:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129738#p129738</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129736#p129736</link>
			<description><![CDATA[<p><strong>teadrinker</strong>, нет - это несколько рабочих столов.<br />На каждом есть своя панель задач.<br />ПринтСкрин выдает фот такое изображение:</p><p><a href="https://radikal.ru"><span class="postimg"><img src="https://a.radikal.ru/a41/1811/28/81996a0bc43f.jpg" alt="https://a.radikal.ru/a41/1811/28/81996a0bc43f.jpg" /></span></a></p><p>Щелчок ActiveWindow Info - на панели задач главного монитора - выдает название элемента: &quot;ClassNN:MSTaskListWClass1&quot;<br />А щелчок на панели задач второстепенного монитора - выдает название: &quot;ClassNN:ToolbarWindow321&quot;</p>]]></description>
			<author><![CDATA[null@example.com (OlegSmirnov)]]></author>
			<pubDate>Tue, 13 Nov 2018 13:53:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129736#p129736</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129734#p129734</link>
			<description><![CDATA[<p>А мониторы настроены, как один виртуальный рабочий стол, или это независимые рабочие столы?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 13 Nov 2018 13:39:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129734#p129734</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129733#p129733</link>
			<description><![CDATA[<p><strong>teadrinker</strong> показывает цифру &quot;1&quot;</p>]]></description>
			<author><![CDATA[null@example.com (OlegSmirnov)]]></author>
			<pubDate>Tue, 13 Nov 2018 13:36:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129733#p129733</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129729#p129729</link>
			<description><![CDATA[<p>Что у вас такой код показывает, когда включено больше одного монитора?<br /></p><div class="codebox"><pre><code>WinGet, List, List, ahk_class Shell_TrayWnd
MsgBox, % List</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 13 Nov 2018 13:11:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129729#p129729</guid>
		</item>
		<item>
			<title><![CDATA[AHK:Активация окна при наведении курсора на ярлык. Несколько мониторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129726#p129726</link>
			<description><![CDATA[<p>Приветствую всех.<br />Вот у меня есть скрипт - активации окон - по наведению курсора на их ярлыки в панели задач.<br />Все работает хорошо.</p><p>Но это касается только главного монитора.<br />На остальных мониторах - не действует подобное наведение курсора на ярлыки на панели задач.<br />Как изменить макрос, чтобы и на других мониторах - курсор так же воздействовал бы - на ярлыки панели задач.<br /></p><div class="codebox"><pre><code>

#Persistent
prID := -1
hShellTray := WinExist(&quot;ahk_class Shell_TrayWnd ahk_exe explorer.exe&quot;) 
ControlGet, hTaskbar, HWND,, MSTaskListWClass1, % &quot;ahk_id&quot; hShellTray
DllCall(&quot;LoadLibrary&quot;,&quot;Str&quot;,&quot;oleacc&quot;,&quot;Ptr&quot;) 

MouseGet:
    MouseGetPos, , , , hCtrl, 2 
    If (hCtrl != hTaskbar)
        prID := -1
    Else If ((ID := AccIDUnderMouse()) &amp;&amp; ID != prID &amp;&amp; (prID := ID))
    { 
        WinActivate % &quot;ahk_id&quot; hShellTray
        SendInput ^{LButton}{LControl Up}
    }  
    SetTimer, MouseGet, -10
    Return
    
AccIDUnderMouse()   { 
    If DllCall(&quot;oleacc\AccessibleObjectFromPoint&quot;
        , &quot;Int64&quot;, 0*DllCall(&quot;GetCursorPos&quot;,&quot;Int64*&quot;,pt)+pt, &quot;Ptr*&quot;, pacc
        , &quot;Ptr&quot;, VarSetCapacity(varChild,8+2*A_PtrSize,0)*0+&amp;varChild) = 0 
    Return NumGet(varChild,8,&quot;UInt&quot;) 
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (OlegSmirnov)]]></author>
			<pubDate>Tue, 13 Nov 2018 12:02:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129726#p129726</guid>
		</item>
	</channel>
</rss>
