複数のブラウザの立ち上げ方法 – プログラミング – Home

複数のブラウザの立ち上げ方法
 
通知
すべてクリア

[解決済] 複数のブラウザの立ち上げ方法

固定ページ 1 / 2

キンチ
 キンチ
(@キンチ)
ゲスト
結合: 23年前
投稿: 19
Topic starter  

VC初心者のキンチと言う物です。
 
ShellExecuteを使用して、Webページをブラウザで起動させることはできたのですが、
次に起動した際に、以前のブラウザに上書きしてWebページが表示されてしまいます。

どうにかして、上書きせずに、新規にブラウザを立ち上げて表示させたいのですが
どこをどういじればいいのかわかりません。

ちなみに下記のようにプログラムしました。
ShellExecute(NULL, open, http://www.yahoo.co.jp, NULL, NULL, SW_SHOW);

ShellExecute以外にもなにか方法があれば教えていただきたいのですが

よろしくお願いします。

環境は Win2000 VC6.0 です。


引用未解決
トピックタグ
euro2004
 euro2004
(@euro2004)
ゲスト
結合: 22年前
投稿: 37
 

はじめまして

ShellExecuteってつかったことないので、目的の機能を実現できるか
わかりませんが、コマンドラインから起動するとき
iexplore.exe /n *******(URL)とすると常にするみたいです。
以下のサイトに書いてありました。

http://www5d.biglobe.ne.jp/~rugeye/html/appendix_faq_explorer.html

#参考になりますか?


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

誤)iexplore.exe /n ****(URL)とすると常にするみたいです
正)iexplore.exe /n
****(URL)とすると常に新規に起動するみたいです

失礼しました。


返信引用
キンチ
 キンチ
(@キンチ)
ゲスト
結合: 23年前
投稿: 19
Topic starter  

euro2004さん、返信ありがとうございます。

上記の方法を使うと新規で起動はできそうですが、ブラウザを指示する必要がでてしまい
ます。

できれば起動するブラウザをIEなどで固定したくないんですよね。各PCで関連付けられて
いるブラウザで立ち上がるようになってほしいんですが。

説明不足でした、すいません。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

ブラウザの指定をせずに、尚且つブラウザ側の設定も変えずにという事だと
無理なのではと思います。
受け取ったURLに対してどういうアクションを取るかはブラウザ側の判断ですし、
関連付けで起動する限りはその部分を指定する余地はないと思います。
逆に方法があるなら私もぜひ知りたいです。


返信引用
キンチ
 キンチ
(@キンチ)
ゲスト
結合: 23年前
投稿: 19
Topic starter  

 そうなんですか、ありがとうございました。
別の方法を考えてみます。

またよろしくお願いします。


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

> 各PCで関連付けられて
> いるブラウザで立ち上がるようになってほしいんですが。
>
単純に、関連付けられているモジュールは何なのかを自分で取得すればよいのでは?
レジストリで情報を取ってこれそうです。
以下のキーなんかどうでしょう?

HKEY_CLASSES_ROOT\http\shell\open\command


返信引用
キンチ
 キンチ
(@キンチ)
ゲスト
結合: 23年前
投稿: 19
Topic starter  

sugarさん言う方法で関連付けられているブラウザを取得したいのですが、
レジストリから情報を取得する方法がわかりません。
 
HKEY_CLASSES_ROOT\http\shell\open\command

は、どうすると関連付けられているモジュールを取得できるのでしょうか?

なにか参考になるものがあれば教えていただけないでしょうか。


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

まずはレジストリエディタで上述のキーを参照してみてください。

レジストリ情報の取得は、RegQueryValue()でよいと思います。
※MSDNではRegQueryValueEx()を推奨していますが、Exじゃない方で十分でしょう。


返信引用
キンチ
 キンチ
(@キンチ)
ゲスト
結合: 23年前
投稿: 19
Topic starter  

レジストリエディタで、探してみたのですが、上記のキーはありませんでした。
私はなにか勘違いをしているんでしょうか?


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

WindowsXPですが、ありましたよ。

#HKEY_CLASSES_ROOTを展開して結構下のほうなので
#私も最初は、.httやら.htmlはあるけどhttpがないな?と思いましたが。


返信引用
キンチ
 キンチ
(@キンチ)
ゲスト
結合: 23年前
投稿: 19
Topic starter  

すいません。

こっちの勘違いでした。下の方にありました。

注意力が落ちてきてます。

RegQueryValueを使ってパスを取得する方法を調べてみます。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

ファイルに関連付けられているEXEなら、FindExecutableで取得できませんか?


返信引用
キンチ
 キンチ
(@キンチ)
ゲスト
結合: 23年前
投稿: 19
Topic starter  

dairygoodsさん、返信ありがとうございます。

ですが、FindExecutableを使うと、ファイル自体が必要となるため、使用したくないんで
す。

拡張子のみで関連付けのEXEを取得するには、レジストリを見るしかないと思っているん
ですが、


返信引用
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 22年前
投稿: 160
 

> ですが、FindExecutableを使うと、ファイル自体が必要となるため、使用したくないんで
す。

htmlファイルのアイコンが欲しくて、SHGetFileInfo()を使った時も
ファイル実体が必要でした。
私の場合、テンポラリにサイズ0バイトのファイルを一時的に作成して処理しました。

今回の場合、httpに関連付けられているEXEが必要なので、*.htmを作成する方法は
よろしくないかと思います。
(httpの関連付けと*.htmでの関連付けが違うなんてコトはまずないとは思いますけど。)
ちなみに、FindExecutable()でファイル名に http://127.0.0.1を渡してみるという方法を
試して見ましたが、
Win98SEではERROR_FILE_NOT_FOUNDでした。(まぁ、ファイルではないですからねぇ…)

と、いうコトでレジストリから取得する方法の方がいいと思います。


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

返信する

投稿者名

投稿者メールアドレス

タイトル *

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