DyadyaGenya
Знающий
- Сообщения
- 300
- Репутация
- 10
Пробую сделать скрин окна процесса копирования файлов. Окно получилось отловить, скрин тоже делается. Но делается на 100% и там уже нет данных графика изменения скорости загрузки. А нужно в момент, когда ещё есть график. Установка в ноль задержки не помагает. Пробовал так:
Заменил две строки (8-9) на эту
. Получилось заскринить на 99%. Но все равно окно пустое.
Код:
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#Include <ScreenCapture.au3>
$Shell = ObjCreate('Shell.Application')
$Shell.NameSpace('Source').CopyHere('Dist', 16)
$hWnd = WinWait("[class:OperationStatusWindow]", "", 0)
If Not $hWnd Then
MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
Exit
Else
$hWnd = WinGetHandle("[CLASS:OperationStatusWindow]")
$aWinPos = WinGetPos($hWnd)
WinMove($hWnd, "", 300, $aWinPos[1])
$hDC = _WinAPI_GetWindowDC($hWnd)
$hMemDC = _WinAPI_CreateCompatibleDC($hDC)
$hBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $aWinPos[2], $aWinPos[3])
_WinAPI_SelectObject($hMemDC, $hBitmap)
_Print($hWnd, $hMemDC)
_WinAPI_DeleteDC($hMemDC)
_WinAPI_ReleaseDC($hWnd, $hDC)
Dim $sFile = @ScriptDir & "\capture.jpg"
_ScreenCapture_SaveImage($sFile, $hBitmap)
ShellExecute($sFile)
EndIf
Func _Print($hWnd, $hMemDC, $iFlag = 0)
$aRet = DllCall("User32.dll", "int", "PrintWindow", _
"hwnd", $hWnd, _
"hwnd", $hMemDC, _
"int", $iFlag)
Return $aRet[0]
EndFunc ;==>_Print
Сообщение автоматически объединено:
Заменил две строки (8-9) на эту
Код:
If Not WinExists("[class:OperationStatusWindow]") Then
Вложения
Последнее редактирование: