Visual Basic中实现I/O端口控制

2016-01-29 12:09 21 1 收藏

Visual Basic中实现I/O端口控制,Visual Basic中实现I/O端口控制

【 tulaoshi.com - vb 】

  如果你在Windows下使用过C/C++,那么编写这样的DLL可能没有什么困难。在C语言里都包括inp和outp函数。可以把下面这段C语言代码(32位)编译生成DLL,然后在VB中调用。

#include
#include
/*作用:从指定端口读入一个字节
参数:portid端口号
返回值:读入的字节*/
int _stdcall Inport(short portid)
{
 return inp(portid);}
 /*作用:向指定端口写入一个字节
 参数:portid端口号*/
 void _stdcall output(short portid,short byte)
 {
  outp(portid,byte);
 }
 /*作用:从指定端口读入一个字节
 参数:portid端口号
 返回值:读入的字节*/
 int _stdcall Inportw(short portid)
 {
  return inpw(portid);}
  /*作用:向指定端口写入一个字节
   参数:portid端口号*/
  void _stdcall Outportw(short portid,short word)
  {
   outpw(portid,(unsigned short) word);
  }
  注意:这种方法只能用于Windows 95/98,不能用于Windows NT。

  VB6.0中DRAGDROP事件与DRAGOVER事件的使用

  在WINDOWS中,拖动意味着移动光标到对象上,按住鼠标,接着移动鼠标使对象在屏幕内滑动以重新定位对象。当释放鼠标按钮时,在拖动对象所在控件边界内放开鼠标会触发DragDrop事件。如果放开鼠标时对象不在一个控件的上面,那么对象定位于窗体本身。

  拖动对象的DragDrop事件不是用来存放有关放开对象时执行某些指令的地方。而应将这些指令放到背景的DragDrop事件中或者拖动对象所放开的目标控件中。

  一个DragDrop事件提供三条信息--DragDrop(Source as Control,X as Single,Y as Single)Source,是已经放开的图片,图标或控件。X和Y值,是放开事件所在目表对象的水平和垂直方向位置。如:

Sub pictrue1-DragDrop(Source as Control,X as Single,Y as Single)
Pictrue1.DrawWidth=6
picture1.pset(x,y),QBcolor(4)
End Sub
  当一个控件拖动到另一个之上时,发生一个DragOver事件,以警告被入侵的控件或窗体发生了拖动。一个DragOver事件提供四条信息:

DragOver(Source as conterol,X as Single,Y as Single,State as Integer)
  "Source"为入侵者标志。入侵者在被入侵的控件或窗体内的当前位置由X,Y来确定入侵者的状态,如是否刚刚进入。仍在其内或将要离开等由State变量报告。

  通过允许用户拖动一个指针在屏幕上移动,接触窗口内的不同区域引起事情发生。一种常用的编程技术是和一状态栏一同使用。状态栏随程序运行时的情况而改变,报告光标的当前位置,变量如Font等的状态,提供一种有效的帮助功能。

  如何判断某一个Drive是否为光碟机?

  须调用 Windows API 的 GetDriveType ,首先 声 明 以 下 API :

Declare Function GetDriveType Lib "kernel32" Alias _
"GetDriveTypeA" (ByVal nDrive As String) As Long
  然后将以上的声明放在.bas的一般模块中,如果放在 Form 之中, 须在Declare之前再加上 Private。 然后使用以下叙述调用 :

  ret = GetDriveType ( "D:")

  若传回值 ret 等于 5 , 即表示 "D:" 为光碟机 , 至于其他传回值的意义则是 :

  2:软碟, 3:硬碟, 4:Server端磁碟, 6:RAMDISK。

  如何过滤键盘录入

  在 VB 的应用得到以前就处理键盘动作, 实现对键盘的全面控制, 可过滤任意的键。 下面的例子过滤了 CTRL+C 键, 并把该键模拟为在 Command1 上单击。

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn A

来源:http://www.tulaoshi.com/n/20160129/1484844.html

延伸阅读
本章的内容包括如何安装 Visual Basic,添加或删除 Visual Basic 部件,Visual Basic 的学习资料及如何得到更多的帮助。 目录 欢迎使用 Visual Basic 安装 Visual Basic 实际工作中的助手 欢迎使用 Visual Basic 欢迎使用 Microsoft Visual Basic,它提供了开发 Microsoft Windows(R) 应用程序最迅速、最简...
为了理解应用程序开发过程,先要理解 Visual Basic 赖以创建的一些关键概念。因为 Visual Basic 是 Windows 开发语言,所以有必要与 Windows 环境保持一定的相似性。如果不熟悉 Windows 编程,就需要明白在 Windows环境下编程和在其它环境下编程的一些根本性的差别。 Windows 的工作方式:窗口、事件和消息 全面地讨论 Windows ...
运行安装程序时将会为 Visual Basic 创建目录,从而可选择要安装的 VisualBasic 部件。 除了 \Os 目录下的操作系统文件,CD 上的其它文件是没有被压缩的,所以可从盘上直接使用。例如,在 \Tools 目录下有许多的工具和部件,可以直接从 CD-ROM 运行或安装。 要从 CD 盘上安装,请按照以下步骤执行: 1. 在 CD-ROM 驱动器中...
使用 CommandButton 控件 命令按钮控件被用来启动、中断或结束一个进程。单击它时将调用已写入Click 事件过程中的命令。 大多数 Visual Basic 应用程序中都有命令按钮,用户可以单击按钮执行操作。单击时,按钮不仅能执行相应的操作,而且看起来就象是被按下和松开一样,因此有时称其为下压按钮。 详细信息 关于 CommandB...
标签: vb
扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。 XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,...

经验教程

51

收藏

5
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部