すいません、間違えて解決押して立て直しました
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
第4引数の使い方が違うと思います。
第4引数に指定してるもの自体は問題ないと思いますけど、
それは別に、第3引数でパスを省略してもよいということではありません。(と思います)
第3引数にディレクトリを含めたパスを指定してください。
追記します。
電卓が普通に起動できたのは、
Calc.exeがC:\Windowsにあったから起動できた というだけです。
C:\Windowsを含めいくつかのフォルダは、
Windowsにパスが登録されているので、
省略してもいい というだけです。
なるほどです
ありがとでした
ShellExecute(Me.hWnd, "Open", "d:\a.txt", "d:\", "", SW_SHOW)
ツイート | ![]() |