ShellExecuteでexcelとwordを起動したら、
すぐに自作exeの後ろ?(裏)にいってしまいます。
TEXTファイルなどは、そのまま表に表示されているのですが、
これはどうしたら治りますか?
教えてください。
宜しくお願いします。
こんな感じで試してみたのですが、Excelが裏に隠れる現象は起きませんでした。
TOTOさんの方法と違うところ、あります?
※Windows2000で確認(Debug/Releaseモード)
void CTest21Dlg::OnButton2()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
ShellExecute(
this->m_hWnd,
open,
c:\\hoge.xls,
NULL,
NULL,
SW_SHOW
);
}
現状、どう書いているんでしょう...。
前後で何をしているとか、そういった情報がないと回答のしようがないのですが。
私の環境では(Win2000, VC++6.0, Office2000)、
ShellExecute(m_hWnd, NULL, ワードorエクセルのパス, NULL, NULL, SW_SHOWNORMAL);
で問題なく「表」に表示されますけどね。
前後で何もしていません。
すいません、説明不足で。
環境は、Win2000です。
リストビュー内で、アイテムをダブルクリックするとそのアイテムの絶対パスを取得して
起動といった感じです。
ソースは、
string2 = 絶対パス
ShellExecute(GetParent()->GetSafeHwnd() , OPEN, string2, NULL, NULL, SW_SHOWNORMAL);
といった感じです。
宜しくお願いします。
すいません、説明不足で。
環境は、Win2000です。
リストビュー内で、アイテムをダブルクリックするとそのアイテムの絶対パスを取得して
起動といった感じです。
ソースは、
string2 = 絶対パス
ShellExecute(GetParent()->GetSafeHwnd() , OPEN, string2, NULL, NULL, SW_SHOWNORMAL);
といった感じです。
宜しくお願いします。
すいません、説明不足で。
環境は、Win2000です。
リストビュー内で、アイテムをダブルクリックするとそのアイテムの絶対パスを取得して
起動といった感じです。
ソースは、
string2 = 絶対パス
ShellExecute(GetParent()->GetSafeHwnd() , OPEN, string2, NULL, NULL, SW_SHOWNORMAL);
といった感じです。
宜しくお願いします。
同じ内容を3回も、どうしたのですか!?
> string2 = 絶対パス
> ShellExecute(GetParent()->GetSafeHwnd() , OPEN, string2, NULL, NULL, SW_SHOWNORMAL);
>
絶対パスには、何が入るんでしょうか。
*.xlsファイルや*.docファイルがフルパスで入るんですか?
まず、これを見る限りでは特に問題が起こるとは思えないのですが。
以下の事を試してみてください。
テスト1:
string2を、リストビューアイテムから動的に取得したデータではなく、
問題の現象を起こすファイル名を、リテラルで与えてみましょう。
リストビューのどのアイテムをダブルクリックをしてもそのファイルが起動される格好になりますが、
どうでしょう、同様の現象は発生しますか?
テスト2:
テスト用のプロジェクト(ダイアログベースでOK)を作り、ShellExecuteのところだけを
記述して実行してみる。
どうでしょう、同様の現象は発生しますか?
この手は、よその処理との兼ね合いで起こることが多く、
プログラム起動のところだけを見ても解決しないと思います。
プログラム起動後の処理や、開こうとしたファイルがどんなものなのか等、チェックする必要があると思います。
ありがとうございます。
いまいちうまくいきませんでしたが、
違うマシンでやったらうまくいきました。
何が原因かはよくわかりませんでした。
今後とも宜しくお願いします。
P.S
三回入ったのは、更新を押したら書かれるということに気づかなかったからです。