<?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=14278</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14278&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Скрипт застывает при открытии окна загрузки файла на сайт».]]></description>
		<lastBuildDate>Thu, 19 Oct 2023 22:34:23 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159391#p159391</link>
			<description><![CDATA[<p>В функции UnFreeze() ничего криминального нет, а в целом не могу сказать, особенно учитывая, что IE может работать сейчас неполноценно.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 19 Oct 2023 22:34:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159391#p159391</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159390#p159390</link>
			<description><![CDATA[<p><strong>teadrinker</strong>, не знаешь насколько верно будет использовать данный код в цикле?<br /></p><div class="codebox"><pre><code>loop
{
   UnFreeze(200, Func(&quot;MyFunc&quot;))
   oIE.document.querySelector(&quot;input[type=&quot;&quot;file&quot;&quot;]&quot;).click()
   msgbox unfreeze
}</code></pre></div><p>Есть ли какие подводные камни?<br /></p><div class="codebox"><pre><code>oIE := ComObjCreate(&quot;InternetExplorer.Application&quot;)
OnExit( Func(&quot;IeQuit&quot;).Bind(oIE) )
oIE.visible := true
oIE.navigate(&quot;https://www.youtube.com/upload&quot;)
While oIE.readyState != 4 || oIE.document.readyState != &quot;complete&quot; || oIE.busy
   Sleep, 10

loop
{
   UnFreeze(200, Func(&quot;MyFunc&quot;))
   oIE.document.querySelector(&quot;input[type=&quot;&quot;file&quot;&quot;]&quot;).click()
   msgbox unfreeze
}

MyFunc()  {
   Loop  {
      if WinExist(&quot;ahk_class #32770 ahk_exe IEXPLORE.EXE&quot;)  {
         MsgBox, do stuff here
         break
      }
      Sleep, 100
   }
}

IeQuit(oIE)  {
   if WinExist(&quot;ahk_class #32770 ahk_exe IEXPLORE.EXE&quot;)
      ControlClick, Button2
   try oIE.Quit()
}

UnFreeze(timeOut, userFunc)  {
   static SYNCHRONIZE := 0x100000, hGui, oInfo := {}
        , _ := OnMessage( msg := DllCall(&quot;RegisterWindowMessage&quot;, Str, &quot;WM_INFO&quot;), Func(&quot;WM_INFO&quot;).Bind(oInfo) )
   if !hGui
      Gui, New, +hwndhGui
   hProc := DllCall(&quot;OpenProcess&quot;, UInt, SYNCHRONIZE, UInt, 0, UInt, DllCall(&quot;GetCurrentProcessId&quot;), Ptr)
   pPtr := GetProcAddr(hProc, hGui, msg, timeOut)
   oInfo.func := userFunc, oInfo.hProc := hProc
   DllCall(&quot;CreateThread&quot;, Ptr, 0, Ptr, 0, Ptr, pPtr, Ptr, 0, UInt, 0, Ptr, 0)
}

WM_INFO(oInfo)
{
   DllCall(&quot;CloseHandle&quot;, Ptr, oInfo.hProc)
   oInfo.func.Call()
}

GetProcAddr(Handle, hWnd, Msg, Timeout=-1)
{  ; на основе http://forum.script-coding.com/viewtopic.php?pid=56073#p56073
   static MEM_COMMIT := 0x1000, PAGE_EXECUTE_READWRITE := 0x40
   ptr := DllCall(&quot;VirtualAlloc&quot;, Ptr, 0, Ptr, A_PtrSize = 4 ? 49 : 85, UInt, MEM_COMMIT, UInt, PAGE_EXECUTE_READWRITE, Ptr)
   , hModule := DllCall(&quot;GetModuleHandle&quot;, Str, &quot;kernel32.dll&quot;, Ptr)
   , pWaitForSingleObject := DllCall(&quot;GetProcAddress&quot;, Ptr, hModule, AStr, &quot;WaitForSingleObject&quot;, Ptr)
   , hModule := DllCall(&quot;GetModuleHandle&quot;, Str, &quot;user32.dll&quot;, Ptr)
   , pSendMessageW := DllCall(&quot;GetProcAddress&quot;, Ptr, hModule, AStr, &quot;SendMessageW&quot;, Ptr)
   , NumPut(pWaitForSingleObject, ptr*1)
   , NumPut(pSendMessageW, ptr + A_PtrSize)
   if (A_PtrSize = 4)  {
      NumPut(0x68, ptr + 8, &quot;UChar&quot;)
      , NumPut(Timeout, ptr + 9, &quot;UInt&quot;), NumPut(0x68, ptr + 13, &quot;UChar&quot;)
      , NumPut(Handle, ptr + 14), NumPut(0x15FF, ptr + 18, &quot;UShort&quot;)
      , NumPut(ptr, ptr + 20), NumPut(0x6850, ptr + 24, &quot;UShort&quot;)
      , NumPut(Handle, ptr + 26), NumPut(0x68, ptr + 30, &quot;UChar&quot;)
      , NumPut(Msg, ptr + 31, &quot;UInt&quot;), NumPut(0x68, ptr + 35, &quot;UChar&quot;)
      , NumPut(hWnd, ptr + 36), NumPut(0x15FF, ptr + 40, &quot;UShort&quot;)
      , NumPut(ptr+4, ptr + 42), NumPut(0xC2, ptr + 46, &quot;UChar&quot;), NumPut(4, ptr + 47, &quot;UShort&quot;)
   }
   else  {
      NumPut(0x53, ptr + 16, &quot;UChar&quot;)
      , NumPut(0x20EC8348, ptr + 17, &quot;UInt&quot;), NumPut(0xBACB8948, ptr + 21, &quot;UInt&quot;)
      , NumPut(Timeout, ptr + 25, &quot;UInt&quot;), NumPut(0xB948, ptr + 29, &quot;UShort&quot;)
      , NumPut(Handle, ptr + 31), NumPut(0x15FF, ptr + 39, &quot;UShort&quot;)
      , NumPut(-45, ptr + 41, &quot;UInt&quot;), NumPut(0xB849, ptr + 45, &quot;UShort&quot;)
      , NumPut(Handle, ptr + 47), NumPut(0xBA, ptr + 55, &quot;UChar&quot;)
      , NumPut(Msg, ptr + 56, &quot;UInt&quot;), NumPut(0xB948, ptr + 60, &quot;UShort&quot;)
      , NumPut(hWnd, ptr + 62), NumPut(0xC18941, ptr + 70, &quot;UInt&quot;)
      , NumPut(0x15FF, ptr + 73, &quot;UShort&quot;), NumPut(-71, ptr + 75, &quot;UInt&quot;)
      , NumPut(0x20C48348, ptr + 79, &quot;UInt&quot;), NumPut(0xC35B, ptr + 83, &quot;UShort&quot;)
   }
   return ptr + A_PtrSize*2
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 19 Oct 2023 22:26:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159390#p159390</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129579#p129579</link>
			<description><![CDATA[<p>OFF: блин, что они с сайтом сделали. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Раньше можно было выбрать цветовую тему, добавляя к ссылке определённый код, например <em>style=17</em>, но сейчас это не работает, страница не форматируется.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 01 Nov 2018 14:42:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129579#p129579</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129578#p129578</link>
			<description><![CDATA[<p>Запостил твоё решение на оффоруме.<br /><a href="https://autohotkey.com/boards/viewtopic.php?p=247253#p247253">https://autohotkey.com/boards/viewtopic … 53#p247253</a></p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 01 Nov 2018 14:26:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129578#p129578</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129537#p129537</link>
			<description><![CDATA[<p>Вот так работает:<br /></p><div class="codebox"><pre><code>oIE := ComObjCreate(&quot;InternetExplorer.Application&quot;)
OnExit( Func(&quot;IeQuit&quot;).Bind(oIE) )
oIE.visible := true
oIE.navigate(&quot;https://www.youtube.com/upload&quot;)
While oIE.readyState != 4 || oIE.document.readyState != &quot;complete&quot; || oIE.busy
   Sleep, 10

UnFreeze(200, Func(&quot;MyFunc&quot;))
oIE.document.querySelector(&quot;input[type=&quot;&quot;file&quot;&quot;]&quot;).click()

MyFunc()  {
   Loop  {
      if WinExist(&quot;ahk_class #32770 ahk_exe IEXPLORE.EXE&quot;)  {
         MsgBox, do stuff here
         break
      }
      Sleep, 100
   }
}

IeQuit(oIE)  {
   if WinExist(&quot;ahk_class #32770 ahk_exe IEXPLORE.EXE&quot;)
      ControlClick, Button2
   try oIE.Quit()
}

UnFreeze(timeOut, userFunc)  {
   static SYNCHRONIZE := 0x100000, hGui, oInfo := {}
        , _ := OnMessage( msg := DllCall(&quot;RegisterWindowMessage&quot;, Str, &quot;WM_INFO&quot;), Func(&quot;WM_INFO&quot;).Bind(oInfo) )
   if !hGui
      Gui, New, +hwndhGui
   hProc := DllCall(&quot;OpenProcess&quot;, UInt, SYNCHRONIZE, UInt, 0, UInt, DllCall(&quot;GetCurrentProcessId&quot;), Ptr)
   pPtr := GetProcAddr(hProc, hGui, msg, timeOut)
   oInfo.func := userFunc, oInfo.hProc := hProc
   DllCall(&quot;CreateThread&quot;, Ptr, 0, Ptr, 0, Ptr, pPtr, Ptr, 0, UInt, 0, Ptr, 0)
}

WM_INFO(oInfo)
{
   DllCall(&quot;CloseHandle&quot;, Ptr, oInfo.hProc)
   oInfo.func.Call()
}

GetProcAddr(Handle, hWnd, Msg, Timeout=-1)
{  ; на основе http://forum.script-coding.com/viewtopic.php?pid=56073#p56073
   static MEM_COMMIT := 0x1000, PAGE_EXECUTE_READWRITE := 0x40
   ptr := DllCall(&quot;VirtualAlloc&quot;, Ptr, 0, Ptr, A_PtrSize = 4 ? 49 : 85, UInt, MEM_COMMIT, UInt, PAGE_EXECUTE_READWRITE, Ptr)
   , hModule := DllCall(&quot;GetModuleHandle&quot;, Str, &quot;kernel32.dll&quot;, Ptr)
   , pWaitForSingleObject := DllCall(&quot;GetProcAddress&quot;, Ptr, hModule, AStr, &quot;WaitForSingleObject&quot;, Ptr)
   , hModule := DllCall(&quot;GetModuleHandle&quot;, Str, &quot;user32.dll&quot;, Ptr)
   , pSendMessageW := DllCall(&quot;GetProcAddress&quot;, Ptr, hModule, AStr, &quot;SendMessageW&quot;, Ptr)
   , NumPut(pWaitForSingleObject, ptr*1)
   , NumPut(pSendMessageW, ptr + A_PtrSize)
   if (A_PtrSize = 4)  {
      NumPut(0x68, ptr + 8, &quot;UChar&quot;)
      , NumPut(Timeout, ptr + 9, &quot;UInt&quot;), NumPut(0x68, ptr + 13, &quot;UChar&quot;)
      , NumPut(Handle, ptr + 14), NumPut(0x15FF, ptr + 18, &quot;UShort&quot;)
      , NumPut(ptr, ptr + 20), NumPut(0x6850, ptr + 24, &quot;UShort&quot;)
      , NumPut(Handle, ptr + 26), NumPut(0x68, ptr + 30, &quot;UChar&quot;)
      , NumPut(Msg, ptr + 31, &quot;UInt&quot;), NumPut(0x68, ptr + 35, &quot;UChar&quot;)
      , NumPut(hWnd, ptr + 36), NumPut(0x15FF, ptr + 40, &quot;UShort&quot;)
      , NumPut(ptr+4, ptr + 42), NumPut(0xC2, ptr + 46, &quot;UChar&quot;), NumPut(4, ptr + 47, &quot;UShort&quot;)
   }
   else  {
      NumPut(0x53, ptr + 16, &quot;UChar&quot;)
      , NumPut(0x20EC8348, ptr + 17, &quot;UInt&quot;), NumPut(0xBACB8948, ptr + 21, &quot;UInt&quot;)
      , NumPut(Timeout, ptr + 25, &quot;UInt&quot;), NumPut(0xB948, ptr + 29, &quot;UShort&quot;)
      , NumPut(Handle, ptr + 31), NumPut(0x15FF, ptr + 39, &quot;UShort&quot;)
      , NumPut(-45, ptr + 41, &quot;UInt&quot;), NumPut(0xB849, ptr + 45, &quot;UShort&quot;)
      , NumPut(Handle, ptr + 47), NumPut(0xBA, ptr + 55, &quot;UChar&quot;)
      , NumPut(Msg, ptr + 56, &quot;UInt&quot;), NumPut(0xB948, ptr + 60, &quot;UShort&quot;)
      , NumPut(hWnd, ptr + 62), NumPut(0xC18941, ptr + 70, &quot;UInt&quot;)
      , NumPut(0x15FF, ptr + 73, &quot;UShort&quot;), NumPut(-71, ptr + 75, &quot;UInt&quot;)
      , NumPut(0x20C48348, ptr + 79, &quot;UInt&quot;), NumPut(0xC35B, ptr + 83, &quot;UShort&quot;)
   }
   return ptr + A_PtrSize*2
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 29 Oct 2018 08:31:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129537#p129537</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129533#p129533</link>
			<description><![CDATA[<p>А, нет, я перед этим вручную на кнопку загрузки кликнул, потому что через IE сначала авторизоваться пришлось. Если скрипт кликает, тогда не срабатывает.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 28 Oct 2018 19:27:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129533#p129533</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129531#p129531</link>
			<description><![CDATA[<p>У меня срабатывает без клика:</p><p><span class="postimg"><img src="https://i.imgur.com/sXtsSON.png" alt="https://i.imgur.com/sXtsSON.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 28 Oct 2018 19:17:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129531#p129531</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129528#p129528</link>
			<description><![CDATA[<p>Таймер сработает только если после появления окна для загрузки файлов кликнуть вручную правой кнопкой мыши на иконку запущенного скрипта.<br />Так что похоже не вариант.<br /></p><div class="codebox"><pre><code>#persistent
DllCall(&quot;SetTimer&quot;, Ptr, A_ScriptHwnd, Ptr, id := 1, UInt, 50, Ptr, RegisterCallback(&quot;MyTimer&quot;, &quot;F&quot;))

oIE := ComObjCreate(&quot;InternetExplorer.Application&quot;) 
oIE.visible := True, oIEHWND := oIE.HWND 
WinMaximize ahk_id %oIEHWND%  
oIE.navigate(&quot;https://www.youtube.com/upload&quot;)
While oIE.readyState != 4 || oIE.document.readyState != &quot;complete&quot; || oIE.busy
   Sleep, 10
oIE.document.querySelector(&quot;input[type=&quot;&quot;file&quot;&quot;]&quot;).click()



MyTimer()
{
   Global n
   n++
   if winexist(&quot;ahk_class #32770 ahk_exe IEXPLORE.EXE&quot;)
   {
      tooltip work
      DllCall(&quot;KillTimer&quot;, Ptr, A_ScriptHwnd, Ptr, id := 1)
      msgbox
   }
   tooltip % n
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 28 Oct 2018 18:20:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129528#p129528</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129521#p129521</link>
			<description><![CDATA[<p>Тут уж от исполнения зависит.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 27 Oct 2018 20:34:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129521#p129521</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129519#p129519</link>
			<description><![CDATA[<p>Да, действительно не замораживается.<br />Но вряд ли код с использованием этого таймера выйдет изящнее.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sat, 27 Oct 2018 19:38:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129519#p129519</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129507#p129507</link>
			<description><![CDATA[<p>Существует такой таймер на WinApi: <a href="https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-settimer">SetTimer</a><br />Он не замораживается.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 26 Oct 2018 21:48:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129507#p129507</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129503#p129503</link>
			<description><![CDATA[<p>Сомневаюсь, так как IE останавливает поток скрипта, возможно из-за защиты от загрузки файлов без согласия пользователя.<br />Вариант использовать AHK_H который поддерживает многопоточность.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Fri, 26 Oct 2018 20:21:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129503#p129503</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129501#p129501</link>
			<description><![CDATA[<div class="quotebox"><cite>g0ss пишет:</cite><blockquote><p>Думал, что есть более изящное решение</p></blockquote></div><p>Скорее всего, можно решить вопрос с помощью таймера.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 26 Oct 2018 20:03:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129501#p129501</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129483#p129483</link>
			<description><![CDATA[<p>Я делал:<br /></p><div class="codebox"><pre><code>
Run, winwait.ahk

;Далее код winwait.ahk
WinWait, Choose File to Upload,
IfWinNotActive, Choose File to Upload, , WinActivate, Choose File to Upload,
WinWaitActive, Choose File to Upload,
Click 240, 150
ExitApp</code></pre></div><p>Думал, что есть более изящное решение, но все ровно спасибо. Может быть знаете, почему не работают горячие клавиши?</p>]]></description>
			<author><![CDATA[null@example.com (g0ss)]]></author>
			<pubDate>Fri, 26 Oct 2018 11:39:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129483#p129483</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Скрипт застывает при открытии окна загрузки файла на сайт]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129480#p129480</link>
			<description><![CDATA[<p>Перед нажатием на кнопку, после которого появляется окошко для загрузки, запускайте отдельный скрипт, который это окошко будет ожидать и при его появлнии заполнять и закрывать.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Fri, 26 Oct 2018 11:27:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129480#p129480</guid>
		</item>
	</channel>
</rss>
