xiezhang6263 发表于 2011-5-10 19:34:14

(已解决)截图为什么用_ScreenCapture_Capture对动态图片无法截取而print screen可以呢

本帖最后由 xiezhang6263 于 2011-6-4 21:10 编辑

我用以下的代码为什么会出现一些动态的图片无法截取而用键盘上的print screen粘贴到画图工具里可以显示呢?Func jietu()
        $savepath=IniRead($Inipath,"配置","保存路径",@MyDocumentsDir)
        _ScreenCapture_Capture(_format_n_savename())
        shellexecute($savepath)
EndFunc   ;==>jietu

Func _format_n_savename()
        $extendedname = "jpeg"
        $filename=IniRead($Inipath,"配置","文件名头","1234")
        $savepath=IniRead($Inipath,"配置","保存路径",@MyDocumentsDir);保存路径
        $pic_savename=$savepath&"\"&$filename&@YEAR&"年"&@MON&"月"&@MDAY&"日"&@HOUR&"时"&@MIN&"分"&@SEC&"秒"&"."&$extendedname
        return $pic_savename       
EndFunc        不知道大家有没碰到这样的情况或者有好的建议。
用什么代码会好些?
我想应该是_ScreenCapture_Capture只有捕捉屏幕的功能。
最后还是自己用模拟键盘的方式去解决了。

qiziyun7410 发表于 2011-5-12 04:44:05

。。。。我也正好需要!!有人指点么

xiezhang6263 发表于 2011-5-15 11:05:55

        Send("{PRINTSCREEN}")
        Run("mspaint.exe")
        WinWait("未命名 - 画图","")
        If Not WinActive("未命名 - 画图","") Then WinActivate("未命名 - 画图","")
    WinWaitActive("未命名 - 画图","")
        Send("{CTRLDOWN}v{CTRLUP}{CTRLDOWN}s{CTRLUP}")
        WinWait("保存为","")
    If Not WinActive("保存为","") Then WinActivate("保存为","")
    WinWaitActive("保存为","")
        Sleep(1000)
        Send("{enter}")
        WinWaitActive("", "")
    Send("!{f4}")都没人回答,看来这问题没人可以解决了,看来我只能通过没技术含量的方法去实现了。呵呵

happytc 发表于 2011-5-15 12:58:27

是的,这个函数对一些特别的窗口也无法取得的,我也发现了。

xiehuahere 发表于 2012-8-8 13:19:36

回复 3# xiezhang6263

PRINTSCREEN很有必要,但画图程序可以不用。ClipPut("")
Send("{PRINTSCREEN}")
$Timer = TimerInit()
While TimerDiff($Timer) < 1000
        _ClipBoard_Open(0)
        $hBitmap = _ClipBoard_GetDataEx($CF_BITMAP)
        _ClipBoard_Close()
        If $hBitmap Then ExitLoop
        Sleep(10)
WEnd
_GDIPlus_Startup()
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
_GDIPlus_ImageSaveToFile($hImage, $filename)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()

zeroboss 发表于 2019-1-9 22:46:21

正在考虑截图方案,学习了
页: [1]
查看完整版本: (已解决)截图为什么用_ScreenCapture_Capture对动态图片无法截取而print screen可以呢