ShellExecuteでイニファイルが開かないのですが何故でしょうか。
どなたか教えてください。
Dim ret As Long
ret = ShellExecute
(hwnd, "open", "c:\test.txt", vbNull, vbNull, SW_SHOW)
ret = ShellExecute
(hwnd, "open", "c:\test.ini", vbNull, vbNull, SW_SHOW)
とやると、.txtのほうは開きますが、.iniは開きません。
起動アプリはいずれもメモ帳です。
retは.txtのほうが、25042 で .iniのほうが24303です。
どちらも関数成功範囲内だと思うのですが。
環境はWinMe VB6.0+sp5です。
ちなみにVCだと両方とも開きました。
よろしくお願いします。
ShellExecuteは、"ファイルを関連付けで開く"APIです。
.ini は何かに関連付けされていますか?
関連付けをしてからやり直すか、VB標準のShell関数を使って(確かその辺はヘルプにもあったような気がしますけど…)、開くソフトを指定して開いてください。
すいません勘違いしていまして、
.txtにはTerapadが割りあたっていました。
.iniはwindowsのメモ帳なので、
メモ帳の起動がうまく行ってないみたいです。
拡張子に割りあたっているアプリが起動する
設定だと思うのですが、なぜメモ帳だけ
起動しないのでしょう。
(.txtにメモ帳を割り当てるとこちらも起動しなくなりました。
逆に.iniにTerapadを割り当てると起動しました。)
Shell関数ってexeしか起動できないと思っていた
のですが。単純にShell("c:\test.txt)などとすると、
エラーになりますがどうすればよろしいんでしょうか。
この掲示板を、キーワード"コマンドライン"などで探してみてください。
たかみちえさんありがとうございました。
Shell("Notepad.exe" & " " & filename, vbNormalFocus)
で、できました。
また、過去ログと重複してしまい申し訳ありませんでした。
ツイート | ![]() |