<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: "Назад" в Chrome]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=12793</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12793&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: "Назад" в Chrome».]]></description>
		<lastBuildDate>Mon, 10 Jul 2017 20:12:06 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117216#p117216</link>
			<description><![CDATA[<p>Кстати, <a href="http://forum.script-coding.com/viewtopic.php?id=11769/">была</a> уже похожая тема.</p>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Mon, 10 Jul 2017 20:12:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117216#p117216</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117214#p117214</link>
			<description><![CDATA[<p><strong>svoboden</strong>, слишком усложняете:<br /></p><div class="codebox"><pre><code>#If WinActive(&quot;ahk_class Chrome_WidgetWin_1&quot;) and (A_Cursor != &quot;IBeam&quot;)
BackSpace::Send !{Left}
#If</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Mon, 10 Jul 2017 20:02:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117214#p117214</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117213#p117213</link>
			<description><![CDATA[<p>Да, можно без loop:<br /></p><div class="codebox"><pre><code>#IfWinActive ahk_class Chrome_WidgetWin_1

Hotkey, BackSpace, Label1
return

Label1:
 If A_Cursor = IBeam
SendInput {BackSpace}
 else If A_Cursor != IBeam
SendInput !{Left}
return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Mon, 10 Jul 2017 19:47:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117213#p117213</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117203#p117203</link>
			<description><![CDATA[<p>Так он не &quot;простой&quot;, а &quot;срабатывающий не во всех случаях&quot;.<br />И для того чтобы проверить перед отправкой backspace тип курсора цикл не нужен.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Mon, 10 Jul 2017 02:31:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117203#p117203</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117202#p117202</link>
			<description><![CDATA[<p>Так я и говорю, что вариант простой.</p>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Mon, 10 Jul 2017 02:16:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117202#p117202</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117201#p117201</link>
			<description><![CDATA[<p><strong>svoboden</strong>, курсор типа IBeam может быть необязательно только в поле ввода.<br />Он таким становится при наведении на практически любой текст.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Mon, 10 Jul 2017 01:42:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117201#p117201</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117200#p117200</link>
			<description><![CDATA[<p>Есть простой вариант - нажимает &quot;BackSpace&quot;, исходя от вида курсора.<br /></p><div class="codebox"><pre><code>#IfWinActive ahk_class Chrome_WidgetWin_1

loop {
if A_Cursor = IBeam
Hotkey, $BackSpace, Label1
else if Cursor != IBeam
Hotkey, $BackSpace, Label2
Sleep 20
}

Label1:
SendInput {BackSpace}
return

Label2:
SendInput !{Left}
return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sun, 09 Jul 2017 23:55:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117200#p117200</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117193#p117193</link>
			<description><![CDATA[<p><strong>stealzy</strong>, установил оперу 43.<br />У меня работают оба варианта.<br />Единственное, из-за глюков на первой странице нужно заменить:<br /></p><div class="codebox"><pre><code>if (Role != 42) and (Role != 46) and !InStr(Value, &quot;/chrome/newtab&quot;)</code></pre></div><p>на:<br /></p><div class="codebox"><pre><code>if (Role != 42) and (Role != 46) and !InStr(Value, &quot;chrome://startpage/&quot;)</code></pre></div><p><strong>Kurskador</strong>, ничего там страшного нету.<br />Я бы использовал вариант с ACC, так как в UIA я вообще ничего не знаю (писал от балды <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />), примеров на автохотки практически нету, а в документации мне копаться лень (там ее очень много).</p><p>Поправил в примере с acc начальную страницу.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 09 Jul 2017 12:47:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117193#p117193</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117190#p117190</link>
			<description><![CDATA[<p>Страшноватые штуки, но попробую.</p>]]></description>
			<author><![CDATA[null@example.com (Kurskador)]]></author>
			<pubDate>Sun, 09 Jul 2017 12:23:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117190#p117190</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117187#p117187</link>
			<description><![CDATA[<p>С acc вроде не сжирает память:<br /></p><div class="codebox"><pre><code>#Persistent
ComObjError(false)
OnExit, UnHook

pCallback := RegisterCallback(&quot;WinEventProc&quot;)
Acc_SetWinEventHook(EVENT_OBJECT_FOCUS := 0x8005, EVENT_OBJECT_FOCUS := 0x8005, pCallBack)
return

#If backspace
BackSpace::Send !{Left}
#If

UnHook:
Acc_UnhookWinEvent(pCallback)
ExitApp

WinEventProc(hHook, event, hWnd, idObject, idChild, eventThread, eventTime)
{
   Critical
   Global backspace := &quot;&quot;
   If WinActive(&quot;ahk_class Chrome_WidgetWin_1&quot;)
   {
      Acc := Acc_ObjectFromEvent(ByRef _idChild_, hWnd, idObject, idChild)
      Role := Acc.accRole(0)
      Value := Acc.accValue(0)
      if (Role != 42) and (Role != 46) and !InStr(Value, &quot;/chrome/newtab&quot;)
         backspace := 1
   }
}



;------------------------------------------------------------------------------
; Acc.ahk Standard Library
; by Sean
; Updated by jethrow:
; 	Modified ComObjEnwrap params from (9,pacc) --&gt; (9,pacc,1)
; 	Changed ComObjUnwrap to ComObjValue in order to avoid AddRef (thanks fincs)
; 	Added Acc_GetRoleText &amp; Acc_GetStateText
; 	Added additional functions - commented below
; 	Removed original Acc_Children function
;	Added Acc_Error, Acc_ChildrenByRole, &amp; Acc_Get functions
; last updated 10/25/2012
;------------------------------------------------------------------------------

Acc_Init()
{
   Static	h
   If Not	h
      h:=DllCall(&quot;LoadLibrary&quot;,&quot;Str&quot;,&quot;oleacc&quot;,&quot;Ptr&quot;)
}
Acc_ObjectFromEvent(ByRef _idChild_, hWnd, idObject, idChild)
{
   Acc_Init()
   If	DllCall(&quot;oleacc\AccessibleObjectFromEvent&quot;, &quot;Ptr&quot;, hWnd, &quot;UInt&quot;, idObject, &quot;UInt&quot;, idChild, &quot;Ptr*&quot;, pacc, &quot;Ptr&quot;, VarSetCapacity(varChild,8+2*A_PtrSize,0)*0+&amp;varChild)=0
   Return	ComObjEnwrap(9,pacc,1), _idChild_:=NumGet(varChild,8,&quot;UInt&quot;)
}

Acc_ObjectFromPoint(ByRef _idChild_ = &quot;&quot;, x = &quot;&quot;, y = &quot;&quot;)
{
   Acc_Init()
   If	DllCall(&quot;oleacc\AccessibleObjectFromPoint&quot;, &quot;Int64&quot;, x==&quot;&quot;||y==&quot;&quot;?0*DllCall(&quot;GetCursorPos&quot;,&quot;Int64*&quot;,pt)+pt:x&amp;0xFFFFFFFF|y&lt;&lt;32, &quot;Ptr*&quot;, pacc, &quot;Ptr&quot;, VarSetCapacity(varChild,8+2*A_PtrSize,0)*0+&amp;varChild)=0
   Return	ComObjEnwrap(9,pacc,1), _idChild_:=NumGet(varChild,8,&quot;UInt&quot;)
}

Acc_ObjectFromWindow(hWnd, idObject = 0)
{
   Acc_Init()
   If	DllCall(&quot;oleacc\AccessibleObjectFromWindow&quot;, &quot;Ptr&quot;, hWnd, &quot;UInt&quot;, idObject&amp;=0xFFFFFFFF, &quot;Ptr&quot;, -VarSetCapacity(IID,16)+NumPut(idObject==0xFFFFFFF0?0x46000000000000C0:0x719B3800AA000C81,NumPut(idObject==0xFFFFFFF0?0x0000000000020400:0x11CF3C3D618736E0,IID,&quot;Int64&quot;),&quot;Int64&quot;), &quot;Ptr*&quot;, pacc)=0
   Return	ComObjEnwrap(9,pacc,1)
}

Acc_WindowFromObject(pacc)
{
   If	DllCall(&quot;oleacc\WindowFromAccessibleObject&quot;, &quot;Ptr&quot;, IsObject(pacc)?ComObjValue(pacc):pacc, &quot;Ptr*&quot;, hWnd)=0
   Return	hWnd
}

Acc_GetRoleText(nRole)
{
   nSize := DllCall(&quot;oleacc\GetRoleText&quot;, &quot;Uint&quot;, nRole, &quot;Ptr&quot;, 0, &quot;Uint&quot;, 0)
   VarSetCapacity(sRole, (A_IsUnicode?2:1)*nSize)
   DllCall(&quot;oleacc\GetRoleText&quot;, &quot;Uint&quot;, nRole, &quot;str&quot;, sRole, &quot;Uint&quot;, nSize+1)
   Return	sRole
}

Acc_GetStateText(nState)
{
   nSize := DllCall(&quot;oleacc\GetStateText&quot;, &quot;Uint&quot;, nState, &quot;Ptr&quot;, 0, &quot;Uint&quot;, 0)
   VarSetCapacity(sState, (A_IsUnicode?2:1)*nSize)
   DllCall(&quot;oleacc\GetStateText&quot;, &quot;Uint&quot;, nState, &quot;str&quot;, sState, &quot;Uint&quot;, nSize+1)
   Return	sState
}

Acc_SetWinEventHook(eventMin, eventMax, pCallback)
{
   Return	DllCall(&quot;SetWinEventHook&quot;, &quot;Uint&quot;, eventMin, &quot;Uint&quot;, eventMax, &quot;Uint&quot;, 0, &quot;Ptr&quot;, pCallback, &quot;Uint&quot;, 0, &quot;Uint&quot;, 0, &quot;Uint&quot;, 0)
}

Acc_UnhookWinEvent(hHook)
{
   Return	DllCall(&quot;UnhookWinEvent&quot;, &quot;Ptr&quot;, hHook)
}
/*	Win Events:

   pCallback := RegisterCallback(&quot;WinEventProc&quot;)
   WinEventProc(hHook, event, hWnd, idObject, idChild, eventThread, eventTime)
   {
      Critical
      Acc := Acc_ObjectFromEvent(_idChild_, hWnd, idObject, idChild)
      ; Code Here:

   }
*/

; Written by jethrow
Acc_Role(Acc, ChildId=0) {
   try return ComObjType(Acc,&quot;Name&quot;)=&quot;IAccessible&quot;?Acc_GetRoleText(Acc.accRole(ChildId)):&quot;invalid object&quot;
}
Acc_State(Acc, ChildId=0) {
   try return ComObjType(Acc,&quot;Name&quot;)=&quot;IAccessible&quot;?Acc_GetStateText(Acc.accState(ChildId)):&quot;invalid object&quot;
}
Acc_Location(Acc, ChildId=0, byref Position=&quot;&quot;) { ; adapted from Sean&#039;s code
   try Acc.accLocation(ComObj(0x4003,&amp;x:=0), ComObj(0x4003,&amp;y:=0), ComObj(0x4003,&amp;w:=0), ComObj(0x4003,&amp;h:=0), ChildId)
   catch
      return
   Position := &quot;x&quot; NumGet(x,0,&quot;int&quot;) &quot; y&quot; NumGet(y,0,&quot;int&quot;) &quot; w&quot; NumGet(w,0,&quot;int&quot;) &quot; h&quot; NumGet(h,0,&quot;int&quot;)
   return	{x:NumGet(x,0,&quot;int&quot;), y:NumGet(y,0,&quot;int&quot;), w:NumGet(w,0,&quot;int&quot;), h:NumGet(h,0,&quot;int&quot;)}
}
Acc_Parent(Acc) { 
   try parent:=Acc.accParent
   return parent?Acc_Query(parent):
}
Acc_Child(Acc, ChildId=0) {
   try child:=Acc.accChild(ChildId)
   return child?Acc_Query(child):
}
Acc_Query(Acc) { ; thanks Lexikos - www.autohotkey.com/forum/viewtopic.php?t=81731&amp;p=509530#509530
   try return ComObj(9, ComObjQuery(Acc,&quot;{618736e0-3c3d-11cf-810c-00aa00389b71}&quot;), 1)
}
Acc_Error(p=&quot;&quot;) {
   static setting:=0
   return p=&quot;&quot;?setting:setting:=p
}
Acc_Children(Acc) {
   if ComObjType(Acc,&quot;Name&quot;) != &quot;IAccessible&quot;
      ErrorLevel := &quot;Invalid IAccessible Object&quot;
   else {
      Acc_Init(), cChildren:=Acc.accChildCount, Children:=[]
      if DllCall(&quot;oleacc\AccessibleChildren&quot;, &quot;Ptr&quot;,ComObjValue(Acc), &quot;Int&quot;,0, &quot;Int&quot;,cChildren, &quot;Ptr&quot;,VarSetCapacity(varChildren,cChildren*(8+2*A_PtrSize),0)*0+&amp;varChildren, &quot;Int*&quot;,cChildren)=0 {
         Loop %cChildren%
            i:=(A_Index-1)*(A_PtrSize*2+8)+8, child:=NumGet(varChildren,i), Children.Insert(NumGet(varChildren,i-8)=9?Acc_Query(child):child), NumGet(varChildren,i-8)=9?ObjRelease(child):
         return Children.MaxIndex()?Children:
      } else
         ErrorLevel := &quot;AccessibleChildren DllCall Failed&quot;
   }
   if Acc_Error()
      throw Exception(ErrorLevel,-1)
}
Acc_ChildrenByRole(Acc, Role) {
   if ComObjType(Acc,&quot;Name&quot;)!=&quot;IAccessible&quot;
      ErrorLevel := &quot;Invalid IAccessible Object&quot;
   else {
      Acc_Init(), cChildren:=Acc.accChildCount, Children:=[]
      if DllCall(&quot;oleacc\AccessibleChildren&quot;, &quot;Ptr&quot;,ComObjValue(Acc), &quot;Int&quot;,0, &quot;Int&quot;,cChildren, &quot;Ptr&quot;,VarSetCapacity(varChildren,cChildren*(8+2*A_PtrSize),0)*0+&amp;varChildren, &quot;Int*&quot;,cChildren)=0 {
         Loop %cChildren% {
            i:=(A_Index-1)*(A_PtrSize*2+8)+8, child:=NumGet(varChildren,i)
            if NumGet(varChildren,i-8)=9
               AccChild:=Acc_Query(child), ObjRelease(child), Acc_Role(AccChild)=Role?Children.Insert(AccChild):
            else
               Acc_Role(Acc, child)=Role?Children.Insert(child):
         }
         return Children.MaxIndex()?Children:, ErrorLevel:=0
      } else
         ErrorLevel := &quot;AccessibleChildren DllCall Failed&quot;
   }
   if Acc_Error()
      throw Exception(ErrorLevel,-1)
}
Acc_Get(Cmd, ChildPath=&quot;&quot;, ChildID=0, WinTitle=&quot;&quot;, WinText=&quot;&quot;, ExcludeTitle=&quot;&quot;, ExcludeText=&quot;&quot;) {
   static properties := {Action:&quot;DefaultAction&quot;, DoAction:&quot;DoDefaultAction&quot;, Keyboard:&quot;KeyboardShortcut&quot;}
   AccObj :=   IsObject(WinTitle)? WinTitle
         :   Acc_ObjectFromWindow( WinExist(WinTitle, WinText, ExcludeTitle, ExcludeText), 0 )
   if ComObjType(AccObj, &quot;Name&quot;) != &quot;IAccessible&quot;
      ErrorLevel := &quot;Could not access an IAccessible Object&quot;
   else {
      StringReplace, ChildPath, ChildPath, _, %A_Space%, All
      AccError:=Acc_Error(), Acc_Error(true)
      Loop Parse, ChildPath, ., %A_Space%
         try {
            if A_LoopField is digit
               Children:=Acc_Children(AccObj), m2:=A_LoopField ; mimic &quot;m2&quot; output in else-statement
            else
               RegExMatch(A_LoopField, &quot;(\D*)(\d*)&quot;, m), Children:=Acc_ChildrenByRole(AccObj, m1), m2:=(m2?m2:1)
            if Not Children.HasKey(m2)
               throw
            AccObj := Children[m2]
         } catch {
            ErrorLevel:=&quot;Cannot access ChildPath Item #&quot; A_Index &quot; -&gt; &quot; A_LoopField, Acc_Error(AccError)
            if Acc_Error()
               throw Exception(&quot;Cannot access ChildPath Item&quot;, -1, &quot;Item #&quot; A_Index &quot; -&gt; &quot; A_LoopField)
            return
         }
      Acc_Error(AccError)
      StringReplace, Cmd, Cmd, %A_Space%, , All
      properties.HasKey(Cmd)? Cmd:=properties[Cmd]:
      try {
         if (Cmd = &quot;Location&quot;)
            AccObj.accLocation(ComObj(0x4003,&amp;x:=0), ComObj(0x4003,&amp;y:=0), ComObj(0x4003,&amp;w:=0), ComObj(0x4003,&amp;h:=0), ChildId)
           , ret_val := &quot;x&quot; NumGet(x,0,&quot;int&quot;) &quot; y&quot; NumGet(y,0,&quot;int&quot;) &quot; w&quot; NumGet(w,0,&quot;int&quot;) &quot; h&quot; NumGet(h,0,&quot;int&quot;)
         else if (Cmd = &quot;Object&quot;)
            ret_val := AccObj
         else if Cmd in Role,State
            ret_val := Acc_%Cmd%(AccObj, ChildID+0)
         else if Cmd in ChildCount,Selection,Focus
            ret_val := AccObj[&quot;acc&quot; Cmd]
         else
            ret_val := AccObj[&quot;acc&quot; Cmd](ChildID+0)
      } catch {
         ErrorLevel := &quot;&quot;&quot;&quot; Cmd &quot;&quot;&quot; Cmd Not Implemented&quot;
         if Acc_Error()
            throw Exception(&quot;Cmd Not Implemented&quot;, -1, Cmd)
         return
      }
      return ret_val, ErrorLevel:=0
   }
   if Acc_Error()
      throw Exception(ErrorLevel,-1)
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 09 Jul 2017 11:55:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117187#p117187</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117170#p117170</link>
			<description><![CDATA[<p>Наверняка можно сделать правильней, тут по чуть-чуть память сжирает.<br />В хроме нужно поставить везде галки на chrome://accessibility/<br />И в запуске прописать --force-renderer-accessibility<br />Для работы нужен:<br /><a href="https://github.com/neptercn/UIAutomation/blob/master/UIA.ahk">https://github.com/neptercn/UIAutomatio … er/UIA.ahk</a><br /></p><div class="codebox"><pre><code>global $u:=new IUIAutomation,$e:=new IUIAutomationElement
$u.39(0,uia_OnEvent(pEvent,&quot;OnFocus&quot;))
return
OnFocus(self,sender){
   Critical
   Global control := $e.(sender).21
   return
}

#If WinActive(&quot;ahk_class Chrome_WidgetWin_1&quot;) and (control != 50003) and (control != 50004)
BackSpace::Send !{Left}
#If</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sat, 08 Jul 2017 14:43:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117170#p117170</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117156#p117156</link>
			<description><![CDATA[<p>Переменная A_Cursor.</p>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 08 Jul 2017 00:05:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117156#p117156</guid>
		</item>
		<item>
			<title><![CDATA[AHK: "Назад" в Chrome]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117154#p117154</link>
			<description><![CDATA[<p>Привет!<br />В Chrome привычное &quot;Backspace&quot;, для возврата к предыдущей странице, заменено на Alt+Left. <br />Путаешься, потому что в том же проводнике по прежнему &quot;Backspace&quot;.<br />Сделать замену горячей клавишу для Chrome не проблема, но как отличить ситуации, когда вводишь текст в поле формы от других ситуаций? </p><p>К Chrome есть расширение, которое помогает, но оно тоже на некоторых сайтах ошибается. На тех же Одноклассниках, например. Изрядно бесит, когда пытаешься исправить ошибку созданную при наборе текста, а тебя перебрасывает на предыдущую страницу. <br />&nbsp; <br /> Контролы в Chrome AHK не видит. Практически вся страница &quot;Chrome_RenderWidgetHostHWND1&quot;.<br /> Подумал, что можно танцевать от формы курсора, но это только, если он над редактируемым полем. А если нет?<br />Можно как-то определять, что есть мигающий курсор в поле редактирования? А может есть более простые способы решения проблемы?</p>]]></description>
			<author><![CDATA[null@example.com (Kurskador)]]></author>
			<pubDate>Fri, 07 Jul 2017 23:43:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117154#p117154</guid>
		</item>
	</channel>
</rss>
