2

サンプル プロジェクト https://developer.chrome.com/extensions/samplesを使用し ました。Python ネイティブ アプリを実行できます。

native-messaging-example-host.bat 内でメッセージを取得する方法はありますか

Python スクリプトをロードしたくない

ここでやりたいことは、chrome {text: "xyz.bat"} からメッセージを送信することです

バッチファイルは START xyz.bat を実行する必要があります

4

1 に答える 1

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%

このコードは、開いたページでシミュレートされたキーストロークを実行してその内容をコピーし、別のバッチファイルから参照されるテキスト ファイルに中継します。 ただし、このアプローチは問題を解決するためのひどい方法であるため、この方法は最後の手段としてのみ使用する必要があります。私のコードでは、ウェブページを開いたままにしておき、プログラムの実行中に誰もプログラムに干渉しないようにする必要があります。そのため、ユーザーがコンピューターを実行中に使用している場合、誤って入力を台無しにする可能性があります。

それに加えて、最終結果を達成するためにすでに Web ページを変更する必要があるため、html からファイルシステムへの操作をサポートする言語を使用する必要がありますNodejs は、渡すことを決定したファイル システムと html ページとの間の優れたインターフェイスを提供できます。メッセージで満たされたWebページをどのように処理するかはわかりませんが、よりHTMLに適した言語を優先して、バッチを使用して要求を実行することは絶対に避けてください。

于 2016-03-21T17:16:46.490 に答える