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

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

2013中国互联网安全大会:云环境带来的安全隐患和机遇 2013中国互联网安全大会:软件安全新挑战 专访Line大中华区总裁:即使卖萌,也能深入人心 iOS开发者必备:四款后端服务工具 市场研究公司:iPhone5C/5S成本分别是173、199美元 对软件开发有利的5个敏捷编程方法 移动端性能大比拼:CSS Sprites vs. Data URI 三大峰会七大论坛,2013移动开发者大会将于11月在京举行 黑莓47亿美元收购的背后 微软或成最大受益者 搜索大战升级:360搜狗相互起诉对方不正当竞争 诺基亚将于10月22日发布6款新产品 平板Lumia 2520等 从17美元到50美元 Facebook股价上涨背后的两大关键 12个理由:为什么我会认为Android比iOS 7好! AMD推 "Mantle" API 欲释放GPU全部潜能 Salesforce架构:日事务过13亿,2.4万TPS的数据库峰值 久违的iOS,新鲜的SDK,豌豆荚发布云相册 喜大普奔:谷歌15岁了,生日快乐! 传福特CEO Alan Mulally目前最有希望执掌微软 微软计划将WP8和Win8应用商店合并?太好了! 响应开发者要求:Kinect for Windows SDK 1.8发布 OpenStack基金会BD总监:希望有更多的中国公司加入 CTO如何避免决策失控(三):从CEO角度看CTO的应对能力 IT界需求最旺的16项技能 PMC发布8系列RAID卡 找准国内互联网企业需求 早Google一步,eBay数据中心率先搭载了火星上使用的技术 目标专利2000,技术研发人员占55%,斐讯的厚积薄发 SwiftStack CEO:分布式存储的未来 触控陈昊芝:“好声音”标王对移动游戏未来的预测 Office将更强大:微软正开发Office Reader和Office Lens 百度技术专家详解Clouda 并称计划推出相应UI解决方案 少年才俊:看IT界8个不到20岁的科技公司创始人 fokker(独孤龙) barrydiu(巴索) 请进! 看c++ primer 3/e潘先生版的战友们看过来!!!(30分) 请教各位java高手 从c:\XXX.mdb文件中导两个表的数据到Sql server的两个表中,sql脚本怎么写? udp已经穿了代理,但是我向外面发UDP包,代理就是不给我转发??? vb中ListView 中数值列的排序问题? 版本号是什么意思??? 有谁做过文物馆文物或藏品综合管理系统,如能提供资料或demo者,万分感谢,在线等待 100分:DataGrid能不能和視圖綁定,並自動進行多個表的更新,刪除工作?! win98和win2000字体显示问题 请教: 取当前的时间和日期是哪个类 怎样才能使数组的大小可变!!能有相同的功能也行。不一定要是数组!! 请高手帮忙 SQL数据库恢复问题 我用jbuilder5编译EJB为什么老有例外,md,急死我了 窗口列举的问题,请给点思路 时间比较问题 怎么禁止在CWebBrowser上点右键? asp.net中连接oracle9出现了这样的问题:ORA-12640: 验证适配器初始化失败,帮忙解决,在线等待! 如何做能变色的按钮? 用了就不放?,内存怪现象请教高手? 招聘的故事 用了就不放?,内存怪现象请教高手? 急。各位有没有NT高手呀!怎么配置NT下的IIS呀? 高分求救!!急!!关于无法找到动态连接库的问题。 xpmenu控件的使用! 招聘的故事 请问谁有《Visual C++ MFC 编程实例》这本书的配套源代码?(在线等) 如果我数据库里有一篇文章 怎么格式化她????? isapi中用ado访问数据库只能读不能写,何故?相同的代码在exe中可以 在对话框中建立一个socket连接,如何在释放对话框之后保存这个连接以备以后使用? 关于屏保程序的讨论 安装程序的BDE问题? 我创建了一个POPUP风格的窗口,如何去除背景? 和 Oracle 的连接问题(odac ) 帮忙看一下有什么问题!! 高分求救!!急!!关于无法找到动态连接库的问题。 指纹算法 Java Developer Interbase如何自动保存更新 请教数据库连接池的使用.... 不要以为你不骂人你的素质就比那些骂街的高了,如果你卖国那么你的素质比那些骂街的更低,因为你基本不具备一个人的素质了 哪位有有关Vtune的相关资料呀,提供链接也行,最好是指南一类的,3X。 编程几年了,没有希望,想改行,你们呢? 有谁做过“文物馆的文物或藏品综合管理系统”如能提供资料或动者!本人感谢! 入门时奇怪问题? 如何把*.IMG文件转换为JPG文件? 其实你不懂我的心 那里可以买到microchip的mcp2150 ,(要现货),比较紧急,请帮忙 关于对2进制文件的操作 将去做SAP ABAP4平台编程,用过的请进。up有分。 C的图形问题? 法国教育与美国教育有哪些异同点? 法国的权利中心是议会还是总统?如题,请加适当的解说.不要长篇粘帖. 我不懂错在哪里. 法国车与美国车有什么区别 指出共和制下法国议会有哪些权力 高中生物~以下几句话哪里错了?以下几句话哪里错了? 1,抗原一旦突破了由人体皮肤,黏膜以及体液中的杀菌物质等组成的防线就会引起特异性免疫反应 2,细胞免疫是建立在体液免疫的基础上的 生物因素是指()某种生物生活的().两者之间,最常见的是()、()、()等等 除草剂对人体有害吗蔬菜给坏人喷了除草剂,有些菜枯了,其他的菜还可以吃吗? 高一生物遗传学D错在哪里 各种生物之间最主要的关系是什么关系 2.24g某铁矿石中含氧化铁1.6g,则此铁矿石中含铁的质量分数是A71% B50% C70% D30% 用墨西哥,阿拉伯,新加坡,好望角,罗马,澳门,名古屋造一段话 生物之间的三种常见关系 求所有答案,第3题如果觉得所有的选项都不对的话,可以说出来,因为还有一个选项 墨西哥 阿拉伯 新加坡 好望角 罗马 澳门 名古屋 写一段话 (不要爬山的那个故事) 生物与生物之间最明显的关系是什么关系? 在编程中,函数是什么意思啊 美国和法国共和制的区别 生物与生物间有些什么关系 函数当中$什么意思 美国共和制和法国共和制不同点 函数的去心领域, 函数中的对应关系是什么意思 除草剂草甘磷对人有危害吗 君主立宪制和半总统共和制、内阁、议会到底是什么意思?第一:君主立宪制到底是一个什么样的政治体系叙述下?那个立宪是何种意义?君主立宪制又分为虚元君主和实元君主,是不是指的就是 含有什么基团可与羟胺反应 世界上真的有鬼吗?有人真的看到过吗? 美国属于议会共和制,还是总统共和制? $E$8在函数中是什么意思? 神是四维世界的生物吗?通往其的媒介是什么? 总统共和制和议会共和制的异同 酮和酸反应生成什么 求解邻苯乙二酮重排机理. 220v的电压变成5V有几种方法 能和羟胺发生反应的有机物的特征是什么比如说C10H20O 能和羟胺反应 且能发生卤仿反应 这是什么 或有什么典型特征 邻酮的全名是什么?怎么写?请赐教. △ABC的三条边长分别是a,b,c且 (c的平方乘a的平方)减去(c的平方乘b的平方)=a的四次方减去b的四次方问三角形的形状?得:c的平方(a的平方减去b的平方)=(a的平方+b的平方)(a的平方减去b的平方) 1 c 苄基苯酮和羟胺反应的产物解释产物好诡异啊,怎么会冒出个 =NOH 来的? 邻酮管制了,找不到了 小华站在房前,面向东方.如果她向右转90度,面向【 】;如果她向左转90度,则面向【 】方;如果她向后转,则面向【 】方. 能和羟胺发生反应的有机物的特征是什么拜托了各位 比如说C10H20O 能和羟胺反应 且能发生卤仿反应 这是什么 或有什么典型特征 邻酮是禁品难吗?哪里有卖啊有胺也可以,加我2677958968 晴朗的白天,天空多呈蔚蓝色,这是由于大气对太阳辐射的什么作用? 请问我这道题做的对吗?对的话请打√,错的话请打×. 法兰西第三共和国是总统共和制国家还是议会制共和制国家 已知定义在R上的函数y=f(x)的图像是一条不间断的曲线,f(a)≠f(b),其中a 豆豆面向南站立,向左转40°后所面对的方向是( );齐齐面向东站立,向右转40°后所面对的豆豆面向南站立,向左转40°后所面对的方向是( );齐齐面向东站立,向右转40°后所面对的方向是( 法兰西第三共和国是总统共和制还是议会制共和制?议会制共和制主要特征:政府由议会产生,对议会负责,总统只有虚位没有实权,总理掌握最高行政权,到底法兰西第三共和国有没有内阁总理? 1.定义在R上的函数f(x)及其导函数f′(x)的图像都是连续不断的曲线,且对于实数a,b(a0,f′(b)f(b); (3)存在x.属于[a,b],f(x.) f(a); (4)存在x.属于[a,b],f(a)-f(b)>f′(x.)(a-b) 其中结论正确的个数是( ) A.1 B.2 &在函数是什么意思 除草剂对草莓有什么危害吗? 大勇家的果园今年收苹果8.4吨,比去年的2倍少0.2吨,去年收苹果多少吨?用方程解 函数是什么意思? 一块试验田今年的水稻产量是720kg,比去年增长6分之1,去年水稻产量是多少kg? 大勇家的果园今年收获苹果8.4千克,比去年的2倍少0.2千克,去年苹果多少千克. 法国的权力中心到底是总统还是议会 高一生物:这两个结构错在哪里?如图: 中国、美国和法国的选举制度的不同谢谢!请详细一些,我要写论文的 哪些除草剂对后茬作物有害 同种个体之间的各个DNA分子是完全相同的
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘