OlegSmirnov
Новичок
- Сообщения
- 52
- Репутация
- 0
Добрый день, уважаемые мастера autoit.
Помогите решить проблему.
У меня есть скрипт делающий скриншот окна определенной программы - при нажатии на клавишу "W".
Но есть небольшая недоработка.
Этот скрипт - делает скриншот окна целиком, в том числе и заголовок окна и его контур.
Подскажите - как заставить скрипт - делать скриншот - только активной части окна, игнорируя или обрезая заголовок окна и его контура.
Помогите решить проблему.
У меня есть скрипт делающий скриншот окна определенной программы - при нажатии на клавишу "W".
Но есть небольшая недоработка.
Этот скрипт - делает скриншот окна целиком, в том числе и заголовок окна и его контур.
Подскажите - как заставить скрипт - делать скриншот - только активной части окна, игнорируя или обрезая заголовок окна и его контура.
Код:
#include <ScreenCapture.au3>
#include <WindowsConstants.au3>
Opt("TrayAutoPause", 0)
Opt("WinTitleMatchMode", -2)
HotKeySet("{ESC}", "_Exit")
HotKeySet("w", "_Screen")
HotKeySet("ц", "_Screen")
OnAutoItExitRegister("_OnExit")
_GDIPlus_Startup()
While 1
Sleep(10)
WEnd
Func _Screen()
Local $hWnd = WinGetHandle("Fceux 2")
Local Static $i ; <= добавить
If $hWnd Then
Local $iW = _WinAPI_GetWindowWidth($hWnd), $iH = _WinAPI_GetWindowHeight($hWnd), $hDC, $hMemDC, $hHBitmap, $hObj, $hBitmap
$hDC = _WinAPI_GetWindowDC($hWnd)
$hMemDC = _WinAPI_CreateCompatibleDC($hDC)
$hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH)
$hObj = _WinAPI_SelectObject($hMemDC, $hHBitmap)
_WinAPI_PrintWindow($hWnd, $hMemDC)
_WinAPI_SelectObject($hMemDC, $hObj)
_WinAPI_DeleteDC($hMemDC)
_WinAPI_ReleaseDC($hWnd, $hDC)
$hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hHBitmap)
_WinAPI_DeleteObject($hHBitmap)
$i += 1 ; <= добавить
_GDIPlus_ImageSaveToFile($hBitmap, @ScriptDir & "\Screen-" & $i & ".jpg") ; <= изменить
_GDIPlus_BitmapDispose($hBitmap)
Else
TrayTip("Screen", "Окно не существует", 10, 3)
EndIf
EndFunc ;==>_Screen
Func _OnExit()
_GDIPlus_Shutdown()
EndFunc ;==>_OnExit
Func _Exit()
Exit
EndFunc ;==>_Exit