将本地信息传递给Windows上的.NET应用程序
我遵循本机消息传递文档 ,但我的能力是最好的,但是似乎无法让我的本机.NET应用程序甚至开始在Windows上运行.在寻找其他信息时,我注意到有些事情不明显且不清楚. 首先,该文档没有提及添加" nativemessaging" 权限的要求.更改后,我进一步了. Chrome实际上提到了"新的背景应用程序"现在在气球弹出窗口中添加的"新背景应用". 但是,无论我尝试过什么事情,以下代码都会立即断开连接. var port = chrome.runtime.connectNative( ... ); port.onDisconnect.addListener( function() { console.log( "Disconnected" ); } ); 根据我尝试调试此事的尝试,我有几个问题: 在Windows上,Chrome何时尝试加载注册表中Nativemessaging Hosts中的清单?,换句话说,当我更改值
6 2024-01-05
编程技术问答社区
需要在点击它时打开chrome本地应用程序,而不是在启用扩展时。
我在Windows表单(C#)中具有Chrome Native应用程序.当我在Chrome中启用扩展时,它用来打开.我们只能在单击应用程序EXE时将其管理才能打开? 我们该怎么做? 这是C#代码 private static string OpenStandardStreamIn() { //// We need to read first 4 bytes for length information Stream stdin = Console.OpenStandardInput(); int length = 0; byte[] bytes = new byte[4]; stdin.Read(bytes, 0, 4); length = System.BitConverter.ToInt32(bytes, 0); string input = ""; for (int i = 0; i
0 2023-12-10
编程技术问答社区
在Java中接收来自Chrome的本地信息
我正在尝试在Chrome扩展程序和Java程序之间获得本地消息传递. 经过一些挣扎后,我现在可以使用以下方式打开我的Java程序: var port = chrome.extension.connectNative('fbehost'); port.postMessage({ text: "Hello, my_application" }); ,但我不知道如何阅读从扩展程序中发送的消息.我创建了一个程序,该程序用Textarea打开了一个简单的Jframe.正如它在文档中所说的本机消息与stdin和stdout通信的文档,我试图通过以下方式获取消息: while(true) { try { input=br.readLine(); tf.setAreaText(input); } catch(Exception e) { } } 也尝试了以下方法: System.in.read() 罐子被执行,但文本方面保持空.我在互联网上找不到
4 2023-12-06
编程技术问答社区
Windows Chrome扩展的本机信息传递只能收到第一个回应
我正在尝试使用本机消息传递将一些数据发送到我的本机Windows应用程序.它可以与Runtime.sendnativemessage()方法合作.当我尝试使用长期使用端口的长期连接时,它也可以将数据从Chrome传递给我的应用.但是,Chrome Extension只能从我的应用程序中收到第一个响应.我确信该端口仍然打开,因为我的应用程序仍然可以从Chrome接收数据.以下是我的代码: Chrome扩展脚本: var port = chrome.runtime.connectNative('com.mydomain.app1'); port.onMessage.addListener(function(msg) { console.log("Received from port:", msg); }); port.onDisconnect.addListener(function() { console.log("Disconnected"); });
2 2023-12-06
编程技术问答社区
Chrome扩展-消息传递到批处理文件
我使用了示例项目 https://develover.chrome.chrome.com/extensions/samples/samples 我能够运行Python本机应用程序. 是否有任何方法可以在本机-Messaging-example-host.bat 中获取消息 我不想加载python脚本 我想在这里做的是 从chrome {text:" xyz.bat"} 发送消息 批处理文件应运行启动xyz.bat 解决方案 您不应该从批处理文件的角度来解决此问题,就像我的解决方案一样,它要求该程序进行预先运行,在大多数应用中,该程序都会贬值以支持在后台运行它. 但是,如果您仍然想知道如何在批处理... 如果您可以将消息传递到空白的HTML页面(当前不确定您如何或想以这种方式执行此操作),在此html页面上唯一的东西是您的,我们可以运行一个程序复制页面,打开文本文件并在内部粘贴,关闭文本文件,然后从其输入中运行批处理.因此,代码明智, @if (@C
Chrome本地信息传递:我可以将MediaStream流向本地程序吗?
我正在编写一个Web应用程序,该应用程序需要在主机窗口系统中显示本机窗口.该窗口必须显示要流到Web应用程序的视频. 我为OS X编写了一个本机程序,该程序以所需的方式显示视频,在Web应用程序中,我通过WEBRTC发送了MediaStream.我需要将它们连接在一起. 我想使用Chrome的本机消息传递,这使我可以将JSON对象流到本机程序.如果我可以从MediaStream访问原始数据流,则我应该能够将其转换为JSON对象,然后将其流式传输到本机应用程序,在那里我可以重建原始视频流. 这是可能的吗? 解决方案 如果可能的话,我强烈建议您在本机应用程序中实现WebRTC媒体服务器,并直接在浏览器的WebRTC API和您的服务器之间进行通信.其他任何东西都有更多的开销. 例如,要从MediaSource到本机消息传递,您需要一种将MediaSource中音频和视频feed序列序列的方法,然后通过本机消息传递频道发送(将由本机消息传递频道发送(将由JSON
在本地应用程序和Chrome扩展程序之间的连接在一段时间后中断。
我正在使用Chrome本机消息API在我的Chrome-Extension和本地Windows-App之间进行通信. 连接建立了细腻,并且数据也被交换.但是,连接在随机呼叫后从扩展到本机应用程序中断开. 我尝试独立运行本机应用,并且在无限循环中运行时可以正常运行(没有例外). 我的本​​机应用在第一次调用时生成了几乎300kb的数据( encode_frame()),然后连续呼叫(每300毫秒)生成0到300kb的数据( encode_frame_frame_difference) ()).数据是基本64编码. fyi:通过stdin和本机应用和扩展之间的stdout进行通信. 问题是我无法弄清楚为什么连接在一段时间后断开. 这是本机应用代码: windows-native-app-cpp 这是扩展代码: chrome-extension-js 任何帮助将不胜感激! 谢谢. 编辑: 到现在为止,我发现我发送的一定数据长度存在问题
如何在Native Messaging主机上从stdin解析JSON?
使用代码如何将shell-script用作chrome本机消息主机应用程序作为模板,并给出了包含 的文件file.json {"text":"abc"} 按照 iTate jsson和jqson和jqson和 jq documentation $ cat file.json | jq --raw-output '.text' 输出 abc 不确定如何在此答案 while read -r id name date; do echo "Do whatever with ${id} ${name} ${date}" done
4 2023-09-29
编程技术问答社区
JavaScript的同步性。结合onAuthRequired监听器和本地按摩
我有这个问题 ... '一直试图将用户名和密码对传递给我的扩展名.该过程如下: 使用加密的凭据令牌启动了凭据服务器(CS) Selenium使用自定义扩展名打开浏览器 触发扩展名 本机消息传递主机(NMH)启动然后接收"准备就绪"消息 NMH使用一个简单的协议从CS 请求令牌 NMH解密令牌 NMH将凭据传递给背景.JS background.js将凭据返回到chrome 身份验证魔术发生在远程服务器上 我已经解决了直到6 ...的所有问题.也许是7.问题是我无法实际捕获NMH发送的内容. 看来凭证的格式未正确,因此它们被拒绝,或者javascript端如何将其放在一起存在问题,因此这只是一个损坏的代码案例. 我的意图也可能根本没有可能...尽管我怀疑就是这种情况. 我将提供尽可能多的代码...尽管我感谢任何帮助,但我很乐意获得一个可以在我自己的时间进行修改的通用示例. 有更好的方法吗?我全都是耳朵!很高兴创建一个新问题来解决其他想法. 编辑
2 2023-08-27
编程技术问答社区
如何从用Node.js编写的本地应用程序向Chrome扩展发送消息?
这个问题是那个,因为该问题中没有任何答案,现在有6年. 我在Windows 10中使用Chrome 79和Nodejs 13. 我有一个nodejs脚本(请参见下文)充当本机消息主机和一个chrome扩展. 我想将消息从nodejs脚本发送到我的扩展名. 我知道如何在我的Chrome扩展中接收消息 - 这是其背景. var port = chrome.runtime.connectNative('my_messaging_host'); port.onMessage.addListener((message) => { console.log("Received: " + message); }); 我拥有的nodejs脚本(见下文)是本机消息传递主机.我用作参考,我可以找到的唯一nodejs消息传递主机代码示例,有问题/需求改进. 无论如何,我已经对其进行了修改,但是我在发送消息时从扩展中收到以下错误:Failed to connect: Erro
24 2023-06-26
编程技术问答社区
使用PHP的Chrome本地信息传递
我正在尝试建立一个可以通过本机消息与Chrome扩展通信的PHP类. 我可以连接到我的代码,但是在Initiation Chrome发送 chrome-extension://lkjcciocnocjjgpacggbaikjehbfedbl/ --parent-window=1837060 我的PHP控制台应用程序(主机).我该回答如何使连接正常工作? 在我的PHP代码下方.是的,因为它是一个POC项目,并且我对Chrome扩展非常陌生,尤其是当前的更新. function out($data = ""){ $fp = fopen("php://stdout", "w"); if($fp){ $response = array("text" => "Ok"); $message = json_encode($response); fwrite($fp, $message); fflush
14 2023-05-28
编程技术问答社区
如何防止每次调用主机时创建一个新的类实例?
在我的java程序中,它是 chrome Extension的主机(或每个本地应用程序)时间是由我的chrome扩展名调用的,然后创建了我的 applet 类的新实例. 如何防止这种情况发生?我的意思是,我需要为所有主机扩展主机呼叫一个单个对象,如何实现? 这是我的程序: import javax.swing.JOptionPane; public class Applet { static Applet myApplet; public Applet(){ System.err.println("new instance created!"); } public static void main(String[] args) { try { if (myApplet == null) myApplet = new Applet();
16 2023-04-26
编程技术问答社区
Chrome应用程序无法与Windows上的本地主机进行通信
我已经写了一个Chrome应用程序和Java中的本机消息主机.该组合在Linux上正常工作.但是,当我尝试将组合移植到Windows时,无法建立通信.包含主机的罐子与Linux变体完全相同.我正在使用以下脚本(start.bat)来启动Java主机: @echo off java -jar "%~dp0theHost.jar" JSON清单如下: { "name": "com.service.host", "description": "Native messaging host", "path": "start.bat", "type": "stdio", "allowed_origins": [ "chrome-extension://--the ID--/" ] } 我已经配置了hkey_local_machine \ software \ google \ chrome \ chrome \ nativemes
8 2023-04-26
编程技术问答社区
chrome本地消息:如何接收>1MB的消息
如何使用Chrome对本机消息扩展的Chrome传入的1MB限制是什么好方法?如果这很重要,我们将发送到扩展名的数据是JSON序列化的GPX. 当原始消息为> 1MB时,这个问题似乎确实有两个部分: 如何在发送端(即客户端)上分区数据 这部分应该很微不足道.即使我们需要分成单独的独立gpx字符串,也很简单. 如何将 1MB 这个问题有标准的解决方案吗?我们可以为每个 更新8-18-16: 我们一直在做的只是在背景中的缓冲区变量上附加每个消息"块",而不是将其发送回Chrome,直到断开连接: var gpxText=""; port.onMessage.addListener(function(msg) { // msg must be a JSON-serialized simple string; // append each incoming msg to the collective gpxText strin
18 2023-04-26
编程技术问答社区
Chrome扩展信息传递不工作(background.js到content.js)。
我的智慧以试图弄清楚为什么我无法在chrome扩展中使用消息传递. 请记住,我在上个月内绝对是JavaScript的全新,并且我一直在网上使用视频(我的编码背景是Java). 我想要的只是我的背景脚本能够将发生的事情通知我的内容脚本,然后在内容脚本中执行一些代码.如下所示,这是我加载扩展时遇到的错误: subtest.json { "content_scripts": [ { "matches": [""], "js": ["content.js"] } ], "background": { "scripts": ["background.js"], "persistent": true }, "permissions": [ "activeTab", "tabs", "storage" ],
28 2023-03-26
编程技术问答社区
收到本地信息,但响应失败
我正在开发一个可以通过native messaging与Google Chrome扩展的MacOS应用程序. 我从但是当我试图回答时,我总是会遇到错误. 我的响应是JSON格式,是: { "text": "Client Started" } 我将swift用于我的viewController和Objective-c++用于本机消息: viewController.swift: let stream = StreamReader() override func viewDidLoad() { super.viewDidLoad() stream.getStream() stream.writeStream("{\"text\":\"Client Started\"}") } streamReader.m: - (void)WriteStream:(NSString *)JSONResponse { NS
26 2023-03-16
编程技术问答社区
调试Chrome本机信息传递
我是开发铬扩展的初学者.我正在尝试在扩展名和C ++代码之间实现本地消息传递.这是C ++代码 int main(int argc, char* argv[]) { // Define our message char message[] = "{\"text\": \"This is a response message\"}"; // Collect the length of the message unsigned int len = strlen(message); // We need to send the 4 bytes of length information printf("%c%c%c%c", (char) (len & 0xff), (char) ((len>>8) & 0xFF), (char) ((len>>16) & 0xFF), (ch
26 2023-02-28
编程技术问答社区
本机应用程序和chrome-extension之间的连接在一段时间后中断。
我正在使用Chrome本机消息API在我的Chrome-Extension和本地Windows-App之间进行通信. 连接建立了细微的建立,并且数据也被交换.但是,在随机数量的呼叫后,连接断开. . 我尝试独立运行本机应用,并且在无限循环中运行时可以正常运行(没有例外). 我的本​​机应用在第一次调用时生成了几乎300kb的数据( encode_frame()),然后连续呼叫(每300毫秒)生成0到300kb的数据( eccode_frame_frame_difference) ()).数据是基本64编码. fyi:通过本机应用和扩展之间的stdin和stdout进行通信. 问题是我无法弄清楚为什么连接在一段时间后断开. 这是本机应用代码: windows-native-app-cpp 这是扩展代码: chrome-extension-js 任何帮助将不胜感激! 谢谢. 编辑: 到现在为止,我发现我发送的一定数据长度存在问题.
如何从Chrome扩展程序向本地应用程序发送消息?
我有一个用C ++编写的本机应用. 我能够使用如何将消息从本机应用发送到Chrome扩展? ,但我无法弄清楚另一种方式. Chrome Doc.状态: chrome在单独的过程中启动每个本机消息传递主机,并使用标准输入(STDIN)和标准输出(STDOUT)与IT进行通信.相同格式用于以两个方向发送消息:每条消息使用JSON,UTF-8编码序列化,并在本机字节顺序上以32位消息长度进行. 如何读取/解释由Chrome Extension发送的STDIN的数据? 如何读取4 Byte长度信息以及发送UTF-8编码的其余数据? 请帮助! 谢谢! 解决方案 读取stdin的JSON-DATA: int _tmain(int argc, _TCHAR* argv[]) { unsigned int length = 0; //read the first four bytes (=> Length) for (int i = 0; i
22 2023-02-27
编程技术问答社区
在C++中的Chrome原生主机,无法与Chrome通信
我正在尝试使用runtime.connectNative和postMessage实现镀铬扩展.我正在关注Chrome文档,下载了本机消息示例,然后将本机应用更改为使用C ++. 但是,本机应用程序无法从Chrome扩展程序中接收消息. 与此同时,当使用printf函数的本机应用程序将消息写入Chrome扩展程序时,扩展程序无法接收,并且仅在控制台中显示的消息. 有什么想法如何解决问题? 解决方案 您没有提供有关您实际尝试过的内容的大量信息,因此我将尽力解释实现Chrome扩展,本机消息主机并在它们之间建立通信所需的步骤. (请检查以下链接以获取有关Chrome本机消息传递的更多信息: Chrome扩展 首先,我们需要设置Chrome扩展名.由于这将是非常简单的扩展程序,因此我们只需要 subtest.json 文件(请注意,这是Extension的清单文件 - 本机主机也将具有自己的清单文件)和背景.JSJavaScript实现./p> 以下是示例 es
6 2023-02-25
编程技术问答社区