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" はどこへ消えてしまったのでしょうか?
このような質問が一つありましたが、変数に格納している文字列の場合なので別記で質問してみました。お願いします。
私の環境では、正しく取得できました。
ちなみにコードは次のような感じで書いてみました。
'*** 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
すいません。付け足します。
EXEの起動にはCreateProcess関数を使用して、実行が終了するまで待機させています。このCreateProcessの第二引数がCommandLineです。
それから、すいません。
FilePath = "C:\My Documents\My Pictures\aaa.jpg" & ",1"
でした。
質問です。
FilePath = " C:\My Documents\My Pictures\aaa.jpg" & ",1"
先頭にスペースを入れたら動きました。(自己解決?というか独り言になってしまってますね。)
でも原因がわかりません。なんででしょうか?
# 自信がないので、間違っているかもしれません。悪しからず (^_^)
あなたの場合恐らく
CreateProcess([実行ファイルのパス], [渡す引数], ...)
というようにしているのでは?
普通、引数がある場合は、
CreateProcess(vbNullString, [実行ファイルのパス スペース 渡す引数], ...)
という感じで行います。
# ホントかなぁ...。たぶんね。 (^O^)
とろさん、ありがとうございます。
確かにそのやり方でできました!
多分というのが少し怖いですが、、、。
ツイート | ![]() |