在c#中创建一个进程来接收多个Chrome本地消息

本文关键字:Chrome 消息 一个 创建 进程 | 更新日期: 2023-09-27 18:12:41

基本上我想做的是有一个应用程序(一个进程),将保持打开所有的时间,并有一个线程去听Chrome的本地消息。

我目前的理解是Chrome为每个本地消息启动一个单独的进程。如果我要使用互斥锁来创建单个进程,那么我将无法将标准输入传递给主进程,因为我必须首先使用适当的参数再次启动进程。Chrome可能也有类似的功能,因此有多个进程。

在我看来,必须有一个中间进程,通过套接字或类似的东西来通知主进程的Chrome的消息。是这样吗?难道没有办法使用单个流程来实现这一点吗?

非常感谢输入!

还有一个边注,Chrome似乎静默地启动了它的本地消息应用程序进程(没有显示)。是我做错了什么还是这很正常?

在c#中创建一个进程来接收多个Chrome本地消息

使用chrome.runtime.connectNative,您可以创建一个长时间运行的本机实例。然后你需要在后台脚本中保持javascript引用的活力,以便你可以重用它。

manifest.json;

"background": {"scripts": ["background.js"]},

background.js;

var nativePort = null;
function getNativePort(){
  if (nativePort == null)
    nativePort = chrome.runtime.connectNative("...");
}

如果你想从内容脚本发送消息,你必须先把它转发到你的后台脚本。