我使用了示例项目https://developer.chrome.com/extensions/samples https://developer.chrome.com/extensions/samples我能够运行 python 本机应用程序。
有什么方法可以获取 native-messaging-example-host.bat 中的消息
我不想加载 python 脚本
我想做的是
从 chrome 发送消息 {text: "xyz.bat"}
并且批处理文件应运行 START xyz.bat
You 不应该从批处理文件的角度来解决这个问题,代替我的解决方案,它需要预先运行程序,这在大多数应用程序中被贬值,有利于在后台运行它。但是,如果您仍然想知道如何批量执行此操作......
如果您可以将消息传递到一个空白的 html 页面(目前不确定您如何能够或想要这样做),那么该 html 页面上唯一的内容就是您的runme.bat
我们可以运行一个程序来复制页面,打开一个文本文件并将其粘贴到其中,关闭文本文件,然后使用其中的输入运行批处理。所以代码方面,
@if (@CodeSection == @Batch) @then
@echo off
set SendKeys=CScript //nologo //E:JScript "%~F0"
rem below copys everything on the page, and closes it
%SendKeys% "{TAB}"
%SendKeys% "^{A}"
%SendKeys% "^{C}"
%SendKeys% "^{W}"
rem open text file,wait for it load, paste clipboard, save and exit
start newreadforme.txt
timeout /nobreak /t 5
%SendKeys% "^{V}"
%SendKeys% "^{S}"
timeout /nobreak /t 2
%SendKeys% "^{W}"
start program.bat
goto :EOF
@end
// JScript section
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));
然后在你的批处理文件中
@echo off
set /p x=<newreadforme.txt
start %x%
此代码将在打开的页面上运行模拟击键以复制其内容并转发到要从另一个批处理文件引用的文本文件。但是您应该只使用此方法作为最后的手段,因为这种方法是解决您的问题的糟糕方法。我的代码要求您保持网页打开并预先打开,并确保在程序执行期间没有人干扰程序。因此,如果用户在计算机运行时使用计算机,那么他们可能会意外地弄乱输入。
最重要的是,您已经需要修改网页才能达到最终结果,因此你可能应该使用支持 html 到文件系统操作的语言. Nodejs可以提供文件系统之间很好的接口 https://nodejs.org/dist/latest-v5.x/docs/api/以及您可能决定传递的 html 页面。您如何处理充满我不确定的消息的网页但你绝对应该避免使用批处理来完成你所要求的事情,以支持更 html 友好的语言
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)