9

Windows 8 RTM (Chrome、Firefox) で既定以外のブラウザーを設定し、次のようなコードを実行してみてください。

ShellExecute(NULL, "open", "http://stackoverflow.com", NULL, NULL, SW_SHOWNORMAL);

大丈夫です。ただし、マニフェストを変更して、管理者特権を要求するか、単に「管理者として実行」します。

コードが機能しません。

それでは、「管理者として実行」を使用して任意のアプリケーションを実行してみてください。

同じ結果が表示されますが、リンクは機能していません。

デフォルトのブラウザを IE に戻します -> すべて正常に動作します。

Windows 8 の以前のビルドでは、そのような動作はありません。

何が起こっている?

PS。Microsoft も自社のソフトウェアで同じ問題を経験したようです :) Windows 8 RTM での Visual Studio 2012 Web パブリッシュがブラウザの起動に失敗する

4

2 に答える 2

3

今日までChromeで同じ動作を見てきました。何が起こっているのかを把握するためにしばらく時間を費やしましたが、長い間、昇格された権限の下で Chrome に ShellExecute() を表示させることもできませんでした。昇格された権限 (つまり、UAC ダイアログ、または管理者として実行)、または UAC を完全にオフにする場合でも失敗しました。

最終的にChromeをアンインストールして再インストールしたところ、実際に修正されました。

他のブラウザでも同じ動作が見られましたが、FireFox で数回試した後、FireFox の [既定のプログラムの設定] 設定に入り、明示的に (Windows で) .htm ファイルと HTTP プロトコルの関連付けを設定しました。それもうまくいきました。

したがって、これは Windows の実際の問題ではなく、ある種の登録の問題のようです。最初に試みることは、Windows で関連付けを明示的に設定することです (ブラウザーで既定のブラウザーを設定するのではなく)。それが失敗した場合は、ブラウザを再インストールしてみてください...

于 2012-12-13T06:24:52.813 に答える
0

@リック・ストラール

あなたは間違っています。登録だけではありません。Photoshop CC と Windows 8 でテストしました。移植できるようにするために、Photoshop 用のランチャーを作成しました。 - 管理者権限では、シェル統合は機能しません。- 通常のユーザーとして実行すると、シェル統合が期待どおりに機能します。

Windows 7 でテスト済み。 - 管理者権限の有無にかかわらず動作します。

OPが正しいことを確認できます。

于 2013-06-23T16:20:21.487 に答える