ShellExecuteでURLをブラウザで開けない – 固定ページ 2 – プログラミング – Home

通知
すべてクリア

[解決済] ShellExecuteでURLをブラウザで開けない

固定ページ 2 / 2

ねこまた
 ねこまた
(@ねこまた)
ゲスト
結合: 19年前
投稿: 10
Topic starter  

Yuo さま

すみません。httpプロトコルの関連付けがされているかどうかというのは、
どこを見てみたらいいのでしょうか・・・。
とりあえず、Webで調べてみたところ、
下記のMicrosoftサイト内で紹介されている方法を実行してみました。

http://support.microsoft.com/default.aspx?scid=kb;ja;882868

実行後、「成功しました」と表示されたので、
これで確実に関連付けされたと思うのですが、
プログラムの結果はいつもどおりSE_ERR_ACCESSDENIEDが帰ってきました。

> explorer http://www.yahoo.comよりも,
> http://www.yahoo.comだけを入力した方がよいです。
> # 二重引用符内を入力。IEはiexplorerな気が……。

explorer http://www.yahoo.com  を実行したところ、
IEが起動し、サイトが表示されました。
(二重引用符をはずした場合は、それは見つかりませんというエラーがでました。)

http://www.yahoo.com  を実行したところ、
普段使っているブラウザSleipnir Ver1.66にサイトが表示されました。
(二重引用符をはずした場合も、Sleipnirにサイトが表示されました。)

iexplorer http://www.yahoo.com を実行したところ、
「'iexplorer'が見つかりません。」と表示されました。

うーん。いつも使用しているノートPC(XP pro SP2)ではなく、
デスクトップPC(XP Home SP2)でプログラムを走らせた場合も、
ノートPCと同様に戻り値は【SE_ERR_ACCESSDENIED】でエラーが発生しました。

おそらく、PCの環境というよりも、プログラムに原因があるような・・・。

DirectPlayのサンプルプログラムを元に作成しているプログラムなので、
正直言ってまだよくわからないコードがたくさんあり、
それのどれかが影響しているのかもしれません・・・。
よく考えてみたら、DirectPlayはネットワーク制御を扱うものですし・・・。

うーん


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> おそらく、PCの環境というよりも、プログラムに原因があるような・・・。

> 2005/10/14(金) 02:40:05
> 教えていただいたコードで実行してみましたが、
RAPTさんの手法で、ShellExecuteを行うコンソールアプリで確認してみたのではなかっ
たのですか?
# てっきりそうかと。

てことは、やっぱりDirectPlayってやつが絡んでいますね。
# というかこれは一番最初に記述すべきことなのでは?

Google検索「DirectPlay ShellExecute」
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-
8&q=DirectPlay+ShellExecute&num=50


返信引用
ねこまた
 ねこまた
(@ねこまた)
ゲスト
結合: 19年前
投稿: 10
Topic starter  

Blue さま

RAPTさまに教えていただいたコードを、作成中のプログラムに埋め込んで実行しました。
しかし「新規にソリューション・・」ということでは実行しませんでした。
この作成中のプログラムで動かしたかったので。。

Googleで「DirectPlay ShellExecute」で検索したところ、
一番最初にHITするサイトによると、ShellExecuteでブラウザが起動しないのは、
やはりどうやらDirectPlayが原因のようですね・・・。
すみません。
最初にDirectPlayを使用したプログラムだということを書いておけばよかったです。
ShellExecuteにDirectXが影響するとは考えもしなかったので・・・。


返信引用
ねこまた
 ねこまた
(@ねこまた)
ゲスト
結合: 19年前
投稿: 10
Topic starter  

なんとか解決することができました!

確かにDirectPlayでは、
ShellExecute()でURLを「標準ブラウザ」を起動する場合、
まともに動作しないようです。

ネットでShellExecute()でURLを開く例を探しまくったところ、
以下のようなコード例を見つけました。

ShellExecute(NULL,Open,IExplore, http://www.yahoo.com,NULL,SW_SHOW);

このコードだと、「標準ブラウザ」で起動することはできず、
必ずIEでURL開くことになりますが、
それでもちゃんとDirectPlayのプログラムでURLを開くことができました。

もし私のようにDirectPlayでShellExecute()がうまく動作しない方が
今後でてきましたら、これが参考になればなと思います。

アドバイスをしていただいた、Blueさま RAPTさま reshiaさま YuOさま 
どうもありがとうございました。とても勉強になりました。


返信引用
RAPT
 RAPT
(@RAPT)
ゲスト
結合: 22年前
投稿: 310
 

ねこまたさんの今後のために言っておきます。
(…もう見てないかもしれませんが。)

> RAPTさまに教えていただいたコードを、作成中のプログラムに埋め込んで実行しました。
> しかし「新規にソリューション・・」ということでは実行しませんでした。
> この作成中のプログラムで動かしたかったので。。
そうではなく、問題の切り分けのために、段階的にテストしていくのは基本中の基本です。
Windowsの設定が悪いのか、コードが悪いの化は、素のコードが動くかどうかで
ある程度線引きができるはずだからです。


返信引用
ねこまた
 ねこまた
(@ねこまた)
ゲスト
結合: 19年前
投稿: 10
Topic starter  

RAPT さま

なるほど。そういう意味だったのですね。
すみません。気づきませんでした。。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました