XP sp2 VC++6.0 MFC
ShellExecuteを利用して複数のファイルを立ち上げたいのですが、
一つしか立ち上げることができません。
for文のループでShellExecuteを選択したアイテム分起動してします。
何故か一度そのファイルを閉じないと開けないです。
ソースコードは?
それから、その「立ち上げたい」ファイルの種類は?
これです。
何か間違っていますか。
自分ではわかりません。
// リストビューの表示されてる情報を全て消去
CListCtrl& ListCtrl = GetListCtrl();
// 選択したアイテム数を取得
int ItemNum = ListCtrl.GetSelectedCount();
// 選択した全てのファイルを取得する
POSITION pos = ListCtrl.GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0(No items were selected!\n);
else
{
while (pos)
{
// 選択したリストの番号を取得
int nItem = ListCtrl.GetNextSelectedItem(pos);
// ファイルのフルパスを取得してShellExecute関数でファイルを開く(ダブルクリッ
クしたファイル)
HINSTANCE result = ShellExecute
(NULL, open, C:\\test.tif ,NULL ,NULL, SW_SHOW);
if( result != 0 ) return false;
}
}
エクスプローラのフォルダオプションの TIF ファイルの open の
「DDEを使う」のチェックをはずしてみたらどうなりますか?
# m_lpCmdLine の使い方について は解決したのでしょうか?
>エクスプローラのフォルダオプションの TIF ファイルの open の
>「DDEを使う」のチェックをはずしてみたらどうなりますか?
あんま関係なかったかも。。。
とりあえず open でどのプログラムに関連付けられているかを示されたほうがいいと
思います。
> HINSTANCE result = ShellExecute
> (NULL, open, C:\\test.tif ,NULL ,NULL, SW_SHOW);
> if( result != 0 ) return false;
戻り値は、a value greater than 32 if successful, or an error value
that is less than or equal to 32 otherwise. ですので、
ループを抜けてしまうと思いますが。