0

Microsoft WebBrowser コントロールを使用してブラウザーを表示する C++ プログラムがあります。URL パラメーターのヒントをコードに渡して、単にブラウザーが新しいページに移動できるようにするのではなく、別のアクションを実行できるようにします。

たとえば、「WRITE.EXE?RUN」という URL を渡して、その URL で実行可能ファイルを実行したいことを示すことができます。

C# では、BeforeNavigate イベントで URL 全体を取得しますが、? までの URL しか取得できません。したがって、C# では「WRITE.EXE?RUN」を取得しますが、C++ では、BeforeNavigate2 に渡される URL は単に「WRITE.EXE」です。

C++ 経由で URL 全体にアクセスする方法についてのアイデアはありますか?

4

2 に答える 2

0

ここでの問題は、URL のプロトコルを指定していないため、WebBrowser が別の方法で処理することが原因であると考えています。

したがって、http://write.exe?RUNを指定すると、パラメーターを含む URL パス全体が取得されますが、プロトコルをオフのままにするか FILE://write.exe?RUN を指定すると、引数が削除されます。ファイル プロトコルの優れた点は、EXE のパス全体を URL として返すことです。

于 2010-04-13T13:25:32.793 に答える
0

URL を渡さずに、Windows がそれをURL モニカーにバインドしておらず、バインドされているモニカーがパスからそれを取り除くと仮定しているだけです。

URL (RFC 1738 で定義) は次のとおりです: <scheme>:<scheme-specific>

詳細がわからないと、Web ブラウザー コントロールで何をしているのか、渡されたものをどのように処理する必要があるのか​​は不明ですが、これらの質問に答えると、独自の URL モニカー (myapp://write など) を記述する必要があるかどうかが決まります。 .exe?dosomething)。

于 2010-04-14T07:53:04.413 に答える