<?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=10923</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10923&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Оповещение об окончании копирования файлов».]]></description>
		<lastBuildDate>Mon, 17 Sep 2018 05:34:52 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Оповещение об окончании копирования файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=128737#p128737</link>
			<description><![CDATA[<p>Таймер вызывается каждые 100 мс, а внутри цикл с sleep 250, который нафиг не нужен.<br />Переписать без циклов.</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Mon, 17 Sep 2018 05:34:52 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=128737#p128737</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Оповещение об окончании копирования файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=128729#p128729</link>
			<description><![CDATA[<p>Подскажите, пожалуйста, почему таймер перестает работать после добавления следом еще одного таймера? Как это исправить?<br /></p><div class="codebox"><pre><code>#SingleInstance Force
SetTitleMatchMode, 2

SetTimer, WaitCopying, 100
;~ SetTimer, WaitRender, 100

WaitCopying:
winName:=&quot;complete ahk_class OperationStatusWindow&quot;
while !(WinExist(winName))
	Sleep, 250
	StartTime := A_TickCount
WinWaitClose, %winName%
ElapsedTime := A_TickCount - StartTime
if (ElapsedTime &gt; 1000) { ; 1 sec
	ElapsedTimeConvert := SecToHHMMSS(ElapsedTime // 1000)
	SoundPlay, D:\Soft\AHK\Sounds\sound_chek.mp3
	MsgBox, , File System, Copying is Finished!`nElapsed time: %ElapsedTimeConvert%
}
return

WaitRender:
winName:=&quot;Encoding&quot;
while !(WinExist(winName))
	Sleep, 250
	StartTime := A_TickCount
WinWaitClose, %winName% ahk_class Premiere Pro
ElapsedTime := A_TickCount - StartTime
if (ElapsedTime &gt; 120000) { ; 2 min
	ElapsedTimeConvert := SecToHHMMSS(ElapsedTime // 1000)
	MsgBox, , Premiere Pro, Render Complete!`n`n%ElapsedTimeConvert%`n%ElapsedTimeConvert2%
}
return

SecToHHMMSS(Sec){
	OldFormat := A_FormatFloat
	SetFormat, Float, 02.0
	Hrs  := Sec//3600/1
	Min := Mod(Sec//60, 60)/1
	Sec := Mod(Sec,60)/1
	SetFormat, Float, %OldFormat%
	Return (Hrs ? Hrs &quot;:&quot; : &quot;&quot;) Min &quot;:&quot; Sec
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Sun, 16 Sep 2018 20:47:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=128729#p128729</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Оповещение об окончании копирования файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=109963#p109963</link>
			<description><![CDATA[<p>На примере от <a href="http://forum.script-coding.com/viewtopic.php?pid=109248#p109248">KusochekDobra</a> создал простой сценарий, оповещающий об окончании копирования. Помогите, пожалуйста, добавить условие, при котором оповещение работало только при копировании дольше минуты.</p><br /><div class="codebox"><pre><code>SetTimer, WaitCopying, 100

WaitCopying:
winName:=&quot;ahk_class OperationStatusWindow&quot;
while !(WinExist(winName))
	StartTime := A_TickCount
	Sleep, 250
WinWaitClose, %winName%
ElapsedTime := A_TickCount - StartTime
if (ElapsedTime &gt; 60000)
{
	MsgBox, Copying is Finished!
}
return
</code></pre></div><p>upd.: вроде все получилось. Но хотелось бы в отдельное окно добавить оповещение со временем, за которое было совершено копирование. Можно вынести в окно <strong>ElapsedTime </strong>, но хотелось бы иметь результат в привычном формате, т.е. необходимо преобразовать миллиcекунды в формат HH:MM:SS. Как это сделать?</p>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Wed, 21 Dec 2016 01:26:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=109963#p109963</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Оповещение об окончании копирования файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97127#p97127</link>
			<description><![CDATA[<p>Думаю, надо копать эти темы:<br /><a href="http://forum.script-coding.com/viewtopic.php?id=6231">http://forum.script-coding.com/viewtopic.php?id=6231</a><br /><a href="http://forum.script-coding.com/viewtopic.php?id=6502">http://forum.script-coding.com/viewtopic.php?id=6502</a></p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 06 Sep 2015 16:36:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97127#p97127</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Оповещение об окончании копирования файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97121#p97121</link>
			<description><![CDATA[<p>Что то типо этого?<br /></p><div class="codebox"><pre><code>#Persistent
#NoEnv
Acc_ObjectFromWindow(hWnd, idObject = 0)
{
    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_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 {
         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_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_GetChild(Acc, path=&quot;&quot;) {
    Loop Parse, path, csv
        Acc := Acc_Children(Acc)[A_LoopField]
    return Acc
}


DllCall(&quot;LoadLibrary&quot;,&quot;Str&quot;,&quot;oleacc&quot;,&quot;Ptr&quot;)
loop
{
WinWait ahk_class OperationStatusWindow
for i,k in Acc_Children(Acc_GetChild(Acc_ObjectFromWindow(WinExist(&quot;ahk_class OperationStatusWindow&quot;)),&quot;4,1,4&quot;))
    if (k.AccRole(0) = 20) and (k.AccName(0) ~= &quot; 100%$&quot;)
        traytip,инфа, % k.AccName(0)
sleep 100
}</code></pre></div><p>на win 7 вроде как Не должно работать это, потому что там не группируются окна копирования.</p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Sun, 06 Sep 2015 13:11:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97121#p97121</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Оповещение об окончании копирования файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97102#p97102</link>
			<description><![CDATA[<p>Для того, кто часто сталкивается с необходимостью копирования большого объема файлов, очевидно, насколько удобно было бы слышать оповещение в виде проигрывания системного звука или другого аудиофайла на выбор тогда, когда процесс копирования/перемещения файлов приходит к завершению.</p><p>Самый простой вариант, <strong>проиграть аудиофайл после закрытия окна копирования,</strong> но хотелось бы, чтобы этот параметр срабатывал лишь тогда, <strong>когда копирование/перемещение длится, например, уже более, чем 60 сек.</strong>, чтобы избежать этой опции при копировании одной фотографии. Помимо проводника, также хотелось бы задействовать и фоновый режим копирования в Total Commander. Надеюсь, кто-то из разработчиков найдет время, чтобы воплотить эту мысль в реальность.</p>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Sat, 05 Sep 2015 03:50:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97102#p97102</guid>
		</item>
	</channel>
</rss>
