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

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对低层硬件的访问控制。下面通过一个显示键盘中断次数和按键扫描码的示例介绍控件的使用过程。

---- 1、下载TVicHW32压缩软件包并解压到一个目录中,如\HW。把driver子目录下的vichw00.vxd文件拷贝到\windows\system子目录下,该文件是控件访问硬件的驱动程序,使用控件前先用OpenDriver打开,最后用Close_Driver方法关闭。

---- 2、把ocx子目录下的tvichw32.ocx拷贝到\windows\system子目录下,并在DOS命令行状态下键入以下命令进行注册。

---- regsvr32 tvichw32.ocx

---- 3 、在VB环境下通过菜单工程--部件--控件并选择TVicHW32 ActiveX Control Module将控件添加到工具箱中。

---- 4、相关的属性、方法及事件

---- 方法 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

not(el)-JQuery API parent(expr)-JQuery API parents(expr)-JQuery API prev(expr)-JQuery API siblings(expr)-JQuery API Events事件-JQuery API bind(type,data,fn)-JQuery API blur(fn) -JQuery API blur() -JQuery API change(fn) -JQuery API click(fn)-JQuery API click()-JQuery API dblclick(fn) -JQuery API error(fn) -JQuery API focus(fn)-JQuery API focus() -JQuery API hover(over,out)-JQuery API keydown(fn) -JQuery API keypress(fn)-JQuery API keyup(fn)-JQuery API load(fn)-JQuery API mousedown(fn)-JQuery API mousemove(fn)-JQuery API mouseout(fn)-JQuery API mouseover(fn)-JQuery API mouseup(fn)-JQuery API one(type,data,fn)-JQuery API ready(fn)-JQuery API resize(fn)-JQuery API scroll(fn)-JQuery API select(fn)-JQuery API 用sdk编程怎样加入toolbar? table里的查询字段为什么不会显示数据? c#与interbase请教 C语言的大小问题都在这里面? 不要编译,你猜猜这个程序会有几个类型匹配的警告? 不要编译,你猜猜这个程序会有几个类型匹配的警告? 高分解问,请教高手!关天GIS! 如何判断窗体中的某个控件是textbox控件?或判断窗体中textbox的个数? 如何调用返回不定字段个数的存储过程 那里能找到rational rose 有关FORM与ACCESS数据库的连接 如何使用photoshop把图像缩小到指定大小? 关于某种文件关联的问题 为什么用net send发送的消息有关不掉,点了好多次确定也没用。 怎么保存到数据库中?急急急! 电脑出问题了。 tomcat4.01+apache2.046组合问题:单个的都能运行,...可以加分.. %u的问题 如何调整对话框上工具栏的状态 关于query控件的一个问题 如何结束一个线程? FastReport怎么将没有记录的地方也画上格子??? 我的oracle9装上去之后怎么有7。2G那么大??并且还连不上MANAGEMENT SERVER只能独立启动??请指教!! Fastreport与quickreport那个更好用? 进者有分. 强烈要求铲除全国所有的收容所!!! 要用什么软件才能将CMOS参数备份到某个文件夹中? 请问怎么在建表代码里定义关键字? 请问把数据写入ListView控件内,有什么办法可以快点? win2k server dns 求助! 我在易趣上竞的一个数码相机,只要250元,但是只能拍26张相。我不知道是真是假? 一个搞不定的恶意网站 cout与printf的问题 没有路由怎样用一台服务器实现300台左右的电脑上网? ResultSet里读出数据的参数问题,马上给分 netvt(唯她 v1.1.1),进来拿你应得的分 如果我的程序中用了VFP,但是用户可能并没有装VFP,有什么好的办法直接替用户解决了这个问题,而不是提醒他自己去装 怎么保存到数据库中?急急急! 我用treeview显示数据库的数据,增加一条新记录后,要怎么样才能马上在treeview显示? 无法传值问题,高手急救!!!!!!!!! 在线等待:怎么为datagrid控件的某一格赋值? 请教如何在input上传筐里面限制文件类型? java的图形设计比如swing有前途吗?大家来讨论下,迷惑中。。。 计算机静电问题!! 错误在那里 请教批量update出错问题 请问串口方面的? QQ使用MFC42.DLL, 数据库的记录有文本、有图片、我想给它排成word样式的A4版预览、再打印如何实现 请问,如何在Form中画图啊??/ 水晶报表问题。急呀!! 一个奇怪的问题 邱少云在牺牲时夺取的是什么 近五年来,青蛙(田鸡)肉走上餐桌,假如人们大量捕杀这种农田中的青蛙.这样带来的后果是( ).“假如人们大量捕杀这种农田中的青蛙.”中的这种农田是指:水稻,稻螟虫,蚯蚓,蛇,蜜蜂,野 求“单丝不成线,独木不成林.”的意思?快 一朵鲜花点缀不出绚丽的春天.仿造例子,再写一句,与其格式相同. cf潘多拉角色有什么优点,比起灵狐怎么样? 主序星和超新星有什么区别呢?主序星和超新星有什么区别呢?主序星除了成为红巨星还能成为什么?超新星爆发除了能成为中子星外,能成为红巨星或黑洞吗? 一朵鲜花点缀不出绚丽的春天仿写 邱少云哪年牺牲的? 长大后我就成了你阅读答案1.写出下类词语的近义词以为( )美丽( )奉献( )希望( )2.歌词中的“小鸟”指的是( ),“你”指的是( ).抄出赞颂“你”的诗句.(共四处)3.歌词中的 西方管理思想产生的背景是什么? We don't do much b()with foreign companies.首字母填空 《长大后我就成了你》阅读短文答案 /1题小时候我以为你很美丽,领着一群小鸟飞来飞去;小时候我以为你很神气,说上一句话也惊天动地.长大后我就成了你,才知道那间教室放飞的是希望,守 一个物体放在一个斜面上,这时物体对斜面有压力吗 (生物)有人爱吃青蛙,为此便有人大量捕捉野生青蛙,这种做法会产生什么后果? 长大后我就成了你 阅读短文答案小时候我以为你很美丽,领着一群小鸟飞来飞去;小时候我以为你很神气,说上一句话也惊天动地.长大后我就成了你,才知道那间教室放飞的是希望,守巢的总是 有些人爱吃蛙肉,为此便有人大量捕捉野生青蛙,这种做法会产生怎样的后果? 已知点a(1,0)和b(3,-1).若点m是y轴上一点,且满足△abm是直角三角形,则点m的坐标是 文言文《杯弓蛇影》全文意思 有些人爱吃肉,为此便有人大量捕捉野生青蛙,这种做法会产生怎样的后果? 如图,直线y=kx+6与x轴,y轴分别交于点A、B,△ABO等腰直角三角形. (1)求函数解析式.我会做2)已知点C(4,0),点P是线段AB上的一点,且△POC是以PC为一腰的等腰三角形,求点P的坐标 word如何让表格的任意一条表加粗? 圆O1的半径是2cm,圆O2的半径是5cm,圆心距是4cm,则两圆的关系是 A.相交 B.外切 C.外离 D.内切圆O1的半径是2cm,圆O2的半径是5cm,圆心距是4cm,则两圆的关系是A.相交 B.外切 C.外离 D.内切 宇宙飞船在月球着落,宇航员在登上月球后,在月面上用天平测物体的质量,结果是什么 如何将word中的表格的上下线加粗为1.5磅,其余为0.5磅 隐形飞机的隐形原理是什么?如何做到隐形? 海贼王超新星是什么意思 ps中如何在保持选区位置不变的情况下,移动选区中的内容? 隐形飞机为什么能隐形,的原理是什么? 超新星与新星有什么区别? word中如何加粗表格线 已知两个圆的半径分别为3cm和5cm,并且两圆没有公共点,则两圆的圆心距的取值范围是 六月五日是世界环境日、老师号召同学们爱护环境,从每个人做起.如果你想提醒同学们保护好校园新栽的小草,你应该怎么和同学们说呢? PS 如何移动绘制中选区在PS里,如何在边绘制选区(比如绘制圆形选区)过程中边调整绘制位置呢? “有些人爱吃蛙肉,为此便有人大量捕捉野生青蛙,这种做法会产生怎样的后果? 英语翻译your father wants you to take a training,class on management skins,you are an wining,to do so your classmate persuades you to attend the training.帮个忙 在下追加财富 word怎么加粗表格 有些人爱吃蛙肉,为此便有人大量扑捉野生青蛙,这种做法会产生怎么样的后果 长大后我就成了你作文500字 显微镜对生物起到什么作用举例 那一天我忘不了 作文 英语翻译rt 3q 我寄愁心与明月,后面半句是什么?现在就要! 作文字数:500---600.. 长大后我就成了你 六下练习册P115页阅读答案 副词有哪几类 CF潘多拉好吗?我买了,到底有什么好处 请问大家"我被这件事情感动了"用英语如何翻译啊~口语化点的哦~ ( )地模拟填上合适的词语 人们大量捕杀青蛙会产生怎样的严重后果? 三只蚂蚁一起走,中间的说我两边各一只,右边的说我左边有两只,左边的说我右边没有为什么? “种类”是副词吗 大量扑抓青蛙,后果怎样? 独木不成林的后一句急 填上恰当的词语 凝聚什么 模仿什么 从跳高 等分析我主要玩JU ____,独木不成林 这类副词的用法?angrily differently excitrdly excitingly interestingly decisively 这类副词怎么使用?我觉得它们和形容词的意思差不多啊?怎么区别它们和形容词用法差异呢? 如果大量捕杀青蛙,你觉得会造成怎样的后果.简答,100字以内. 文学——白杨树的湖中倒影 为什麽需要文学?了解文学、接近文学,对我们形成价值判断有什麽关系?如果说,文学有一百种所谓「功能」而我必须选择一种最重要的,我的答案是:德文有一个很 什么类型的副词可以做表语 韩国总统好感度调查出炉 卢武铉居首李最高法出台纲领性文件 强化依法办案理伊朗将举行系列会谈 为新一轮核问题谈上海历史博物馆获赠民国老股票 留有杜温州办公用房改革搁浅 官方表示执行起2013全球EMBA百强排行榜 清华两大报业集团合并 上海报业集团今天挂官员谈上海自贸区制度创新 政府职能转江苏省长李学勇:划定生态红线 建立补开封官方回应批准庄园打深水井事件称:江苏通报今秋秸秆焚烧“第一把火”处理公园免费后质量下降 南京市民质问财政南京出现“烂尾工程”现象 财政部门称南京财政局谈政府采购“挑贵的买”:综南京中小河治理工程将收官:14条河流苏州小朋友上演变装T台秀迎接万圣节马来西亚副首相为选举造势 出席者可获日本内阁官房副长官力挺《特定秘密保护数据显示中国赴美名校留学生每4人就有韩称中韩2014年起联手管制黄海非法法国数百活动人员斗牛场前集结 抗议斗英军情5处登招聘广告监视俄间谍3小伙晚上灞河边游玩 2人溺亡鸟儿好客当模特不走了涉案教导主任已被停职母子俩落水小学教师救人不留名683名穆兄会成员及支持者判死陕西村主任夫妇遭2青年劫杀:丈夫中数我国首个铁路区域警务协作机制在西安建2014全国少年儿童阅读年启动本报文艺部与上饶市委宣传部联合举办电东方儿童屏幕高峰论坛将举行以书为媒我国成立全国性专家委员会规范藏语新词《竺可桢全集》24卷出齐三问著作权法修改曝长跑打人者系5公里跑选手 无需用身西藏三村落入选中国历史文化名村健身气功进百城千村人民出版社向首都的士司机赠书圣旨都是金黄色吗?开头都是“皇帝诏曰百万元宝马试驾时正常 正要返回时车头
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘