アプリ版:「スタンプのみでお礼する」機能のリリースについて

Dim p As Process
p = Process.Start("MSPAINT.EXE", FileName)

という方法で、MSPAINTを起動したいのですが、
FileNameの中のパスが"C:\1.jpg"の場合は正常に起動するのですが、
"C:\AAA BBB\あいうえお\1.jpg"の場合、
”C:\AAA.bmpが見つかりませんでした。[OK]”というメッセージボックスが出て
起動することができないのですが、
このように半角スペースが入るフォルダにあるファイルでも
開けるようにするにはどうしたら良いでしょうか。

pに割り当てたProcess型の変数を別の処理で使いたいので、
できればこの方法で起動したいです。

解決策がありましたら、ご教授頂けると幸いです。

A 回答 (2件)

FileNameの中身をチェックして ""でくくるようにしましょう



ハードコーディングなら
FileName = """C:\AAA BBB\あいうえお\1.jpg"""
といった具合にします

どこかから代入されてくるのであれば
' FileNameにスペースが含まれている
' FileNameの先頭が "ではない場合
if FileName.IndexOf(" ")> 0 andalso FileName.Substring(0,1)<>"""" then
  FileName = String.Format("""{0}""",FileName)
end if
といった具合にしましょう
    • good
    • 1
この回答へのお礼

ありがとうございます。
できました!!

お礼日時:2008/12/09 18:55

ヒントだけ。



コマンドラインから起動するときは
MSPAINT "C:\AAA BBB\あいうえお\1.jpg"
のように起動します。
    • good
    • 0
この回答へのお礼

"ごと渡すというのは気づきませんでした。
ありがとうございます。

お礼日時:2008/12/09 18:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!