本帖最后由 chenronting 于 2013-8-2 10:49 编辑
大家好,目前,我手上有一个OCX文件, 声明了全局函数,可以外部调用,下面是其中的两个函数:
1.初始化串口函数
Public Function FunctionInitComm(ByVal port As Byte) As Boolean
功能:打开Port串口
入口:Port端口号 1~16
出口:true 成功
false 失败
2.关闭串口函数
Public Function FunctionCloseComm()
功能:关闭打开的串口
下面是我自己按论坛里的例子写出来的,运行时判断出没有建立Object
Dim $Ocx=ObjCreate("Reader.ocx")
If Not IsObj($Ocx) Then
MsgBox(0,0,"没有对象");未注册的容错处理。测试时已确定注册。
EndIf
$a=$Ocx.FunctionInitComm(1)
$Ocx.functionclosecomm()
不好意思,现在附上 Reader.ocx
下载后请修改,去掉Au3后缀
请大家帮帮我,感谢之至!!
下面是坛友阿婆教会我的方法,在这里分享于各位需要的看官。
也感谢阿婆的帮助,为之头疼时,他的出现与帮助,无异于一道天光。嘿嘿~入正题:
首先你要注册控件(复制到System32再regsvr32.exe)
打开注册表,搜索你注册的控件名,在 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\ 下面
如,我这个文件注册后,内里内容如下
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}]
@="MyCpuReaderOcx.CpuCardReader"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\Control]
@=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\Implemented Categories]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\Implemented Categories\{0DE86A52-2BAA-11CF-A229-00AA003D7352}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\Implemented Categories\{0DE86A53-2BAA-11CF-A229-00AA003D7352}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\Implemented Categories\{0DE86A57-2BAA-11CF-A229-00AA003D7352}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\Implemented Categories\{40FC6ED4-2438-11CF-A3DB-080036F12502}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\InprocServer32]
@="C:\\windows\\system32\\cpureader.ocx"
"ThreadingModel"="Apartment"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\MiscStatus]
@="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\MiscStatus\1]
@="131473"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\ProgID]
@="MyCpuReaderOcx.CpuCardReader"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\ToolboxBitmap32]
@="C:\\windows\\system32\\cpureader.ocx, 30000"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\TypeLib]
@="{B51FFB27-E56B-4577-98E3-78F5BE6A8DA7}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{EA32C66F-032B-467C-98D0-4DA2F032B7D0}\VERSION]
@="1.0"
可以一眼看到第三行与第十九行中出现了熟悉的格式 MyCpuReaderOcx.CpuCardReader
这个就是你使用 Object 注册的名称,其中已第十九行的名称为准
如果你不知道控件内里的使用方法,Autoit 也有给你准备了工具,只是不多的人发现了(我开始也没发现,感谢阿婆传授神功~~)
打开 Autoit 工具箱 ,右键之,点开菜单 程序扩展工具--OLE程序查看器
出来一个软件,点击 File -- View TypeLib,再选择你要查看的控件即可
注意,以上方法适用但不限于 OCX (这里我只测试了OCX,其他如DLL 等的使用方法会有所异差) |