- Сообщения
- 3,557
- Репутация
- 628
я поднимал подобный вопрос в теме http://autoit-script.ru/index.php/topic,7242.0.html
Yashied указал на функцию
из WinApiEx.au3
я использовал не в предложенном варианте а так
работает при зависании контекстного меню. проверял работу, когда привод не мог считать диск ( диск был убитый), соответственно было зависание окна "мой компьютер". в обоих случаях сначала выгружался explorer.exe, а потом закрывалось окно.
Косяк всплыл позже..запустил qip (старый) . появилось окно с прогрессом загрузки..на половине загрузки (когда строка состояния загрузки была неподвижна) скрипт закрыл окно, соответственно сам процесс qip.exe выгрузился. не понял, почему так мало дано было времени скриптом программе на отклик?. контекстному меню он дольше давал висеть.
кажется вот решение рядом, но что то не могу обойти этот косяк.
Yashied указал на функцию
Код:
_WinAPI_IsHungAppWindow()
я использовал не в предложенном варианте а так
Код:
While 1
$_ActivWindow = WinGetHandle("[Active]")
If _WinAPI_IsHungAppWindow($_ActivWindow) Then
WinKill($_ActivWindow)
EndIf
Sleep(100)
WEnd
Func _WinAPI_IsHungAppWindow($hWnd)
Local $Ret = DllCall('user32.dll', 'int', 'IsHungAppWindow', 'hwnd', $hWnd)
If @error Then
Return SetError(1, 0, 0)
EndIf
Return $Ret[0]
EndFunc
работает при зависании контекстного меню. проверял работу, когда привод не мог считать диск ( диск был убитый), соответственно было зависание окна "мой компьютер". в обоих случаях сначала выгружался explorer.exe, а потом закрывалось окно.
Косяк всплыл позже..запустил qip (старый) . появилось окно с прогрессом загрузки..на половине загрузки (когда строка состояния загрузки была неподвижна) скрипт закрыл окно, соответственно сам процесс qip.exe выгрузился. не понял, почему так мало дано было времени скриптом программе на отклик?. контекстному меню он дольше давал висеть.
кажется вот решение рядом, но что то не могу обойти этот косяк.