能否用JS模拟用户按下shift键?

qfljm 2005-09-19 06:10:30
能否用JS模拟用户按下shift键?
...全文
722 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjdawu 2005-09-20
  • 打赏
  • 举报
回复
Windows 脚本宿主 SendKeys 方法

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

加号 "+"、
插入记号 "^"、
百分号 "%"、
“非”符号 "~"。
用大括号 "{}" 括起这些字符可以发送它们。例如,要发送加号,请使用字符串参数 "{+}"。

要发送由常规键击和 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}。
----------------------------------------
<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);
WshShell.SendKeys("~");
WScript.Sleep(2500);
</script>
ieooo 2005-09-19
  • 打赏
  • 举报
回复
这个问题找了很久都还没解决,关注
xjdawu 2005-09-19
  • 打赏
  • 举报
回复
又是shell来sendKey?

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧