ShellExecute

解決


define  2003-11-07 07:43:09  No: 109765

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だと両方とも開きました。
よろしくお願いします。


たかみちえ  URL  2003-11-07 07:56:46  No: 109766

ShellExecuteは、"ファイルを関連付けで開く"APIです。
.ini は何かに関連付けされていますか?

  関連付けをしてからやり直すか、VB標準のShell関数を使って(確かその辺はヘルプにもあったような気がしますけど…)、開くソフトを指定して開いてください。


define  2003-11-07 07:59:31  No: 109767

すいません勘違いしていまして、
.txtにはTerapadが割りあたっていました。
.iniはwindowsのメモ帳なので、
メモ帳の起動がうまく行ってないみたいです。
拡張子に割りあたっているアプリが起動する
設定だと思うのですが、なぜメモ帳だけ
起動しないのでしょう。
(.txtにメモ帳を割り当てるとこちらも起動しなくなりました。
逆に.iniにTerapadを割り当てると起動しました。)


define  2003-11-07 08:11:02  No: 109768

Shell関数ってexeしか起動できないと思っていた
のですが。単純にShell("c:\test.txt)などとすると、
エラーになりますがどうすればよろしいんでしょうか。


たかみちえ  URL  2003-11-07 08:47:27  No: 109769

この掲示板を、キーワード"コマンドライン"などで探してみてください。


define  2003-11-07 18:08:38  No: 109770

たかみちえさんありがとうございました。

Shell("Notepad.exe" & " " & filename, vbNormalFocus)
で、できました。
また、過去ログと重複してしまい申し訳ありませんでした。


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

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






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