我使用示例项目https://developer.chrome.com/extensions/samples我能够运行python原生应用程序。
在native-messaging-example-host.bat中有没有办法获取消息?
我不想加载python脚本
我想要做的是从chrome {text:“xyz.bat”}发送消息
并且该batch file应该运行START xyz.bat
您不应该从批处理文件的角度来处理这个问题,因为这代替了我的解决方案,它需要程序先行运行,而在大多数应用程序中,这种方式已被折旧,以便在后台运行。 但是,如果你仍然想知道你怎么可能批量做…
如果你可以将消息传递给一个空白的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 /px=<newreadforme.txt start %x%
此代码将在打开的页面上运行模拟击键,以复制其内容并将其转发到另一个批文件中引用的文本文件。 但是,你只应该使用这种方法作为最后的手段,因为这种方法是一个可怕的方式来解决你的问题。 我的代码要求您保持网页的开放性,并确保在执行过程中没有人干涉该程序。 所以如果用户在使用电脑的时候运行,那么他们可能会不小心混淆了输入。
最重要的是,您已经需要修改网页来达到最终效果,所以您可能应该使用支持html的语言来进行文件系统操作 。 Nodejs可以提供一个你可能决定通过的文件系统和html页面之间的一个很好的接口 。 如何处理填充了我不确定的消息的网页, 但是您绝对应该避免使用批处理来执行您要求的更多HTML友好语言