说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB对低层硬件访问控制

HTML文档下载 WORD文档下载 PDF文档下载
VB对低层硬件访问控制
VB 没 有 提 供 直 接 访 问 低 层 硬 件 的 控 件 和 方 法, 一 度 给 对 访 问 硬 件 感 兴 趣 的 编 程 者 带 来 不 便。 目 前 我 们 可 从 网 上 搜 索 到 支 持 低 层 硬 件 访 问 的DLL 和ActiveX 控 件, 通 过 它 们 可 读 写 存 储 器 单 元、 端 口, 甚 至 控 制 硬 件 中 断。 下 面 通 过 两 个 利 用DLL 和ActiveX 控 件 示 例 介 绍VB 对 低 层 硬 件 的 访 问 控 制。
一、 利 用DLL 读 写 端 口

----若 在 应 用 程 序 中 只 是 简 单 地 读 写 端 口, 利 用DLL 编 程 实 现 较 为 简 便。 从http://personal.vsnl.com/sr 网 站 可 下 载 一 个 免 费 的32 位VBIO.DLL, 该 连 接 库 允 许 在VB4、5 或6 中 使 用, 共 有 七 个 函 数 和 过 程, 分 别 为:

Anjan DLL 的 解 锁 过 程
Inp 端 口 读 字 节 函 数
Inpw 端 口 读 字 函 数
Out 端 口 写 字 节 过 程
Outw 端 口 写 字 过 程
GetLptBaseAddr 获 取 并 口 基 地 址 的 函 数
GetComBaseAddr 获 取 串 口 基 地 址 的 函 数


----图1 是 一 个 发 声 示 例 程 序 的 窗 体, 在 输 入 框 中 键 入 一 频 率 值 并 按SoundOn 钮, 则 在PC 机 的 扬 声 器 中 发 出 指 定 频 率 音 调, 程 序 中 对 音 调 的 变 化、 声 音 的 开 关 是 用VBIO.DLL 的 过 程 和 函 数 访 问 发 声 系 统 的 定 时 器/ 计 数 器 和 控 制 端 口 实 现 的。 编 程 要 点:1. 应 在Form _Load 中 加 入Anjan 解 锁 过 程。2. 若 在 模 块 中 声 明 函 数 和 过 程, 应 去 掉private 或 用Public 替 代。3.VBIO.DLL 应 拷 贝 到 \windows\system 子 目 录 下。

----程 序 清 单:

Option Explicit
Private Declare Sub Anjan Lib
“vbio.dll" ()
Private Declare Function Inp Lib
“vbio.dll" (ByVal port &) As Integer
Private Declare Function Inpw Lib
“vbio.dll" (ByVal port &) As Long
Private Declare Sub Out Lib
“vbio.dll" (ByVal port &, ByVal byt %)
Private Declare Sub Outw Lib
“vbio.dll" (ByVal port &, ByVal wrd &)
Private Declare Function GetLptBaseAddr Lib
“vbio.dll" (ByVal lpt &) As Integer
Private Declare Function GetComBaseAddr Lib
“vbio.dll" (ByVal com &) As Integer

Public Sub SetFreq(soundHz As Integer) ' 设 置 频 率
If soundHz Then
Dim divisor As Long
divisor = 1193180 / soundHz ' 计 算 时 间 常 数
Out &H42, &HB6
'8253 -5 通 道2 设 置 为 方 式3
Out &H42, divisor Mod 256 ' 送 时 间 常 数
Out &H42, divisor \ 256 '
Speaker True
Else
Speaker False
End If
End Sub

Public Sub Speaker(sOn As Boolean) ' 开 关 声 音
Dim portVal As Integer
portVal = Inp( &H61)
If sOn Then
portVal = portVal Or 3
' 低 位 为 通 道2 的 门 控 信 号
Else ' 次 低 位 为 整 形 与 门 控 制 信 号
portVal = portVal And (Not 3)
End If
Out &H61, portVal

End Sub

Private Sub Form_Load()
Anjan ' 软 件 解 锁
End Sub

Private Sub SoundOff_Click()
Speaker False
End Sub

Private Sub SoundOn_Click()
SetFreq Val(TextHz)
End Sub


二、 利 用ActiveX 处 理 硬 件 中 断


----在 应 用 程 序 中 如 果 需 要 访 问 存 储 单 元、 端 口 以 及 处 理 硬 件 中 断, 使 用TVicHW32 ActiveX 控 件 是 一 很 好 的 选 择, 该 控 件 是 一 个 共 享 软 件, 支 持Windows 95/98/NT, 可 从 http://www.entechtaiwan.com/tools.htm 处 下 载。 该 控 件 除 具 备 直 接 访 问 存 储 单 元 和 端 口 的 功 能 外, 还 提 供 了 丰 富 的 处 理 并 口 的 属 性 和 方 法, 以 及 处 理 硬 件 中 断 的 属 性、 方 法 和 事 件, 极 大 地 拓 展 了VB 对 低 层 硬 件 的 访 问 控 制。 下 面 通 过 一 个 显 示 键 盘 中 断 次 数 和 按 键 扫 描 码 的 示 例 介 绍 控 件 的 使 用 过 程。
下 载TVicHW32 压 缩 软 件 包 并 解 压 到 一 个 目 录 中, 如\HW。 把 driver 子 目 录 下 的vichw00.vxd 文 件 拷 贝 到\windows\system 子 目 录 下, 该 文 件 是 控 件 访 问 硬 件 的 驱 动 程 序, 使 用 控 件 前 先 用OpenDriver 打 开, 最 后 用Close_Driver 方 法 关 闭。
把ocx 子 目 录 下 的tvichw32.ocx 拷 贝 到\windows\system 子 目 录 下, 并 在 DOS 命 令 行 状 态 下 键 入 以 下 命 令 进 行 注 册:
----regsvr32 tvichw32.ocx
在VB 环 境 下 通 过 菜 单 工 程 - - 部 件 - - 控 件 并 选 择TVicHW32 ActiveX Control Module 将 控 件 添 加 到 工 具 箱 中。
相 关 的 属 性、 方 法 及 事 件
方 法 OpenDriver 打 开 支 持 访 问 硬 件
的 驱 动 程 序vichw.vxd(windows95 下)
方 法 CloseDriver 关 闭 驱 动 程 序
属 性 ActiveHW As Bool 驱 动 程 序 打 开
则 为True; 关 闭 为False
中 断 事 件 OnHwInterrupt(ByVal HwCounter As Long,
ByVal LPT_DataReg As Integer,
   ByVal LPT_StatusReg As Integer,
    ByVal ScanCode As Integer
   )
    参 数
  HwCounter : 中 断 次 数
LPT_DataReg : 如 果 使 用IRQ7,
则 为 打 印 并 口 的 数 据
LPT_StatusReg : 如 果 使 用IRQ7,
则 为 打 印 并 口 的 数 据
ScanKode : 如 果 使 用IRQ1,
则 为 按 键 的 扫 描 码
属 性 IRQNumber 指 定 中 断 号,
范 围IRQ1 - -15
属 性 IRQMasked 中 断 非 屏 蔽 则 为True;
屏 蔽 为False。


----图2 是 示 例 的 窗 体, 程 序 运 行 后 首 先 按 Open_Driver 钮 打 开 驱 动 程 序, 然 后 选 择Unmarsk 复 选 框 开 放 中 断, 此 时 每 按 一 次 键 框 中 分 别 显 示 该 键 的 扫 描 码 和 中 断 次 数。 处 理 其 他 中 断 只 需 更 改 中 断 号 即 可( 中 断 号1 —15)。

----程 序 清 单:

Public Sub ShowButtons()
Open_Driver.Enabled = Not HwCtrl.ActiveHW
Close_Driver.Enabled = HwCtrl.ActiveHW
B_Unmask.Enabled = HwCtrl.ActiveHW
End Sub

Private Sub Form_Load()
ShowButtons
End Sub

Private Sub Open_Driver_Click()
HwCtrl.OpenDriver ' 打 开 驱 动 程 序
If Not HwCtrl.ActiveHW Then
MsgBox (“The driver VICHWxx not found")
Else:
HwCtrl.IRQNumber = 1 ' 中 断 号 为1, 键 盘 中 断
End If
ShowButtons
End Sub

Private Sub Close_Driver_Click()
HwCtrl.CloseDriver ' 关 闭 驱 动 程 序
B_Unmask.Value = 0
ShowButtons
End Sub

Private Sub B_Unmask_Click()
If B_Unmask.Value = 0 Then
HwCtrl.IRQMasked = True
Else
HwCtrl.IRQNumber = 1
Scan_Code = 0
HwCtrl.IRQMasked = False ' 开 放 中 断
End If
End Sub

Private Sub HwCtrl_OnHwInterrupt
(ByVal HwCounter As Long, ByVal LPT_DataReg As Integer,
ByVal LPT_StatusReg As Integer, ByVal ScanCode As Integer)
Scan_Code.Caption = ScanCode
IRQC.Caption = HwCounter
End Sub

Facebook Home出阴招:Social皮,Android心 国内最火的五款HTML5前端开发框架 TIOBE 2013年4月编程语言排行榜:Objective-C四年来排名首次下滑 MeeGo复活!Sailfish OS智能手机 SDK发布 10亿美金!传闻谷歌要收购WhatsApp 从打造国内最大的OpenStack公有云开始 展望HBase的未来 你的数据库安全吗?CryptDB数据库软件可查询加密的SQL数据库 收藏!斯坦福Andrew Ng教授“机器学习”26篇教程全译 美国云计算价格战爆发 王寒:12岁儿童,该怎样开始iOS开发? 陈昊芝:腾讯!让我说你什么好? Top Paid与Top Grossing定价策略的差异 Android版百度云推送正式发布 为何开发者应推动公司开源? 从AppGratis被下架说起,苹果或将再次付出代价 58同城的“烦恼”——8K月薪安全工程师引发的入侵 软件开发实践的24条军规 思科 IBM 微软等巨头联合开发开源SDN项目OpenDaylight 巾帼不让须眉:2012年度云计算领域Top 10女性 中移动全力推进NFC 5月起乘公交可刷手机 支持Android与iOS,Qt 5.1 Alpha全新亮相 Google Play:劣质Android应用已无藏身之地! 360推出信用网站认证开放平台 联合百家协会围剿钓鱼网站 经验分享:百度测试架构师眼中的百度QA(一) 在线旅行服务行业开放API带来的新机遇 专访:悬疑恐怖游戏Year Walk美术及音效设计师 解密:微软都柏林数据中心的神秘“免费冷却”装置 云计算如何影响数字化营销? 榜单:十位帮我们打理数据的存储大佬 OpenStack Grizzly版发布 Comcast、CERN成为新会员 ocx问题?参数传递 用200百分问个很菜的问题 请问谁能告诉我一个制作从模糊到清晰运动的源代码或地址? 改变对话框中菜单区的背景色,急 弱智问题:我修改一个打印报表的数据窗口格式,修改后的新问题是它每次打印时接着纸的最上面, IE不能打开新窗口。是什么道理? java下如何得到当前程序(application)的路径?很急!! 组件调用问题? 初学者问题, 简单!! 为什么struts的中文资料如此之少??哪位知道有哪些中文书籍?电子书最好!! 我想做一个报表之类的东西,能在网页上显示,大家给点提示,有现成的例子最好,先谢了 请教各位大大 一个关于消息映射的郁闷 如何在Remote Data Module中使用ADOCommand? 真失败...关于优化pl/sql的问题 为什么名字空间下没有ADO 如何获得一个文件的完整URL地址? 谁能详细的讲讲我不明白的例子。我开ID送1000分。我把ID给费了。一定要搞懂 Applet从html中读取参数信息????? 在win98里可上网,但为什么不能查看网络邻居的属性?(在线等!!!) 关于超星的问题 有谁知道win2003+sql2000的问题? 怎么删除表中列的DEFAULT啊??? 高手请进,将程序加为服务 关于邮件服务器 组件编写中的问题--如何显示图标 记得以前学计算机的热情很大,并且非常希望有一台计算机,可是现在机器有了,却没有了以前的热情,经典书买了一堆却都没有看,我在想到底要不 关于超星的问题 大家装了windows server 2003么?怎么样啊?讨论一下好么!! 救救我吖!!怎样在oracle8.0.5中直接添加数据!!高分!急!! 大问题!!!装2003后网卡驱程不行,声卡装了听不到声音??? java能不能实现多文档(象VC++中)? 哪位E文好的同志能把这段话翻译出来,是RFC1928中的一段。 一个比较低级的问题-vb里面的回车换行孵的ASCII码是多少?? 奇怪!!!奇怪!!!奇怪!!!奇怪!!!快来看看! 谁知道windows的按文件名排序是怎么回事阿? ie问题 如何从一个框架调用另一个框架的方法?有办法吗?(在线) 突然觉得计算机语言有个误区 请问我用depends打开了dll文件,看到了里面的函数,但是参数表和返回值类型没有啊 水晶报表急问,大家帮帮忙看看! 请教文件查找的问题。 谁知道windows的按文件名排序是怎么回事阿? oracle难学吗 <jsp:getProperty name="userInfor" property="*"/> 出错!!(在线等待) 如何在vb中设置Combo的默认值?立刻给分 点击按纽,打开应用程序文件,并获得应用程序的窗口标题,怎么实现??? Linux遇到CORBA问题——高分有送! 新的IBM 60G硬盘(7200转)在PII上检测不到(硬盘没问题,在其他上能正常使用,有没有解决办法?) 21世纪合格人材必备7大技能 对加密感兴趣的同志请进,介绍一下有关书籍和代码。 你见过最美的事物是什么? 口语话题an useful law 该怎么说大概100个单词左右 功和机械能~有一块半径R=40厘米的均匀薄圆板,现从板上挖出一个半径R=20厘米的内切薄圆板,求剩余部分的重心与大圆心的距离.完整一点点的啦!谢喽挖呼~本人智商有限啦~ 明朝的意思 英语翻译很高兴在以后的日子里能和你一起教孩子们~我的英语口语不好~当然我的汉语比英语强的多,开玩笑~很高兴认识你,如果你平时有需要我帮助的地方,我会很高兴的帮助你 墨子的"非命""天志"如何解释? 请问什么样的女人,才是最美的而且是最完美的 围绕阿Q的精神胜利法写作文,怎么立意?有什么话题可以写诶?写些什么东西,写关于哪方面的? 墨子的非命与天志思想是否矛盾? 最美的女人是谁? 法学院口语怎么说 《茶馆》的作者 农业产业化经营是什么意思?请说的简单点,书面上的涵义看不懂 我用数字万用表测了一个元件的两个脚的电阻,一次是1M,一次是无穷,这是个什么东西? 笛卡尔的我思故我在是什么哲学命题A朴素唯物主义 B 机械唯物主义 C 主观唯心主义 D 客观唯心主义 如鸟曾散是什么意思啊 直线x-y+1=0在x轴,y轴上的截距分别为? 农业现代化的内涵 我国现行的是省制还是行省制?名称是什么 求直线2x-y-6=0在x轴,y轴上的截距如题 农业现代化的概念是什么?它有哪些内容? 祖国童谣有那些? 直线x=0在y轴上有截距吗y=0有在两坐标轴上截距吗 什么是农业现代化 请问明朝的国号为什么叫“明”? 拿破仑为什么是名字而不是姓?其它几乎所有外国人都用姓来称呼,像罗伯斯庇尔、马拉、希特勒等等人都是姓,为什么只有拿破仑是名字,而不用姓来称呼他呢? 两小儿辩日人物形象的性格特点 明英宗和明代宗是怎么回事?明英宗朱祁镇1436年登基,年号为正统,14年后代宗朱祁钰即位,改年号为景泰,8年后又还位给明英宗朱祁镇,这是怎么回事? 新版隋唐英雄观后感 1000字以上 是不是两个变量的关系分函数关系和相关关系,两个变量不是函数关系就一定是相关关系吗? 明朝怎么还分南明北明怎么回事 拿破仑写的回忆录叫什么名字 众皆拜访求官职(猜口语一,5字) 明朝全能大儒,叫〜〜明? 百家讲坛隋唐英雄志观后感500字 帮我猜口语米刘二歪说话口吃(六字口语一) 明朝吧和明国吧到底是什么关系血色红五月是什么.明国吧都是被明朝吧拉黑的人吗 为什么要拉黑啊 哲学家与科学家有什么不同,哲学家会思考诸如“我们是谁?”“我们从哪里来”“我们为何存在?”等这样的问题,但是物理学家也会思考,但他们思考和研究有什么不同?哪种更真实? 猜口语,急,请帮忙(共三个)1.分别点数——猜一个三个字的常用口语;2.恶果——猜六字的口语;3.出口货——猜六字的口语. 农业产业化的发展过程? 220-年龄是什么意思 猜口语 遇雨,是什么? 以观沧海的以是什么意思 打电话去墨西哥要加什么数字 为什么资本主义国家比社会主义国家发达? 谁知道City Credit Capital (UK) Ltd这个公司?这个公司是做什么业务的?是否可信?东金联合和这个公司是什么关系? 出墨西哥定居需要带什么 世界上鱼多还是鸟多? 有了解City Credit Capital(CCC)外汇交易平台的么?我想问一下这个平台和知名的MT4平台在行情K线的起始节点统计方式上有何不同?为什么同一货币对、同一时间标度上的行情显示会迥然不同呢? 本人刚刚听说 笛卡尔 想深入了解其理论 希望达人给些指点小弟刚来,分不多只有45,只能用30分的奖励,希望各位达人不要嫌弃. 笛卡尔的思辩哲学适不适合初学者读?还是应该先读一下西方哲学史笛卡尔的那部分?《苏菲的世界》是不是一本理想的初学读本?1楼:《谈谈方法》是不是就是《方法论》? “了望”的意思是? 乌有是什么意思 哪本书最能表现笛卡尔的哲学?要是笛卡尔著作的,最能体现他的哲学意识的, 了望的意思眺望和了望都是登高跳远的意思,但有时了望还有另一种意思, 古虚乌有啥意思? 扇形的面积咋算?扇形的半径为6,圆心角为120度,面积?怎么判断sin1.cos2.tan3___0 了望是什么意思 雅思口语话题是法律该怎么说? 美国交换生详解、、、需要什么条件? 俄远东南库页岛发生6.2级地震李克强与三国总理会晤解析:中国外交布日本驻华大使:日中关系不是能够轻易被外媒:美国监听35国政要 重创美欧外唐家璇:松下35年前预言成现实 中日唐家璇:中日关系深层次原因在于彼此认第九届北京―东京论坛26日在北京开幕查尔斯不想当国王? 英媒爆王储担心被河南“猪蹄店要账横幅”事件:欠款已全英媒称斯诺登一机密文件披露美监听35中欧推动世贸组织在MC9上达成早期收福岛近海发生7.1级地震 最大观察到欧洲多国一致声讨美国监听事件 默克尔报效桑梓浙商情深 前三季浙商回归项目福岛近海发生7.1级地震 最大观察到马耳他总统阿贝拉会见杜青林我们与美国不得不重建信任巴西与德国要求联合国通过网络私密性决浙江民营经济隐现离制造业化 地产投资美国白宫变“粉宫” 呼吁关注乳腺癌(美国与沙特进入公开紧张状态 多重分歧C罗登场:魔鬼身材炼成记做好利用危机推动改革的准备央行暂停平安银行交易所资产证券化项目鹏华基金“投资可以更美的”中国首度试水“完片担保模式”浦东机场两条公交线拟取消先生先生,醒醒先生甲午一百二十年祭当代东方与华安资管设50亿文化产业基12岁上海纪实频道昨日正式上星世界派对上的放逐者12岁上海纪实频道昨日正式上星案件细节AQUATECH CHINA上海国际一个7年坚守的大家庭“我和汇添富”征文活动启动IPO第二季鸣锣开战浦银安盛新发混基俄乌谈判破裂,乌面临“断气”认可从重处罚情节 孕妇主犯免死5月新增外汇占款回落至9个月低点年内两度定向降准后,再贷款和盘活存量
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘