Chrome扩展程序 - 邮件传递到批处理文件

时间:2015-04-12 07:30:56

标签: windows batch-file google-chrome-extension message-passing chrome-native-messaging

我使用了示例项目 https://developer.chrome.com/extensions/samples 我能够运行python本机应用程序。

有没有办法在native-messaging-example-host.bat

中获取消息

我不想加载python脚本

我想做的是 从chrome发送消息{text:“xyz.bat”}

并且批处理文件应该运行START xyz.bat

1 个答案:

答案 0 :(得分: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 can provide a nice interface between the file system和html页面。你如何处理填写了我不确定的消息的网页,但你肯定应该避免使用批处理做你所要求的更多html友好语言