• ベストアンサー

MSペイントを画像ファイル名をつけて起動したいのですが VB.NET

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型の変数を別の処理で使いたいので、 できればこの方法で起動したいです。 解決策がありましたら、ご教授頂けると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.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 といった具合にしましょう

goo081102
質問者

お礼

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

その他の回答 (1)

  • Gizensha
  • ベストアンサー率34% (207/608)
回答No.1

ヒントだけ。 コマンドラインから起動するときは MSPAINT "C:\AAA BBB\あいうえお\1.jpg" のように起動します。

goo081102
質問者

お礼

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

関連するQ&A