2014-11-20 2 views
0

네이티브 메시징 호스트 (즉, EXE 파일)와 통신 할 페이지 작업 확장을 만들려고합니다.Chrome을 열 때 기본 메시지 호스트가 시작되지 않음

내 확장 프로그램을 설치했지만 UI가 예상대로 작동하지만 EXE가 시작되지 않습니다. 그걸 시작하려면 뭔가해야합니까? :

port = chrome.runtime.connectNative(hostName); 

나는과 같이 레지스트리에서 호스트를 설치 한 다음 x86 및 x64 비트 버전의 하이브와 혼란이있을 것 같았다 때문에

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.google.chrome.example.echo] @="C:\Users\me\Desktop\nativeMessaging\host\com.google.chrome.example.echo-win.json" 

는 (나는 또한 수동으로 추가 한 .. .)

호스트 매니페스트 파일 :

{ 
    "name": "com.google.chrome.example.echo", 
    "description": "Chrome Native Messaging API Example Host", 
    "path": "native-messaging-example-host.bat", 
    "type": "stdio", 
    "allowed_origins": [ 
    "chrome-extension://knldjmfmopnpolahpmmgbagdohdnhkik/", 
    "*" 
    ] 
} 

native-messaging-example-host.bat I 내부 한 :

MyExeName.exe 

당신이 볼 수 있듯이, 나는 단지의 경우 allowed_origins에서 "*"을 추가 한 다른 옵션은 페이지의 행동에 대한 권리하지 않았다.

나는 또한 매니 페스트 파일 안에 직접 EXE 이름을 넣으려고했지만 운이 없다.

나는 여전히를 얻을 :

Specified native messaging host not found. 

나는 또한이로드되는 경우에 대비, 크롬로드 애플 리케이션을 확인하려면 ProccessExplorer 확인하지만, 나도 거기에 표시되지 않습니다.

이상한 점은 Google의 기본 메시징 호스트 샘플을 수정하기 시작했으며 앱으로 작동하고 있다고 생각합니다. 그것을 페이지 작업 확장으로 바꿨을 때 작동이 멈췄습니다.

여기에 무엇이 잘못 되었습니까?

+1

'allowed_origins'에는 와일드 카드를 사용할 수 없습니다. "지정된 기본 메시징 호스트를 찾을 수 없습니다." 제네릭 오류입니다. Chrome의 표준 오류를 보면 무엇을 볼 수 있습니까? 예 : http://www.chromium.org/for-testers/enable-logging –

+0

감사! 'enable-logging'을 시도하고 로그를 살펴본 후 두 가지 오류 (JSON에서 쉼표 한 개와 언급하지 않은 와일드 카드)를 발견했습니다. 지금 그것은 작동하는 것처럼 보인다! – user2173353

+0

이제 '네이티브 메시징 호스트와 통신 할 때 오류가 발생합니다.'라는 오류가 수정되기 쉽습니다. – user2173353

답변

1

--vmodule=extension_updater=2 --enable-logging 나는 비슷한 문제가 있었다. 로깅을 활성화해도 도움이되지 않았습니다. 내 레지스트리 키에서 밝혀졌다 : 구글 \ 크롬 \ NativeMessagingHosts \

[HKEY_LOCAL_MACHINE \ 소프트웨어

나는 EXE 및 경로, 예를 들어, 주위에 따옴표를했다 "C : \ Temp \ Chrome \ ChromeNativeApp.exe"대 C : \ Temp \ Chrome \ ChromeNativeApp.exe

1

로깅을 사용하는 것 외에도 sysinternals의 procmon을 사용하는 방법을 사용할 수도 있습니다. 그것은 regmon과 filemon과 비슷하기 때문에 크롬을 따라 레지스트리 키를 쿼리 한 다음 매니페스트를 읽고 실행 파일을 실행하면 어디가 잘못되었는지 확인할 수 있습니다.

나는 이전에 문제가 있었지만 exe는 실행되지 않았으며 위의 작업을 수행하여 놓친 키에 작은 오타가 있음을 발견했습니다.

로깅을 사용하려면 다음을 확인하십시오. https://www.chromium.org/for-testers/enable-logging 예 : 당신은 다음과 같은 명령 줄 인수로 브라우저를 시작할 수 있습니다

+0

왜 downvote? – AbsolutelyFreeWeb

0

비슷한 문제가 있습니다 : chrome 포트를 만들었지 만 프로그램을 시작하지 않았습니다.Sysinternals로 추적하기 procmon.exeC:\Programs\TCCLE\tcc.exe을 호출하면 활동이 멈추는 것으로 나타났습니다. 나는 을 cmd.exe으로 대체하고 환경 변수 ComSpecC:\Programs\TCCLE\tcc.exe으로 설정했다. ComSpecC:\WINDOWS\system32\cmd.exe으로 다시 변경하고 프로그램이 시작되었습니다.