Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以发送Alt+;使用WSH javascript sendKeys方法将空间分配给命令提示符?_Javascript_Vbscript_Command Prompt_Sendkeys_Wsh - Fatal编程技术网

是否可以发送Alt+;使用WSH javascript sendKeys方法将空间分配给命令提示符?

是否可以发送Alt+;使用WSH javascript sendKeys方法将空间分配给命令提示符?,javascript,vbscript,command-prompt,sendkeys,wsh,Javascript,Vbscript,Command Prompt,Sendkeys,Wsh,以下代码在命令提示符下不起作用。它只发送“”。为什么?我用的是windows7 [js] var shellApp = new ActiveXObject("Wscript.Shell"); shellApp.appActivate("C:\\Windows\\system32\\cmd.exe"); //Other apps seem to work. WScript.Sleep(1000); shellApp.sendKeys("%( )"); 我想粘贴一个字符串。为此,我需要在命令提示符

以下代码在命令提示符下不起作用。它只发送“”。为什么?我用的是windows7

[js]
var shellApp = new ActiveXObject("Wscript.Shell");
shellApp.appActivate("C:\\Windows\\system32\\cmd.exe"); //Other apps seem to work.
WScript.Sleep(1000);
shellApp.sendKeys("%( )");
我想粘贴一个字符串。为此,我需要在命令提示符下按Alt+Space。WSH解决方案是最好的。我不能安装和使用第三方的东西,因为它是不允许在我的环境


谢谢。

要粘贴字符串还是要跳过剪贴板内容?要粘贴剪贴板,可以使用此选项(它是用VBScript编写的,但可以用JavaScript重建):


缺点:你需要逃避任何特殊角色。

我终于自己解决了。是我的答案。要运行此代码,您需要Excel应用程序。谢谢大家

[js]
//Be careful. It seems completely emulate key press.
//You need Execel app to run this code.
var shellApp = new ActiveXObject("Wscript.Shell");
var ex = WScript.CreateObject("Excel.Application");
shellApp.appActivate("C:\\Windows\\system32\\cmd.exe")
ex.ExecuteExcel4Macro("CALL(\"user32\",\"keybd_event\",\"JJJJJ\",164,56,1,0)");
ex.ExecuteExcel4Macro("CALL(\"user32\",\"keybd_event\",\"JJJJJ\",32,57,1,0)");
ex.ExecuteExcel4Macro("CALL(\"user32\",\"keybd_event\",\"JJJJJ\",32,57,3,0)");
ex.ExecuteExcel4Macro("CALL(\"user32\",\"keybd_event\",\"JJJJJ\",164,56,3,0)");
shellApp.sendKeys("ep");//Pasting clipboard text
参考文献:

我知道你的意思。如果字符串的所有字符都由ascii字符组成,那么它工作得很好。但若字符串包含多字节字符呢。实际上,我想将多字节字符发送到命令提示符。这就是为什么我需要模拟“Alt+Space”。我可以通过“Alt+Space”粘贴多字节字符串,然后按“e”和“p”。我只是想模拟一下。为
CMD
启用“快速编辑模式”,只需单击鼠标右键即可粘贴文本(请参阅)。不要摆弄
SendKeys
。我也有同样的问题,但通过调用powershell找到了解决办法。有关详细信息,请参阅。
[js]
//Be careful. It seems completely emulate key press.
//You need Execel app to run this code.
var shellApp = new ActiveXObject("Wscript.Shell");
var ex = WScript.CreateObject("Excel.Application");
shellApp.appActivate("C:\\Windows\\system32\\cmd.exe")
ex.ExecuteExcel4Macro("CALL(\"user32\",\"keybd_event\",\"JJJJJ\",164,56,1,0)");
ex.ExecuteExcel4Macro("CALL(\"user32\",\"keybd_event\",\"JJJJJ\",32,57,1,0)");
ex.ExecuteExcel4Macro("CALL(\"user32\",\"keybd_event\",\"JJJJJ\",32,57,3,0)");
ex.ExecuteExcel4Macro("CALL(\"user32\",\"keybd_event\",\"JJJJJ\",164,56,3,0)");
shellApp.sendKeys("ep");//Pasting clipboard text