急!急!急!VBS怎样模拟键盘发送 Alt + Enter??
为什么我用"%{enter}"、"%+{Enter}"、"%({Enter})"都无法成功发送啊!我想把DOS窗口激活然后用发Alt+ENTER。可是结果发送的、只是EN...
为什么我用 "%{enter}" 、"%+{Enter}"、"%({Enter})" 都无法成功发送啊!
我想把DOS窗口激活然后用发Alt+ENTER 。可是结果发送的、只是ENTER 不信你可以试一下,我是先激活的它的窗口的 "C:\windows\system32\cmd.exe" 然后发送 Alt + ENTER 结果发送出去的是Enter ,不信你可以试一下,先打开一个cmd窗口然后用vbs向他发送Alt +enter.谁能帮我解决问题再加分!!!! 展开
我想把DOS窗口激活然后用发Alt+ENTER 。可是结果发送的、只是ENTER 不信你可以试一下,我是先激活的它的窗口的 "C:\windows\system32\cmd.exe" 然后发送 Alt + ENTER 结果发送出去的是Enter ,不信你可以试一下,先打开一个cmd窗口然后用vbs向他发送Alt +enter.谁能帮我解决问题再加分!!!! 展开
3个回答
展开全部
给你点详细的资料
Windows 脚本宿主
SendKeys 方法
请参阅
WshShell 对象 | Run 方法
将一个或多个键击发送到活动窗口(仿佛是在键盘上击键一样)。
object.SendKeys(string)
参数
object
WshShell 对象。
string
表示要发送的键击(一个或多个)的字符串值。
说明
使用 SendKeys 方法可以将键击发送到无自动化界面的应用程序中。多数键盘字符都可用一个键击表示。某些键盘字符由多个键击组合而成(例如,CTRL+SHIFT+HOME)。要发送单个键盘字符,请将字符本身作为 string 参数发送。例如,要发送字母 x,则请发送 string 参数 "x"。
注意 要发送空格,则请发送字符串 " "。
可使用 SendKeys 同时发送多个键击。为此,可将每个键击按顺序排列在一起,以此来创建表示一系列键击的复合字符串参数。例如,要发送键击 a、b 和 c,则需要发送字符串参数 "abc"。SendKeys 方法将某些字符用作字符的修饰符(而不使用其本身的含义)。这组特殊的字符可包括圆括号、中括号、大括号,以及:
加号 "+"、
插入记号 "^"、
百分号 "%"、
和“非”符号 "~"。
用大括号 ""。SendKeys中使用的中括号 "[ ]" 无任何特殊含义,但是必须把它们括在大括号中,以便容纳确实要赋予其特殊含义的应用程序(例如,对于动态数据交换 (DDE) 就是这样)。
要发送左中括号字符,请发送字符串参数 ""。
要发送左大括号字符,请发送字符串参数 "";要发送右大括号字符,请发送字符串参数 ""。
某些键击不生成字符(如 ENTER 和 TAB)。某些键击表示操作(如 BACKSPACE 和 BREAK)。要发送这些类型的键击,请发送下表中列出的参数:
键 参数
退格键 、 或
BREAK
CAPS LOCK
DEL 或 DELETE 或
向下键
END
ENTER 或 ~
ESC
HELP
HOME
INS 或 INSERT 或
向左键
NUM LOCK
PAGE DOWN
PAGE UP
PRINT SCREEN
向右键
SCROLL LOCK
TAB
向上键
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16
要发送由常规键击和 SHIFT、CTRL 或 ALT 组合而成的键盘字符,请创建表示该键击组合的复合字符串参数。可通过在常规键击之前添加一个或多个以下特殊字符来完成上述操作:
键 特殊字符
SHIFT +
CTRL ^
ALT %
注意 这样使用时,不用大括号括起这些特殊字符。
要指定在按下多个其他键时,按下 SHIFT、CTRL 和 ALT 的组合,请创建复合字符串参数,用括号括起其中的组合键。例如,要发送的组合键指定:
如果在按 e 和 c 的同时按 SHIFT 键,则发送字符串参数 "+(ec)"。
如果在按 e 时只按 c(而不按 SHIFT),则发送字符串参数 "+ec"。
可使用 SendKeys 方法发送一种在一行内重复按键的键击。为此,要创建复合字符串参数,以指定要重复的键击,并在其后指定重复次数。可使用 形式的复合字符串参数来完成上述操作。例如,如果要发送 10 次 "x",则需要发送字符串参数 ""。请确保在键击和数字之间有一个空格。
注意 只可以发送重复按一个键的键击。例如,可以发送 10 次 "x",但不可发送 10 次 "Ctrl+x"。
注意 不能向应用程序发送 PRINT SCREEN 键 。
示例
下面的示例演示如何将一个 .wsf 文件用于以不同脚本语言(VBScript 和 Jscript)写成的两个作业。每个作业都运行 Windows 计算器并将它发送给键击以执行简单的计算。
<package>
<job id="vbs">
<script language="VBScript">
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "calc"
WScript.Sleep 100
WshShell.AppActivate "Calculator"
WScript.Sleep 100
WshShell.SendKeys "1"
WScript.Sleep 500
WshShell.SendKeys "2"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 500
WshShell.SendKeys "*3"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 2500
</script>
</job>
<job id="js">
<script language="JScript">
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("calc");
WScript.Sleep(100);
WshShell.AppActivate("Calculator");
WScript.Sleep(100);
WshShell.SendKeys ("1");
WScript.Sleep(500);
WshShell.SendKeys("2");
WScript.Sleep(500);
WshShell.SendKeys("~");
WScript.Sleep(500);
WshShell.SendKeys("*3");
WScript.Sleep(500);
WshShell.SendKeys("~");
WScript.Sleep(2500);
</script>
</job>
</package>
请参阅
WshShell 对象 | Run 方法
--------------------------------------------------------------------------------
© 2001 Microsoft Corporation. 保留所有权利。
Windows 脚本宿主
SendKeys 方法
请参阅
WshShell 对象 | Run 方法
将一个或多个键击发送到活动窗口(仿佛是在键盘上击键一样)。
object.SendKeys(string)
参数
object
WshShell 对象。
string
表示要发送的键击(一个或多个)的字符串值。
说明
使用 SendKeys 方法可以将键击发送到无自动化界面的应用程序中。多数键盘字符都可用一个键击表示。某些键盘字符由多个键击组合而成(例如,CTRL+SHIFT+HOME)。要发送单个键盘字符,请将字符本身作为 string 参数发送。例如,要发送字母 x,则请发送 string 参数 "x"。
注意 要发送空格,则请发送字符串 " "。
可使用 SendKeys 同时发送多个键击。为此,可将每个键击按顺序排列在一起,以此来创建表示一系列键击的复合字符串参数。例如,要发送键击 a、b 和 c,则需要发送字符串参数 "abc"。SendKeys 方法将某些字符用作字符的修饰符(而不使用其本身的含义)。这组特殊的字符可包括圆括号、中括号、大括号,以及:
加号 "+"、
插入记号 "^"、
百分号 "%"、
和“非”符号 "~"。
用大括号 ""。SendKeys中使用的中括号 "[ ]" 无任何特殊含义,但是必须把它们括在大括号中,以便容纳确实要赋予其特殊含义的应用程序(例如,对于动态数据交换 (DDE) 就是这样)。
要发送左中括号字符,请发送字符串参数 ""。
要发送左大括号字符,请发送字符串参数 "";要发送右大括号字符,请发送字符串参数 ""。
某些键击不生成字符(如 ENTER 和 TAB)。某些键击表示操作(如 BACKSPACE 和 BREAK)。要发送这些类型的键击,请发送下表中列出的参数:
键 参数
退格键 、 或
BREAK
CAPS LOCK
DEL 或 DELETE 或
向下键
END
ENTER 或 ~
ESC
HELP
HOME
INS 或 INSERT 或
向左键
NUM LOCK
PAGE DOWN
PAGE UP
PRINT SCREEN
向右键
SCROLL LOCK
TAB
向上键
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16
要发送由常规键击和 SHIFT、CTRL 或 ALT 组合而成的键盘字符,请创建表示该键击组合的复合字符串参数。可通过在常规键击之前添加一个或多个以下特殊字符来完成上述操作:
键 特殊字符
SHIFT +
CTRL ^
ALT %
注意 这样使用时,不用大括号括起这些特殊字符。
要指定在按下多个其他键时,按下 SHIFT、CTRL 和 ALT 的组合,请创建复合字符串参数,用括号括起其中的组合键。例如,要发送的组合键指定:
如果在按 e 和 c 的同时按 SHIFT 键,则发送字符串参数 "+(ec)"。
如果在按 e 时只按 c(而不按 SHIFT),则发送字符串参数 "+ec"。
可使用 SendKeys 方法发送一种在一行内重复按键的键击。为此,要创建复合字符串参数,以指定要重复的键击,并在其后指定重复次数。可使用 形式的复合字符串参数来完成上述操作。例如,如果要发送 10 次 "x",则需要发送字符串参数 ""。请确保在键击和数字之间有一个空格。
注意 只可以发送重复按一个键的键击。例如,可以发送 10 次 "x",但不可发送 10 次 "Ctrl+x"。
注意 不能向应用程序发送 PRINT SCREEN 键 。
示例
下面的示例演示如何将一个 .wsf 文件用于以不同脚本语言(VBScript 和 Jscript)写成的两个作业。每个作业都运行 Windows 计算器并将它发送给键击以执行简单的计算。
<package>
<job id="vbs">
<script language="VBScript">
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "calc"
WScript.Sleep 100
WshShell.AppActivate "Calculator"
WScript.Sleep 100
WshShell.SendKeys "1"
WScript.Sleep 500
WshShell.SendKeys "2"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 500
WshShell.SendKeys "*3"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 2500
</script>
</job>
<job id="js">
<script language="JScript">
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("calc");
WScript.Sleep(100);
WshShell.AppActivate("Calculator");
WScript.Sleep(100);
WshShell.SendKeys ("1");
WScript.Sleep(500);
WshShell.SendKeys("2");
WScript.Sleep(500);
WshShell.SendKeys("~");
WScript.Sleep(500);
WshShell.SendKeys("*3");
WScript.Sleep(500);
WshShell.SendKeys("~");
WScript.Sleep(2500);
</script>
</job>
</package>
请参阅
WshShell 对象 | Run 方法
--------------------------------------------------------------------------------
© 2001 Microsoft Corporation. 保留所有权利。
展开全部
窗口没有激活,试一下
Dim s
Set s = WScript.CreateObject("Wscript.Shell")
s.AppActivate "无标题 - 记事本" '窗口标题
WScript.Sleep 200 '等待反应时间
s.SendKeys "%{enter}" '模拟按键
Dim s
Set s = WScript.CreateObject("Wscript.Shell")
s.AppActivate "无标题 - 记事本" '窗口标题
WScript.Sleep 200 '等待反应时间
s.SendKeys "%{enter}" '模拟按键
更多追问追答
追问
不行啊大哥!我想把DOS窗口激活然后用发Alt+ENTER 。可是结果发送的、只是ENTER 不信你可以试一下,我是先激活的它的窗口的 "C:\windows\system32\cmd.exe" 然后发送 Alt + ENTER 结果发送出去的是Enter ,不信你可以试一下,先打开一个cmd窗口然后用vbs向他发送Alt +enter.谁能帮我解决问题再加分!!!!
追答
嗯,是的,待会用aPI 试试
事实证明,用keybd_event 也没用,代码就不贴了,呵呵
不过全屏的方法也有
Set s = WScript.CreateObject("Wscript.Shell")
s.AppActivate "命令提示符"
WScript.Sleep 1000
s.SendKeys "{%}ComSpec{%} /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_|debug>nul "
s.SendKeys "~"
s.SendKeys "chcp 437>nul"
s.SendKeys "~"
s.SendKeys "graftabl 936>nul{%}ComSpec{%)"
s.SendKeys "~"
参阅
http://zhidao.baidu.com/question/149508731.html?an=0&si=3
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要激活你想要发送的窗口
可以在代码里面
也可以用鼠标点击你想的窗体
可以在代码里面
也可以用鼠标点击你想的窗体
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询