VBで「ファイル名を指定して実行」と同様の動きを再現
VB6、WindowsXP
VBのプログラムからあるフォルダを開きにいく単純なプログラムを作成しています。
通常のローカルフォルダであれば、Shell関数でExplorer.exeにパスを渡すだけで問題ないのですが、うまくいかないのは、
開きにいくパスがネットワークパス(\\[サーバ名]\[共有名])の場合で、サーバーにアクセスするのに認証が必要となる場合です。
ファイル名を指定して実行に「\\[サーバ名]\[共有名]」を打ち込んで実行した場合は、Windowsが出してくる認証ダイアログ(ユーザ名、パスワードを聞いてくる)が表示されて、ユーザーが正しいID、パスワードを入力すれば、エクスプローラで共有フォルダが開きます。
この動きがまさにやりたいことなのですが、
Shell関数を使用した場合、引数に「Explorer.exe \\[サーバ名]」と指定した場合はファイル名を指定して実行と同じなのですが、
「Explorer.exe \\[サーバ名]\[共有名]」を指定した場合、認証ダイアログが表示されずにエラー(ディレクトリが無効というような)となってしまいます。おそらく先にサーバ認証を行わずに直接共有を見に行ってしまって存在が掴めないのだと思います。
VBでファイル名を指定して実行と同様の動きを再現する方法をどなたかご存知ないでしょうか?
尚、shellexecuteやVB.NETでprocess.startなどでもやってみましたがshell関数と同じ動きでした。