My Documentsなどスペースがあるフォルダ名について。 – プログラミング – Home

My Documentsなどスペースが...
 
通知
すべてクリア

My Documentsなどスペースがあるフォルダ名について。


とろ
 とろ
(@とろ)
ゲスト
結合: 24年前
投稿: 10
Topic starter  

ShellExcuteでアプリケーションをを開くときに、引数のパス名にMy Document
などの、スペースがあるパス名だと、エラーが出て開けません。
良い対処の方法があったら教えてください。お願いします。

例;ShellExecute(NULL,open,DataFileName,C:\\My Documents\\hello.c,NULL,SW_SHOWNORMAL);


引用解決済
トピックタグ
toru
 toru
(@toru)
ゲスト
結合: 24年前
投稿: 48
 

> ShellExecute(NULL,open,DataFileName,C:\\My Documents\\hello.c,NULL,SW_SHOWNORMAL);

というかDataFileNameがわからないと対処のしようが無いんですが...


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

失礼しました。
DataFileNameはMSDEV.EXEです。
よろしくお願いします。


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

フルパスじゃないんですか?それだとダメですよ。
あと気づいたんですけどカレントディレクトリは入れないとマズいですよ


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

ShellExecute(NULL,open,MSDEV.exe,C:\\My Documents\\hello.c,NULL,SW_SHOWNORMAL);
で実行させると、Visual Studioは立ち上がるのですが、
「C:\Myファイルが見つかりません。正しいファイル名を入力してください。」
「Documents\hello.cファイルが見つかりません。正しいファイル名を入力してください。」
とでてきます。
"でくくると、「'ShellExecuteA' : 関数が不正な 4 個の実引数をともなって呼び出されました。」
というコンパイルエラーが出てしまいます。
何かいい方法をご存知でしたら教えてください。


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

> "でくくると、「'ShellExecuteA' : 関数が不正な 4 個の実引数をともなって呼び出されました。」

って,"C:\\My Documents\\hello.c"ってやったんですか?
文字列にを含めるには,\を使います。なので,
\C:\\My Documents\\hello.c\"
としたらどうなるでしょう。これで恐らく開けるはずです。

最後の手段として,GetShortPathNameでショートファイル名を取得して開くとか。
これだと,スペースが消えるので確実です。


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

ShellExecute(NULL,open,MSDEV.exe,\C:\\My Documents\\hello.c\",NULL,SW_SHOWNORMAL);
で開くことができました。
よきアドバイス、ありがとうございました。


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

ShellExecute(NULL,open,MSDEV.exe,\C:\\My Documents\\hello.c\",NULL,SW_SHOWNORMAL);
で開くことができました。
よきアドバイス、ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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