1

Тема: AHK: Скриншот фуллскрин окна (Без Printscreen)

Здравствуйте! Помогите мне, пожалуйста, разобраться как сделать скриншот фуллскрин окна не используя Printscreen и вставку в скрытый paint.
Слышал о BitBlt, но не пойму, как пользоваться, а при помощи Gdip, у меня, не получается заскринить фуллскрин окно.

2

Re: AHK: Скриншот фуллскрин окна (Без Printscreen)

А чем страшен Printscreen? И в каком смысле "не используя" - не нажимая физически на клавишу, или не посылая окну нажатие вообще?

3

Re: AHK: Скриншот фуллскрин окна (Без Printscreen)

Вроде как обычный вариант работает.


1::
    X:=0, Y:=0, W:=A_ScreenWidth, H:=A_ScreenHeight
    If !pToken := Gdip_Startup()
        Throw "Ошибка GDI+!  Убедитесь в наличии gdiplus.dll в вашей системе!"
    chdc := CreateCompatibleDC(), hbm := CreateDIBSection(w, h, chdc)
    obm := SelectObject(chdc, hbm), hhdc := GetDC()
    BitBlt(chdc, 0, 0, w, h, hhdc, x, y,  0x40000000|0x00CC0020)
    ReleaseDC(hhdc), FileName := A_Desktop "\" A_Now ".png"  
    pBitmap := Gdip_CreateBitmapFromHBITMAP(hbm) 
    SelectObject(chdc, obm), DeleteObject(hbm), DeleteDC(hhdc), DeleteDC(chdc)  
    Gdip_SaveBitmapToFile(pBitmap, FileName), Gdip_DisposeImage(pBitmap), Gdip_Shutdown(pToken)
    Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Скриншот фуллскрин окна (Без Printscreen)

На Win8 все работает отлично, а вот на Win7 скринит мимо окна.

5

Re: AHK: Скриншот фуллскрин окна (Без Printscreen)

Куда же там мимо, если на весь экран.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6 (изменено: LeGoo, 2014-08-07 22:14:55)

Re: AHK: Скриншот фуллскрин окна (Без Printscreen)

serzh82saratov пишет:

Куда же там мимо, если на весь экран.

Ну в смысле скринит так, будто этого окна вовсе нет.


ypppu пишет:

А чем страшен Printscreen? И в каком смысле "не используя" - не нажимая физически на клавишу, или не посылая окну нажатие вообще?

Не посылать окну нажатие

7

Re: AHK: Скриншот фуллскрин окна (Без Printscreen)

Ну что, никто не может помочь?

8

Re: AHK: Скриншот фуллскрин окна (Без Printscreen)

А что за окно? Некоторые окна не поддаются снимку.

9

Re: AHK: Скриншот фуллскрин окна (Без Printscreen)

DX9 приложение. Через PrintScreen его видно и на Win8 и Win8.1 через:

X:=0, Y:=0, W:=A_ScreenWidth, H:=A_ScreenHeight
screenname = %A_DD%-%A_MMM%-%A_YYYY%_%A_Hour%-%A_Min%-%A_Sec%.png
    If !pToken := Gdip_Startup()
        Throw "Ошибка GDI+!  Gdiplus.dll не найден в вашей системе!"
    chdc := CreateCompatibleDC(), hbm := CreateDIBSection(w, h, chdc)
    obm := SelectObject(chdc, hbm), hhdc := GetDC()
    BitBlt(chdc, 0, 0, w, h, hhdc, x, y,  0x40000000|0x00CC0020)
    ReleaseDC(hhdc), FileName := A_ScriptDir "\Screens\" screenname 
    pBitmap := Gdip_CreateBitmapFromHBITMAP(hbm) 
    SelectObject(chdc, obm), DeleteObject(hbm), DeleteDC(hhdc), DeleteDC(chdc)  
    Gdip_SaveBitmapToFile(pBitmap, FileName), Gdip_DisposeImage(pBitmap), Gdip_Shutdown(pToken)
    Return

прекрасно скринит, а вот на Win7 скринит сквозь окно.