TC官方合作论坛

 找回密码
 立即注册
查看: 173|回复: 0

[功能] TC调用avicap32.dll拍照,测试已通过

[复制链接]
发表于 2024-3-22 01:39:10 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
//开始按钮_点击操作
变量 PSLJ, KDB
变量 视频, 摄像头句柄, 实施
功能 摄像头_初始化()
    //这里添加你要执行的代码
    //下拉框选项清空("下拉框1", "摄像头")
    KDB = 21 / 29.7
    //实施 = 窗口查找("相机")
    //使其窗口可自由变换
    动态库调用("user32.dll", "int", "SetWindowLongW", "int", 控件获取子窗口句柄("摄像头"), "int", -16, "int", 262144 + 12582912 + 524288 + 65536 + 131072)
    变量 窗口句柄, rCX, rCY, 返回宽, 返回高
    窗口句柄 = 窗口获取自我句柄()
    窗口获取客户区(窗口句柄, rCX, rCY, 返回宽, 返回高)
    窗口获取大小(窗口句柄, 返回宽, 返回高)
    窗口设置大小(控件获取子窗口句柄("摄像头"), 返回宽, 返回高 - 40)
    窗口设置位置(控件获取子窗口句柄("摄像头"), rCX, rCY)
    窗口发送消息(22, 14, 0, 0)//获取文本长度
    //设置预览窗大小
    变量 窗口句柄2, rCX2, rCY2, 返回宽2, 返回高2
    窗口句柄2 = 控件获取子窗口句柄("摄像头")
    窗口获取客户区(窗口句柄2, rCX2, rCY2, 返回宽2, 返回高2)
    窗口获取大小(窗口句柄2, 返回宽2, 返回高2)
    控件设置位置("按钮13", 返回宽2 * 0.5 - 150, 10, 50, 28, 0, "摄像头")//控件
    控件设置位置("按钮14", 500, (返回宽2 * 0.5 - 35) * KDB + 150, 100, 28, 0, "摄像头")
    //控件显示("按钮14", 假, "摄像头")//隐藏测试按钮
    图片框设置图片("图片框2", "rc:预览图.jpg", "摄像头")
    摄像头句柄 = 控件获取子窗口句柄("摄像头")
    视频 = 动态库调用("avicap32.dll", "long", "capCreateCaptureWindowW", "char *", "王八蛋", "long", 1342177280, "long", 5, "long", 5, "long", 返回宽2 * 0.5 - 35, "long", (返回宽2 * 0.5 - 35) * KDB, "long", 摄像头句柄, "long", 100000000)//返回高2 * 0.5 + 10
    //获取摄像头视频模块
    变量 WM_USER = 1024
    变量 WM_CAP_START = WM_USER
    变量 WM_CAP_UNICODE_START = WM_USER + 100 //开始
    变量 WM_CAP_GET_CAPSTREAMPTR = WM_CAP_START + 1 //获得 CAPSTR EAMPTR
    变量 WM_CAP_SET_CALLBACK_ERROR = WM_CAP_START + 2 //设置回调错误
    变量 WM_CAP_SET_CALLBACK_STATUSA = WM_CAP_START + 3 //设置回调状态
    变量 WM_CAP_SET_CALLBACK_YIELD = WM_CAP_START + 4 //设置回调出产
    变量 WM_CAP_SET_CALLBACK_FRAME = WM_CAP_START + 5 //设置回调结构
    变量 WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START + 6 //设置回调视频流
    变量 WM_CAP_SET_CALLBACK_WAVESTREAM = WM_CAP_START + 7 //设置回调视频波流
    变量 WM_CAP_GET_USER_DATA = WM_CAP_START + 8 //获得使用者数据
    变量 WM_CAP_SET_USER_DATA = WM_CAP_START + 9  //设置使用者数据
    变量 WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10 //驱动程序连接
    变量 WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11 //断开启动程序连接
    变量 WM_CAP_DRIVER_GET_NAME = WM_CAP_START + 12 //获得驱动程序名字
    变量 WM_CAP_DRIVER_GET_VERSION = WM_CAP_START + 13 //获得驱动程序版本
    变量 WM_CAP_DRIVER_GET_CAPS = WM_CAP_START + 14 //获得驱动程序性能
    变量 WM_CAP_FILE_SET_CAPTURE_FILE = WM_CAP_START + 20 //设置捕获文件的文件名
    变量 WM_CAP_FILE_GET_CAPTURE_FILE = WM_CAP_START + 21 //获得捕获文件的文件名
    变量 WM_CAP_FILE_SAVEAS = WM_CAP_START + 23 //另存文件为
    变量 WM_CAP_FILE_SAVEDIB = WM_CAP_START + 25 //保存文件
    // out of order to save on ifdefs
    变量 WM_CAP_FILE_ALLOCATE = WM_CAP_START + 22 //分派文件, 为捕获文件建一个指定大小的文件
    变量 WM_CAP_FILE_SET_INFOCHUNK = WM_CAP_START + 24 //设置开始文件
    变量 WM_CAP_EDIT_COPY = WM_CAP_START + 30 //编辑复制,把图象考入剪贴板
    变量 WM_CAP_SET_AUDIOFORMAT = WM_CAP_START + 35 //设置音频格式
    变量 WM_CAP_GET_AUDIOFORMAT = WM_CAP_START + 36 //捕获音频格式
    变量 WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41 //1065 打开视频格式设置对话框, 选择数字视频的框架大小和视频图像的色深,以及捕获视频图像的压缩格式。
    变量 WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42 //1066 打开属性设置对话框,设置对比度、亮度等。视频源对话框) 选择视频输入通道和视频图像的动态参数。
    变量 WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43 //1067 打开视频显示对话框
    变量 WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44 //1068 获得视频格式
    变量 WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45 //1069 设置视频格式
    变量 WM_CAP_DLG_VIDEOCOMPRESSION = WM_CAP_START + 46 //1070 打开压缩设置对话框
    变量 WM_CAP_SET_PREVIEW = WM_CAP_START + 50 //设置预览模式
    变量 WM_CAP_SET_OVERLAY = WM_CAP_START + 51 //设置覆盖
    变量 WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52 //设置预览模式下图像的帧速度
    变量 WM_CAP_SET_SCALE = WM_CAP_START + 53 //设置预览视频的缩放比例
    变量 WM_CAP_GET_STATUS = WM_CAP_START + 54 //获得状态
    变量 WM_CAP_SET_SCROLL = WM_CAP_START + 55 //设置卷
    变量 WM_CAP_GRAB_FRame = WM_CAP_START + 60 //逮捕结构
    变量 WM_CAP_GRAB_FRame_NOSTOP = WM_CAP_START + 61 //停止逮捕结构,截取当前图象
    变量 WM_CAP_SEQUENCE = WM_CAP_START + 62 //次序,捕捉到文件
    变量 WM_CAP_SEQUENCE_NOFILE = WM_CAP_START + 63 //没有文件
    变量 WM_CAP_SET_SEQUENCE_SETUP = WM_CAP_START + 64 //设置当前捕获的帧频率
    变量 WM_CAP_GET_SEQUENCE_SETUP = WM_CAP_START + 65 //获得当前捕获的帧频率
    变量 WM_CAP_SET_MCI_DEVICE = WM_CAP_START + 66 //设置媒体控制接口
    变量 WM_CAP_GET_MCI_DEVICE = WM_CAP_START + 67 //获得媒体控制接口
    变量 WM_CAP_STOP = WM_CAP_START + 68 //停止捕捉
    变量 WM_CAP_ABORT = WM_CAP_START + 69 //异常中断
    变量 WM_CAP_SINGLE_FRame_OPEN = WM_CAP_START + 70 //打开单一的结构
    变量 WM_CAP_SINGLE_FRame_CLOSE = WM_CAP_START + 71 //关闭单一的结构
    变量 WM_CAP_SINGLE_FRame = WM_CAP_START + 72 //单一的结构
    变量 WM_CAP_PAL_OPEN = WM_CAP_START + 80 //打开视频
    变量 WM_CAP_PAL_SAVE = WM_CAP_START + 81 //保存视频
    变量 WM_CAP_PAL_PASTE = WM_CAP_START + 82 //粘贴视频
    变量 WM_CAP_PAL_AUTOCREATE = WM_CAP_START + 83 //自动创造
    变量 WM_CAP_PAL_MANUALCREATE = WM_CAP_START + 84 //手动创造
    // Following added post VFW 1.1
    变量 WM_CAP_SET_CALLBACK_CAPCONTROL = WM_CAP_START + 85 // 设置收回的错误
    变量 WM_CAP_END = WM_CAP_SET_CALLBACK_CAPCONTROL
    变量 A = 窗口发送消息(视频, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0)//设置回调视频流
    变量 B = 窗口发送消息(视频, WM_CAP_SET_CALLBACK_ERROR, 0, 0)//设置回调错误
    变量 C = 窗口发送消息(视频, WM_CAP_SET_CALLBACK_STATUSA, 0, 0)//设置回调状态
    窗口发送消息(视频, WM_CAP_SET_CALLBACK_FRAME, 0, 0)//设置回调结构
    变量 D = 窗口发送消息(视频, WM_CAP_DRIVER_CONNECT, 0, 0)//驱动程序连接
    如果(D != 1)
        窗口发送消息(视频, WM_CAP_DRIVER_CONNECT, 0, 0)
    结束
    变量 E = 窗口发送消息(视频, WM_CAP_SET_SCALE, 1, 0)//设置预览视频的缩放比例
    变量 F = 窗口发送消息(视频, WM_CAP_SET_PREVIEWRATE, 66, 0)//设置预览模式下图像的帧数
    变量 G = 窗口发送消息(视频, WM_CAP_SET_OVERLAY, 1, 0)//设置覆盖   不成功
    如果(G != 1)
        窗口发送消息(视频, WM_CAP_SET_OVERLAY, 1, 0)
    结束
    变量 H = 窗口发送消息(视频, WM_CAP_SET_PREVIEW, 1, 0)//设置预览模式
    返回 视频
结束
//消息过程功能
功能 摄像头_消息过程(消息, w参数, l参数)
    如果(消息 == 5)
        变量 窗口句柄2, rCX2, rCY2, 返回宽2, 返回高2
        窗口句柄2 = 控件获取子窗口句柄("摄像头")
        窗口获取客户区(窗口句柄2, rCX2, rCY2, 返回宽2, 返回高2)
        窗口获取大小(窗口句柄2, 返回宽2, 返回高2)
        //控件设置位置("图片框1", 5, 5, 返回宽2 * 0.5 - 35, 返回高2 * 0.5 + 10, 0, "摄像头")//控件
        控件设置位置("图片框2", 返回宽2 * 0.5 + 20, 5, 返回宽2 * 0.5 - 35, 返回高2 * 0.5 + 10, 0, "摄像头")//控件
        控件设置位置("摄像头_开始", 20, 返回高2 * 0.5 + 30, 80, 28, 0, "摄像头")//控件  
    结束
    窗口发送消息(22, 14, 0, 0)//获取文本长度
结束
功能 按钮13_点击()
    变量 WM_USER = 1024
    变量 WM_CAP_START = WM_USER
    变量 WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41 //1065 打开视频格式设置对话框, 选择数字视频的框架大小和视频图像的色深,以及捕获视频图像的压缩格式。
    变量 WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42 //1066 打开属性设置对话框,设置对比度、亮度等。视频源对话框) 选择视频输入通道和视频图像的动态参数。
    变量 WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43 //1067 打开视频显示对话框
    窗口发送消息(视频, WM_CAP_DLG_VIDEOSOURCE, 0, 0)//视频输入设置
    窗口发送消息(视频, WM_CAP_DLG_VIDEOFORMAT, 0, 0)//视屏格式设置
    窗口发送消息(视频, WM_CAP_DLG_VIDEODISPLAY, 0, 0)//视频显示对话框
结束
功能 按钮14_点击()
    变量 LJ = "C:\\Users\\Gowey\\Desktop\\XXX.bmp"
    变量 WM_USER = 1024
    变量 WM_CAP_START = WM_USER
    变量 WM_CAP_UNICODE_START = WM_USER + 100 //开始
    变量 WM_CAP_EDIT_COPY = WM_CAP_START + 30 //编辑复制,把图象考入剪贴板
    变量 WM_CAP_FILE_SAVEDIB = WM_CAP_START + 25 //保存文件
    //窗口发送消息(视频, WM_CAP_EDIT_COPY, 0, 0)//把图象考入剪贴板
    动态库调用("user32.dll", "long", "SendMessageA", "long", 视频, "long", WM_CAP_FILE_SAVEDIB, "int", 0, "char *", LJ)
结束

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-4-19 16:08 , Processed in 0.032439 second(s), 22 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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