通俗基础教程
电脑操作教程
电脑怎样拨号上网
如何做个人网页
怎样做局域网
Word教程(文字处理)
图形图象处理入门
经典提高教程
怎样使用代理服务器
如何做无盘工作站
Photoshop教程
Dreamweaver3教程
Flash4&5教程
Firework3教程
Frontpage2000教程
Authware教程
Office2000教程
如何制作动画图片
OICQ&ICQ使用方法

高手学习指南

硬件升级技巧
CGI教程
ASP教程

PHP教程

注册表使用技巧
路由器的设置
网站建设指南
SQL
最近更新:
Flash
相关内容

用VB切换三个特殊键 ——CapsLock键、NumLock键、ScrollLock键的状态

  在用VB编制应用程序时,经常遇到这种情况:有时需要大写;有时则需要小写输入汉字;有时需用数字小键盘输入数据等。这些情况都涉及三个特殊键——CapsLock键、NumLo ck键、ScrollLock键的使用。本文将介绍如何在应用程序中自动控制这三个特殊键的状态。
  实现原理
  这三个特殊键(CapsLock键、NumLock键、ScrollLock键)有时候可以称为切换(Togg le)键,即可将它们从一种状态切换到另一种状态。确定单个切换键的当前状态是可能的,但不能独立地改变这些键的状态。为了改变它们的状态,需要改动并修改键盘的状态图。键盘状态图是一个字节数组,其中包含了每个键的当前状态,可以利用该数组检索、修改并更新键盘状态图。Windows 95 API函数提供了实现上述操作的功能。GetKeyboardS tate函数用来将256个虚拟键的状态拷贝到指定的缓冲区中。其中pbKeyState参数的每个字节包含一个虚拟键的状态数据。若NumLock键被打开,则pbKeyState参数的对应值为1, 否则为0。SetKeyboardState函数用来将键盘状态数组拷贝到键盘状态表中。
  实现方法
  1. 建立含有如下控件的窗体: 表1
  2. 在目标文件列表(OBJECT)中选择GENERAL,在过程列表(PROC) 中选择DECLARATION S(声明),系统进入窗体级代码的定义窗口中。输入如下定义:
  Option Explicit
  Private Declare Function GetKeyboardStateLib "user32"Ali as(ByVal pbKeySt ate As String)As Boolean
  Private Declare Function SetKeyboardStateLib "user32"(By Val lppbKeyState As String)As Boolean
  Const VK_CAPITAL=&H14 'CapsLock键代码
  Const VK_NUMLOCK=&H90 'NumLock键代码
  Const VK_SCROLL=&H91  'ScrollLock键代码
  3. 在命令按钮1单击事件中,输入如下代码:
  Private Command1_Click() '切换CapsLock键的状态
  Dim tCaption As String
  tCaption=Command1.Caption
  If Instr(1,tCaption,"On")>0 then
   Call ToggleStateSet(VK_CAPITAL,True)
  Label1.BackColor=vbWhite
  '若CapsLock键是Off时,指示灯为白色
   Command1.Caption="CapsLockOff"
  Else
   Call ToggleStateSet(VK_CAPITAL,False)
   Label1.BackColor=vbGreen
  '若CapsLock键是On时,指示灯为绿色
   Command1.Caption="CapsLockOn"
  End If
  End Sub
  命令按钮2和3单击事件的代码与按钮1类似,分别切换Num Lock键和Scroll Lock键的状态。
  4. 在命令按钮4单击事件中,输入如下代码:
  Private Command4_Click()
  End
  End Sub
  5. 在设置三个特殊键状态转换事件中,输入如下代码:
  Sub ToggleStateSet(nKeyCode As Integer,bState As Boolean )
  Dim tKeyboardMap As String*256
  Dim bResult
  tKeyboardMap=String$(255,0)
  bResult=GetKeyboardState(tKeyboardMap)
  If bState=True Then
   Mid$(tKeyboardMap,nKeyCode+1,1)=‘1'
  Else
  Mid$(tKeyboardMap,nKeyCode+1,1)=‘0'
  End If
  bResult=SetKeyboardState(tKeyboardMap)
  EndSub
  上述程序在同创P/200、中文Windows 95、Windows NT 4.0、Vi sual Basic 5.0软硬件环境下运行通过。
  江苏 蔡可训

用VB实现多文件查找与替换功能
用VB 5.0 设计Browser及FTP程序
用Visual Basic 5.0设计E-mail程序
谈谈WIN API在VB中的应用
在VB中使用Word的“艺术字”工具
获取Win95特殊目录准确路径
配置文件.ini在VB5中的应用
控制结构VB5程序设计
用VB切换三个特殊键
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
教程站
收集整理



月光软件源码下载编程文档电脑教程网站优化网址导航网络文学游戏天地生活休闲写作范文安妮宝贝站内搜索
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有