【问题标题】:how to take path location from textbox and put it in batch如何从文本框中获取路径位置并将其批量放置
【发布时间】:2015-08-04 07:42:05
【问题描述】:

大家好,我正在尝试通过简单的文本框创建一个可以在用户计算机上打开任何 exe 的扩展。用户将编写他想要打开的 exe 的路径,我需要将该路径带到批处理文件并运行它是可能的,如果那怎么办? 我当前的批处理文件只打开一个路径,但我希望它从用户那里获取路径并在路径位置打开该 exe

【问题讨论】:

  • 批处理无法与 GUI 交互。
  • 使用原生主机模块可能的,但是这个问题非常广泛,没有任何努力证明。
  • 是的,我正在使用本机消息传递主机,这怎么可能?
  • 展示你已经做了什么(或者你可以在没有帮助的情况下做什么),以及具体是什么问题。
  • 为什么不输出文本文件的路径?您可以使用批处理来获取那里的路径。

标签: batch-file google-chrome-extension chrome-native-messaging


【解决方案1】:

好吧,Native Messaging 不允许您传递命令行参数。它只允许使用Native Messaging protocol(长度+ JSON 编码的消息)进行通信。

因此,您需要制作一个能够读取传入消息、对其进行解码并执行您想要的命令的本地主机,即:

// Extension side
chrome.runtime.sendNativeMessage('native.app.id.here', { command: "calc.exe" });

然后应用程序将通过 STDIN 接收消息长度 + {"command":"calc.exe"}

实际上,编写将使用批处理脚本解码该消息的代码是一个可怕的想法,但原则上是可行的。您可能应该用支持 JSON 操作的语言编写一个实际的程序来处理这个问题。另见this question

【讨论】:

  • 谢谢你,所以我不应该使用批处理文件打开本地 exe
  • 你可以,但是如果你想传递数据(比如要启动哪个文件),批处理是一个糟糕的选择。
  • 用c++可以吗?
  • 当然可以。它只是从cin 根据协议读取,然后你需要以某种方式解析字符串 - 如果你遵循固定格式应该不难,然后fork/@987654327 @ 生成一个新进程并执行它。抱歉,但实际实施超出了我的回答范围。如果您对此有更具体的问题,请提出一个新问题。实际上,如果有人制作了这样一个通用的“启动器”原生主机并将其开源,那将非常有用。
  • 是的,很难想象我只是实习生,他们给了我这个项目,我不知道
猜你喜欢
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
相关资源
最近更新 更多