作用能够清晰此问题?(150分)

  • 主题发起人 主题发起人 wwxxcc
  • 开始时间 开始时间
W

wwxxcc

Unregistered / Unconfirmed
GUEST, unregistred user!
在VB环境中,如何能够有一种直观的方法,使得系统对外设(不是通过通信方式),
或物理口地址,进行操作;特别对于WIN95以上的系统?。
例如,在地址为H300的端口,能够随机地读出,或写入数据。谢谢!
 
VB在这方面很弱!
 
先用Delphi或vc编一个读端口的程序,然后在vb中调用。
《电子与电脑》有例!
 
用'端口'检索一下会对你有帮助!
 
朋友,在WIN95 或98上能行吗?
 
VB有这方面的控件,解决起来容易些.
去VB站点看看吧.
 
我没有见过他用c语言编的代码。但是我想用delphi来实现也并不难的。,
在delphi中,是可以内嵌汇编代码的。如果你略通一点汇编,那么遍一个符合你要求的端口读写程序是容易的。
举个例子:如果你要读的端口是 100
那么你在delphi中的代码看起来象下面这样:
procedrue WPort(port:byte;data:byte);
begin
asm
mov al,data;
out port,al;
End;
End;

function Rport(port:byte):byte;
Begin
asm
in al,port;
result:=al;
End;
End;
调用时如下:wport(100,5);
a:=rport(100);
注:以上代码因为时间的关系,没有经过调试,并且只适用于读写端口号小于255的端口.
希望对你有用。
如果我找到了《电子与电脑》的原文,我会发给你.
 
VB有这方面的第三方控件包,主要是给工控用的。
我记的还挺出名的,你在网络上查下好了。
 
得花钱的吧?
 
Q14. 在VB中如何直接对内存口地址进行数据读写

  刘顺 (E-mail):

  在VB中如何直接对内存口地址进行数据读写?(我需要与电脑内的一块通讯卡进行数据交换,其地址为300H,301H。)

  李海:这是我最经常被问到的三个问题之一(另两个是VB是否是面向对象的语言和如何打印DBGrid)。VB不像Quick Basic那样,它没有提供Inp、Out这样的语句来直接操作I/O口。在本刊去年的两期杂志中,我介绍了如何使用C语言编写一个DLL,然后在VB中进行调用。不过很多VB的用户不熟悉C语言,在编译DLL上遇到了一些麻烦。你可以从http://www.netease.com/~zealsoft/downc.html下载编译好的VBIO.DLL。在这个软件中包括有VB的程序示例,你可以参考。
 
95/98可以直接读写端口

nt就不行了
 
接受答案了.
 
端口读写、API HOOK、屏幕取词的完整解决方案见我的《delphi深入windows核心编程》一书,
支持win98/2000/xp,
我的主页http://wenjinshan.yeah.net
 
后退
顶部