コマンドライン

解決


アサシ  2002-11-25 18:42:04  No: 105506

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 19:29:48  No: 105507

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

'*** 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 19:34:12  No: 105508

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

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


アサシ  2002-11-25 19:41:57  No: 105509

それから、すいません。

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


アサシ  2002-11-25 20:59:44  No: 105510

質問です。

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

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

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


とろ  2002-11-25 21:24:08  No: 105511

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

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

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

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


アサシ  2002-11-25 22:27:09  No: 105512

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加