Windows 7 での最初の状況 (明らかに 8.1 と 10 で同じ):
- 永続的な (!) ネットワーク ドライブ マッピング (別名「ログオン時に再接続」) を作成します。
- ここで、ネットワーク フォルダから物理的に切断します (ケーブルを抜くか、ターゲット システムをシャットダウンします)。
- ログオフして再度ログオンします。「すべてのネットワーク ドライブを再接続できませんでした」というバルーン メッセージが表示されますが、ドライブは引き続きエクスプローラーに表示されます (赤い十字)。
この時点で、そのネットワーク ドライブをアプリケーションからコードで削除したいと思います。
このために、私は WNetCancelConnection2 (他の状況でも問題なく動作します) を使用していますが、再現しやすくするために、コマンド ラインを使用することもできます。次のコマンドを実行します。
net use Z: /delete
(または使用したドライブ文字)。正常に完了したことが通知されます。「net use」を実行すると、ネットワークドライブが接続されていないことが表示されます。ただし、エクスプローラーでは、ドライブはまだそこにあります。ここで右クリックして切断を選択すると、エラーが発生します。そのドライブを削除するには、ログオフして再度ログオンするか、explorer.exe を強制終了して再度実行する必要があります。
興味深いことに、コードまたはコマンド ラインでドライブを削除する代わりに、エクスプローラーでドライブを右クリックしてそこから切断すると、問題なく動作します。そのため、右クリックオプションは、「ネット使用」および前述の API 呼び出しとは異なることを行います。それが何をするのか本当に知りたいです。
では、ここで何が問題なのですか?そして、それを解決する方法は?任意のプログラミング言語での任意のソリューションで問題ありません。前もって感謝します。