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はネットワーク制御を扱うものですし・・・。
うーん
> おそらく、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
Blue さま
RAPTさまに教えていただいたコードを、作成中のプログラムに埋め込んで実行しました。
しかし「新規にソリューション・・」ということでは実行しませんでした。
この作成中のプログラムで動かしたかったので。。
Googleで「DirectPlay ShellExecute」で検索したところ、
一番最初にHITするサイトによると、ShellExecuteでブラウザが起動しないのは、
やはりどうやらDirectPlayが原因のようですね・・・。
すみません。
最初にDirectPlayを使用したプログラムだということを書いておけばよかったです。
ShellExecuteにDirectXが影響するとは考えもしなかったので・・・。
なんとか解決することができました!
確かに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さまに教えていただいたコードを、作成中のプログラムに埋め込んで実行しました。
> しかし「新規にソリューション・・」ということでは実行しませんでした。
> この作成中のプログラムで動かしたかったので。。
そうではなく、問題の切り分けのために、段階的にテストしていくのは基本中の基本です。
Windowsの設定が悪いのか、コードが悪いの化は、素のコードが動くかどうかで
ある程度線引きができるはずだからです。
RAPT さま
なるほど。そういう意味だったのですね。
すみません。気づきませんでした。。