2

I used the sample project https://developer.chrome.com/extensions/samples I am able to run the python native app.

Is there any way to get the message within native-messaging-example-host.bat

I don't want to load python script

What I want to do here is send message from chrome {text: "xyz.bat"}

and the batch file should run START xyz.bat

4

1 回答 1

0

不应该从批处理文件的角度来解决这个问题,因为代替我的解决方案,它需要预先运行程序,在大多数应用程序中,它被贬低,有利于在后台运行它。但是,如果您仍然想知道如何可能批量进行...

如果您可以将消息传递到一个空白的 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 可以在文件系统和您可能决定传递的 html 页面之间提供一个很好的接口。您如何处理充满我不确定的消息的网页,但您绝对应该避免使用批处理来执行您所要求的操作,以支持更多对 html 友好的语言

于 2016-03-21T17:16:46.490 回答