找回密码
 加入
搜索
查看: 5389|回复: 8

[图形处理] [已解决]关于用CameraDll鼠标截图,双击无法保存的问题.

  [复制链接]
发表于 2010-8-10 07:03:07 | 显示全部楼层 |阅读模式
本帖最后由 雨林GG 于 2010-8-10 07:49 编辑

在论坛找的代码,想添加到自己的局域网聊天中,但不管是用1.0还是7.0哪个版本的都出现了无法保存的问题,请各位帮忙看看,哪个地方出问题了?
#include <ScreenCapture.au3>
#include <GUIConstantsEx.au3>
#include <Clipboard.au3>
#include <GDIPlus.au3>

$hGUI = GUICreate("截屏工具", 400, 180)

$Button1 = GUICtrlCreateButton("鼠标截图", 150, 95, 100, 30)

GUISetState()
While 1
        Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                        ExitLoop
                Case $Button1
                        Camera()
        EndSwitch
WEnd
GUIDelete()
Func Camera()
        WinSetState($hGUI, "", @SW_HIDE)
        ;RunWait("rundll32.exe CameraDll.dll,CameraSubArea",'',@SW_HIDE)
        DllCall(@ScriptDir & '\CameraDll.dll', 'int', 'CameraSubArea', 'hwnd', 0)

        $hBitmap = _ClipBoard_GetData($CF_BITMAP)
        _ScreenCapture_SaveImage(@ScriptDir & '\Capture.jpg', $hBitmap)
        WinSetState($hGUI, "", @SW_SHOW)
EndFunc   ;==>Camera

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-8-10 07:39:14 | 显示全部楼层
本帖最后由 republican 于 2010-8-10 07:41 编辑

回复 1# 雨林GG

Camera代码杂糅在一起了......该DLL已经截了图,就不要再用ScreenCapture函数了,应该用GDI的函数。

应该这样用的。
#include <ScreenCapture.au3>
#include <GUIConstantsEx.au3>
#include <Clipboard.au3>
#include <GDIPlus.au3>

$hGUI = GUICreate("截屏工具", 400, 180)

$Button1 = GUICtrlCreateButton("鼠标截图", 150, 95, 100, 30)

GUISetState()
While 1
        Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                        ExitLoop
                Case $Button1
                        Camera()
        EndSwitch
WEnd
GUIDelete()
Func Camera()
        WinSetState($hGUI, "", @SW_HIDE)
        ;RunWait("rundll32.exe CameraDll.dll,CameraSubArea",'',@SW_HIDE)
        DllCall(@ScriptDir & '\CameraDll.dll', 'int', 'CameraSubArea', 'hwnd', 0)

        _GDIPlus_Startup()
        _ClipBoard_Open(0)
        $iVerifyPics = _ClipBoard_GetDataEx($CF_BITMAP)
        $iVerifyPics = _GDIPlus_BitmapCreateFromHBITMAP($iVerifyPics)
        _GDIPlus_ImageSaveToFile ($iVerifyPics, @ScriptDir  & "\GDIPlus_Image.jpg")
        _ClipBoard_Close()
        WinSetState($hGUI, "", @SW_SHOW)
EndFunc   ;==>Camera

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-8-10 07:48:34 | 显示全部楼层
回复 2# republican

谢谢您了!!~~
 楼主| 发表于 2010-8-10 07:53:19 | 显示全部楼层
回复 2# republican

_ClipBoard_Open(0)
$hBitmap = _ClipBoard_GetDataEx($CF_BITMAP)
_ScreenCapture_SaveImage(@ScriptDir & '\Capture.jpg', $hBitmap)
_ClipBoard_Close()

这样好像也可以啊!
发表于 2010-8-10 08:07:22 | 显示全部楼层
回复 4# 雨林GG

这个倒是没留意.....
发表于 2011-11-16 20:55:53 | 显示全部楼层
谢谢楼主分享这个dll
发表于 2016-12-27 16:45:03 | 显示全部楼层
留个印记  可以记
发表于 2018-5-16 07:26:03 | 显示全部楼层
谢谢楼主提供
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 01:45 , Processed in 0.079701 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表