
正文
vb.net模拟键盘输入 vbnet输入输出方法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
请问如何用VB程序来模拟键盘操作
set ws=createobject("wscript.shell")
ws.sendKeys "^{esc}r"VBS中SendKeys的基本应用模拟键盘操作,将一个或多个按键指令发送到指定Windows窗口来控制应用程序运行,
其使用格式为:object.SendKeys string
“object”:表示WshShell对象
“string”:表示要发送的按键指令字符串,需要放在英文双引号中。
1.基本键
一般来说,要发送的按键指令都可以直接用该按键字符本身来表示,例如要发送字母“x”,使用“WshShell.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}"
←---------WshShell.SendKeys "{RIGHT}"
↑---------WshShell.SendKeys "{UP}"
F1---------WshShell.SendKeys "{F1}"
Tips:如果需要发送多个重复的单字母按键,不必重复输入该字母,SendKeys允许使用简化格式进行描述,使用格式为“{按键 数字}”。例如要发送10个字母“x”,则输入“WshShell.SendKeys "{x 10}"”即可。
实例:
----------------------------------------------------
按下F5刷新桌面
Dim WshShell,Path,i
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "{F5}"
----------------------------------------------------
电脑的自动重启
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}u"
WshShell.SendKeys "R"
----------------------------------------------------
启动任务管理器
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^+{ESC}"
相关问答
Q1: VB.net编写一个控制台应用程序用来从键盘上输入两个数然后输出这两个数的和差积商
应该定义为double或者single,string类好像不能进行运算。我简单说一下控制台的方法,你要一次性输入和差积商,首先声明两个变量用来储存两个数,然后用算法一次性输出结果就ok。
Sub Main()
Dim FN As Single
Dim SN As Single
Dim ResultNum As Single
Console.WriteLine("请输入第一个数") : FN = Console.ReadLine
Console.WriteLine("请输入第二个数") : SN = Console.ReadLine
ResultNum = FN + SN
Console.WriteLine("它们的和: " ResultNum)
ResultNum = FN - SN
Console.WriteLine("它们的差: " ResultNum)
ResultNum = FN * SN
Console.WriteLine("它们的积: " ResultNum)
ResultNum = FN / SN
Console.WriteLine("它们的商: " ResultNum)
Console.ReadLine()
End Sub
Q2: VB 怎么模拟键盘 输入,包括键盘的每一个健 TAB 也要?
tab是
"{TAB}".==========SendKeys
语句
将一个或多个按键消息发送到活动窗口vb.net模拟键盘输入,就如同在键盘上进行输入一样。语法SendKeys
string[,
wait]SendKeys
语句的语法具有以下几个命名参数vb.net模拟键盘输入:部分
描述
string
必需的。字符串表达式vb.net模拟键盘输入,指定要发送的按键消息。
Wait
可选的。指定等待方式的
BooleandefBooleanDataType@veendf98.chm
值。如果为
False(缺省值)vb.net模拟键盘输入,则控件在按键发送出去之后立刻返回到过程。如果为
True,则按键消息必须在控件返回到过程之前加以处理。
说明每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母
A,可以用
"A"
作为
string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示
A、B
及
C,可用
"ABC"
作为
string。对
SendKeys
来说,加号
(+)、插入符
(^)、百分比符号
(%)、上划线
(~)
及圆括号
(
)
都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号
({})
当中。例如,要指定正号,可用
{+}
表示。方括号
([
])
对
SendKeys
来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换
(DDE)
的时候,它可能具有重要意义。为了指定大括号字符,请使用
{{}
及
{}}。为了在按下按键时指定那些不显示的字符,例如
ENTER
或
TAB
以及那些表示动作而非字符的按键,请使用下列代码:按键
代码
BACKSPACE
{BACKSPACE},
{BS},
或
{BKSP}
BREAK
{BREAK}
CAPS
LOCK
{CAPSLOCK}
DEL
or
DELETE
{DELETE}
或
{DEL}
DOWN
ARROW
{DOWN}
END
{END}
ENTER
{ENTER}或
~
ESC
{ESC}
HELP
{HELP}
HOME
{HOME}
INS
or
INSERT
{INSERT}
或
{INS}
LEFT
ARROW
{LEFT}
NUM
LOCK
{NUMLOCK}
PAGE
DOWN
{PGDN}
PAGE
UP
{PGUP}
SCREEN
{PRTSC}
RIGHT
ARROW
{RIGHT}
SCROLL
LOCK
{SCROLLLOCK}
TAB
{TAB}
UP
ARROW
{UP}
F1
{F1}
F2
{F2}
F3
{F3}
F4
{F4}
F5
{F5}
F6
{F6}
F7
{F7}
F8
{F8}
F9
{F9}
F10
{F10}
F11
{F11}
F12
{F12}
F13
{F13}
F14
{F14}
F15
{F15}
F16
{F16}
为了指定那些与
SHIFT、CTRL
及
ALT
等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:按键
代码
SHIFT
+
CTRL
^
ALT
%
为了说明在按下其它按键时应同时按下
SHIFT、CTRL、及
ALT
的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下
E
与
C
的时候同时按下
SHIFT
键,请使用
"+(EC)"。为了说明在按下
E
的时候同时按下
SHIFT
键,但接着按
C
而不按
SHIFT,则使用
"+EC"。为了指定重复键,使用
{key
number}
的形式。必须在
key
与
number
之间放置一个空格。例如,{LEFT
42}
意指
42
次按下
LEFT
ARROW
键;{h
10}
则是指
10
次按下
H
键。注意
不能用
SendKeys
将按键消息发送到这样一个应用程序,这个应用程序并没有被设计成在
Microsoft
Windows
中运行。Sendkeys
也无法将
SCREEN
按键
{PRTSC}
发送到任何应用程序。
参考资料:MSDN
Q3: VB.NET模拟键盘的方法
例vb.net模拟键盘输入:SendKeys.Send("4");
特殊键带“{}”普通直接“”
Q4: 寻VB.NET下winio(驱动级模拟按键)的键盘使用方法
这是不可能完成的任务,.NET平台不存在开发驱动的能力,你要想在驱动层对键盘操作,最好使用C,C++来实现,比较方便。 像现在一些比较出名的网络游戏,都是在驱动层进行保护的。
Q5: VB.NET 向指定(网页或软件)的输入框内输入字符,如何实现?
假如Form1有个TextBox1,双击TextBox1填入123
Public Class Form1
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub TextBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.DoubleClick
System.Windows.Forms.SendKeys.Send("123")
End Sub
End Class
看你的VB.NET 版本了
用 My.Computer.Keyboard.SendKeys("123", True) 代替 System.Windows.Forms.SendKeys.Send("123") 也可以
原码:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub TextBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.DoubleClick
My.Computer.Keyboard.SendKeys("123", True)
End Sub
End Class
关于vb.net模拟键盘输入和vbnet输入输出方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







