DOBON.NET DOBON.NETプログラミング掲示板過去ログ

.NETで共有ドライブを切断するには?

環境/言語:[XP]
分類:[.NET]

こんにちは、お世話になります。

.NETで、全ての共有ドライブを切断する方法ありませんでしょうか。

batファイルを使った方法を試しましたが、エクスプローラで開いている場合に
切断すると、いろいろメッセージが出てきてしまいます。

切断する前にエクスプローラを.NETから閉じる方法があればいいのですが
ウィンドウタイトルが取得できない(無い?)ようなので難しそうです。
taroh3さん、こんにちは

> .NETで、全ての共有ドライブを切断する方法ありませんでしょうか。
APIを使う方法なら以下のもので可能です。

//API宣言
[DllImport("mpr.dll", EntryPoint="WNetCancelConnection2")]
public static extern int WNetCancelConnection2A(string lpName, int dwFlags, int fForce);

//呼び出し
WNetCancelConnection2A("S:",1,-1);

引数は
ドライブ名(コロン付)
Flag 0=今だけ切断 1=次回ログオン以降も切断
Force -1=強制的に切断

です。

ちなみにエクスプローラはSpy++で見たところClass名がExploreWClassなので
[DllImport("user32.dll")]
public static extern int FindWindow(string strclassName, string strWindowName);

int h_Exp = FindWindow("ExploreWClass",null);

でハンドルは取れました。
でもその他ファイラーなんかでもネットワークドライブ表示していることも
あるでしょうから、エクスプローラだけ閉じればいいというものでもないですね^^;
ゆさん、返信ありがとうございます。

うまく切断することができました。

エクスプローラを閉じる方法にも挑戦してみます!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板