(已解决)截图为什么用_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只有捕捉屏幕的功能。
最后还是自己用模拟键盘的方式去解决了。 。。。。我也正好需要!!有人指点么 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}")都没人回答,看来这问题没人可以解决了,看来我只能通过没技术含量的方法去实现了。呵呵 是的,这个函数对一些特别的窗口也无法取得的,我也发现了。 回复 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() 正在考虑截图方案,学习了
页:
[1]