ShellExecuteで起動したあと。 – プログラミング – Home

ShellExecuteで起動したあと...
 
通知
すべてクリア

[解決済] ShellExecuteで起動したあと。


TOTO
 TOTO
(@TOTO)
ゲスト
結合: 24年前
投稿: 29
Topic starter  

ShellExecuteでexcelとwordを起動したら、
すぐに自作exeの後ろ?(裏)にいってしまいます。
TEXTファイルなどは、そのまま表に表示されているのですが、
これはどうしたら治りますか?
教えてください。
宜しくお願いします。


引用未解決
トピックタグ
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

こんな感じで試してみたのですが、Excelが裏に隠れる現象は起きませんでした。
TOTOさんの方法と違うところ、あります?
※Windows2000で確認(Debug/Releaseモード)

void CTest21Dlg::OnButton2()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
ShellExecute(
this->m_hWnd,
open,
c:\\hoge.xls,
NULL,
NULL,
SW_SHOW
);
}


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

現状、どう書いているんでしょう...。
前後で何をしているとか、そういった情報がないと回答のしようがないのですが。

私の環境では(Win2000, VC++6.0, Office2000)、

ShellExecute(m_hWnd, NULL, ワードorエクセルのパス, NULL, NULL, SW_SHOWNORMAL);

で問題なく「表」に表示されますけどね。
前後で何もしていません。


返信引用
TOTO
 TOTO
(@TOTO)
ゲスト
結合: 24年前
投稿: 29
Topic starter  

すいません、説明不足で。
環境は、Win2000です。
リストビュー内で、アイテムをダブルクリックするとそのアイテムの絶対パスを取得して
起動といった感じです。
ソースは、
string2 = 絶対パス
ShellExecute(GetParent()->GetSafeHwnd() , OPEN, string2, NULL, NULL, SW_SHOWNORMAL);
といった感じです。
宜しくお願いします。


返信引用
TOTO
 TOTO
(@TOTO)
ゲスト
結合: 24年前
投稿: 29
Topic starter  

すいません、説明不足で。
環境は、Win2000です。
リストビュー内で、アイテムをダブルクリックするとそのアイテムの絶対パスを取得して
起動といった感じです。
ソースは、
string2 = 絶対パス
ShellExecute(GetParent()->GetSafeHwnd() , OPEN, string2, NULL, NULL, SW_SHOWNORMAL);
といった感じです。
宜しくお願いします。


返信引用
TOTO
 TOTO
(@TOTO)
ゲスト
結合: 24年前
投稿: 29
Topic starter  

すいません、説明不足で。
環境は、Win2000です。
リストビュー内で、アイテムをダブルクリックするとそのアイテムの絶対パスを取得して
起動といった感じです。
ソースは、
string2 = 絶対パス
ShellExecute(GetParent()->GetSafeHwnd() , OPEN, string2, NULL, NULL, SW_SHOWNORMAL);
といった感じです。
宜しくお願いします。


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

同じ内容を3回も、どうしたのですか!?

> string2 = 絶対パス
> ShellExecute(GetParent()->GetSafeHwnd() , OPEN, string2, NULL, NULL, SW_SHOWNORMAL);
>
絶対パスには、何が入るんでしょうか。
*.xlsファイルや*.docファイルがフルパスで入るんですか?

まず、これを見る限りでは特に問題が起こるとは思えないのですが。
以下の事を試してみてください。

テスト1:
 string2を、リストビューアイテムから動的に取得したデータではなく、
 問題の現象を起こすファイル名を、リテラルで与えてみましょう。
 リストビューのどのアイテムをダブルクリックをしてもそのファイルが起動される格好になりますが、
 どうでしょう、同様の現象は発生しますか?

テスト2:
 テスト用のプロジェクト(ダイアログベースでOK)を作り、ShellExecuteのところだけを
 記述して実行してみる。
 どうでしょう、同様の現象は発生しますか?

この手は、よその処理との兼ね合いで起こることが多く、
プログラム起動のところだけを見ても解決しないと思います。
プログラム起動後の処理や、開こうとしたファイルがどんなものなのか等、チェックする必要があると思います。
 


返信引用
TOTO
 TOTO
(@TOTO)
ゲスト
結合: 24年前
投稿: 29
Topic starter  

ありがとうございます。
いまいちうまくいきませんでしたが、
違うマシンでやったらうまくいきました。
何が原因かはよくわかりませんでした。
今後とも宜しくお願いします。

P.S
三回入ったのは、更新を押したら書かれるということに気づかなかったからです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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