ShellExecuteExについて – プログラミング – Home

通知
すべてクリア

[解決済] ShellExecuteExについて


n_n
 n_n
(@n_n)
ゲスト
結合: 19年前
投稿: 31
Topic starter  

以下のようなコードを書いてみました。
SHELLEXECUTEINFO si;
ZeroMemory(&si,sizeof(SHELLEXECUTEINFO));
si.cbSize = sizeof(SHELLEXECUTEINFO);
si.fMask = SEE_MASK_NOCLOSEPROCESS;
si.hwnd = hWnd;//自分のウィンドウハンドル
si.lpVerb = open;
si.lpFile = http://www.yahoo.co.jp/;
si.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&si);

ヤフーのサイトは開くのですが、si.hProcessにハンドルが帰ってきません。
hProcess = 0 になってしまいます。

僕の感じでは、si.hProcessにインターネットエクスプローラのウィンドウハンドルが帰
ってくると思っていたのですが、どうも上手くいきません。
コーディングがおかしいのでしょうか?どなたかご教授下さい。
環境はWindowsXPです。


引用未解決
トピックタグ
Kerry
 Kerry
(@Kerry)
ゲスト
結合: 20年前
投稿: 192
 

> si.hProcessにインターネットエクスプローラのウィンドウハンドルが帰
> ってくると思っていたのですが、

返ってくるのはプロセスのハンドルですね。

MSDNによりますと、

> Even if fMask is set to SEE_MASK_NOCLOSEPROCESS, hProcess will be NULL
> if no process was launched. For example, if a document to be launched
> is a URL and an instance of Microsoft® Internet Explorer is already
> running, it will display the document. No new process is launched, and
> hProcess will be NULL.

とありますので、すでにIEが起動している状態でURLを開く場合(新しいプロセスが
起動しない場合)はNULLが返されます。


返信引用
n_n
 n_n
(@n_n)
ゲスト
結合: 19年前
投稿: 31
Topic starter  

なるほどぉ。納得しました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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