コマンドライン

解決


アサシ  2002-11-25 09:42:04  No: 105506  IP: [192.*.*.*]

aaa.exeからbbb.exeを起動し、CommandLineとして
"C:\My Documents\My Pictures\aaa.jpg"をFilePathというString型に格納して渡した。
bbb.exeでCommandLineを取得して、MSGを表示すると

  "Documents\My Pictures\aaa.jpg" と表示されます。

"C:\My" はどこへ消えてしまったのでしょうか?

このような質問が一つありましたが、変数に格納している文字列の場合なので別記で質問してみました。お願いします。

編集 削除
とろ  2002-11-25 10:29:48  No: 105507  IP: [192.*.*.*]

私の環境では、正しく取得できました。
ちなみにコードは次のような感じで書いてみました。

'*** aaa.exe
Private Sub Command1_Click()
  Dim sArg As String
  sArg = "C:\My Documents\My Pictures\aaa.jpg"
  Shell "bbb.exe " & sArg
End Sub

'*** bbb.exe
Private Sub Form_Load()
  MsgBox Command()
End Sub

編集 削除
アサシ  2002-11-25 10:34:12  No: 105508  IP: [192.*.*.*]

すいません。付け足します。

EXEの起動にはCreateProcess関数を使用して、実行が終了するまで待機させています。このCreateProcessの第二引数がCommandLineです。

編集 削除
アサシ  2002-11-25 10:41:57  No: 105509  IP: [192.*.*.*]

それから、すいません。

FilePath = "C:\My Documents\My Pictures\aaa.jpg" & ",1"
  
でした。

編集 削除
アサシ  2002-11-25 11:59:44  No: 105510  IP: [192.*.*.*]

質問です。

FilePath = " C:\My Documents\My Pictures\aaa.jpg" & ",1"

先頭にスペースを入れたら動きました。(自己解決?というか独り言になってしまってますね。)

でも原因がわかりません。なんででしょうか?

編集 削除
とろ  2002-11-25 12:24:08  No: 105511  IP: [192.*.*.*]

# 自信がないので、間違っているかもしれません。悪しからず (^_^)

あなたの場合恐らく
CreateProcess([実行ファイルのパス], [渡す引数], ...)
というようにしているのでは?

普通、引数がある場合は、
CreateProcess(vbNullString, [実行ファイルのパス スペース 渡す引数], ...)
という感じで行います。

# ホントかなぁ...。たぶんね。 (^O^)

編集 削除
アサシ  2002-11-25 13:27:09  No: 105512  IP: [192.*.*.*]

とろさん、ありがとうございます。
確かにそのやり方でできました!

多分というのが少し怖いですが、、、。

編集 削除