[已解决] 有什么语句可以将自我窗口输出为图片?
本帖最后由 chishingchan 于 2019-11-29 23:01 编辑Msgbox(0, "", "Hello World!")
弹出窗口后输出 *.png (如上图) _ScreenCapture_CaptureWnd
捕捉指定窗口或控件 ID 的屏幕快照
本帖最后由 chishingchan 于 2019-11-29 21:51 编辑
chzj589 发表于 2019-11-29 14:27
_ScreenCapture_CaptureWnd
捕捉指定窗口或控件 ID 的屏幕快照
这语句对 GUI 来说很好!偏偏这个简单的 msgbox 语句不存在句柄。
#include <ScreenCapture.au3>
$hWnd = Msgbox(0, "", "Hello World!")
_ScreenCapture_CaptureWnd(@TempDir & "\HW.png", $hWnd)
可能是到了截图的语句时,Msgbox 语句已过了!
#include <ScreenCapture.au3>
Msgbox(0, "", "Hello World!", 3)
$hWnd = WinGetHandle("", "Hello World!")
_ScreenCapture_CaptureWnd(@TempDir & "\HW.png", $hWnd)
chishingchan 发表于 2019-11-29 21:43
这语句对 GUI 来说很好!偏偏这个简单的 msgbox 语句不存在句柄。
可能是到了截图的语句时,Msgbox 语 ...
#include <WinAPISys.au3>
#include <ScreenCapture.au3>
Local $fPic = '1.png'
Local $hTimerProc = DllCallbackRegister('_TimerProc', 'none', 'hwnd;uint;uint_ptr;dword')
Local $iTimerID = _WinAPI_SetTimer(0, 0, 100, DllCallbackGetPtr($hTimerProc))
Msgbox(0, '', 'Hello World!')
_WinAPI_KillTimer(0, $iTimerID)
DllCallbackFree($hTimerProc)
Func _TimerProc($hWnd, $iMsg, $iTimerID, $iTime)
Local $hWin = WinGetHandle('', 'Hello World!')
If Not @error Then
_ScreenCapture_CaptureWnd($fPic, $hWin, 0, 0, -1, -1, False)
_WinAPI_KillTimer(0, $iTimerID)
DllCallbackFree($hTimerProc)
EndIf
EndFunc ;==>_TimerProc afan 发表于 2019-11-29 21:59
#include
#include
不容易理解,慢慢消化吧!谢谢! chishingchan 发表于 2019-11-29 22:12
不容易理解,慢慢消化吧!谢谢!
就是加一个定时器在消息框弹出之前执行,相当于多开了个简单的线程
页:
[1]