Как же получить скриншот блокировки экрана??
тоже не помогает((
Код:
#Include <ClipBoard.au3>
#Include <GDIPlus.au3>
Global Const $DESKTOP_SWITCHDESKTOP = 0x0100
While 1
If _IsWorkstationLocked() Then
_ScreenCapture(@ScriptDir & '\Screenshot.bmp')
Exit
EndIf
Sleep(10)
WEnd
Func _IsWorkstationLocked()
Local $Result = False
$hDesktop = DllCall('user32.dll', 'hwnd', 'OpenDesktop', 'str', 'Default', 'int', 0, 'int', 0, 'int', $DESKTOP_SWITCHDESKTOP)
If Not @error Then
$Result = DllCall('user32.dll', 'int', 'SwitchDesktop', 'hwnd', $hDesktop[0])
$Result = Not $Result[0]
DllCall('user32.dll', 'int', 'CloseDesktop', 'hwnd', $hDesktop[0])
EndIf
Return $Result
EndFunc ;==>_IsWorkstationLocked
Func _ScreenCapture($sFile)
Local $Result, $Timer, $hImage, $hBitmap = 0
ClipPut('')
Send('{PRINTSCREEN}')
$Timer = TimerInit()
While TimerDiff($Timer) < 1000
_ClipBoard_Open(0)
$hBitmap = _ClipBoard_GetDataEx($CF_BITMAP)
_ClipBoard_Close()
If $hBitmap Then
ExitLoop
EndIf
Sleep(10)
WEnd
If Not $hBitmap Then
Return 0
EndIf
_GDIPlus_Startup()
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
$Result = _GDIPlus_ImageSaveToFile($hImage, $sFile)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Return $Result
EndFunc
Код:
_ScreenCapture_Capture()