ShellExecuteでd:\ドライブのアプリ起動するには?

解決


f@初心者  2003-10-12 13:04:44  No: 109077  IP: [192.*.*.*]

すいません、間違えて解決押して立て直しました

ShellExecuteを使ってやると
C:\windows\の中のファイルしか起動できませんでした
d:\の中などのファイル起動出来ないです

中身はここの解説ページそのままです
ShellExecute(Me.hWnd, "Open", "Calc.exe", "c:\windows\", "", SW_SHOW)
のところを ShellExecute(Me.hWnd, "Open", "a.txt", "d:\", "", SW_SHOW)
に変えて実行しただけなんですがボタン押してもエラー文も反応もありません
d:\a.txtファイルの起動の仕方を教えてください

'標準モジュール
Public Declare Function ShellExecute  Lib "SHELL32"  Alias "ShellExecuteA" (ByVal hWnd&, ByVal lpOperation$, ByVal lpFile$, ByVal lpParameters$, ByVal lpDirectory$, ByVal nShowCmd&) As Long

Public Const SW_SHOW = 5 'ウインドウをアクティブにする

'ここからはフォーム内の処理です
Private Sub Command1_Click()
    Dim Ret As Long
      ShellExecute(Me.hWnd, "Open", "Calc.exe", "c:\windows\", "", SW_SHOW)
End Sub

編集 削除
たかみちえ  URL  2003-10-12 18:10:51  No: 109078  IP: [192.*.*.*]

第4引数の使い方が違うと思います。
第4引数に指定してるもの自体は問題ないと思いますけど、
それは別に、第3引数でパスを省略してもよいということではありません。(と思います)
第3引数にディレクトリを含めたパスを指定してください。

編集 削除
たかみちえ  URL  2003-10-12 18:14:37  No: 109079  IP: [192.*.*.*]

追記します。
電卓が普通に起動できたのは、
Calc.exeがC:\Windowsにあったから起動できた  というだけです。

  C:\Windowsを含めいくつかのフォルダは、
Windowsにパスが登録されているので、
省略してもいい  というだけです。

編集 削除
f@初心者  2003-10-12 20:04:27  No: 109080  IP: [192.*.*.*]

なるほどです
ありがとでした

ShellExecute(Me.hWnd, "Open", "d:\a.txt", "d:\", "", SW_SHOW)

編集 削除