2012-03-20 11 views
6

私のプログラムでドライブをマップしたいと思っています。私のユーザーはXP上のWindowsのすべてのバージョンを上から使用することができます。だから私は最も多目的な方法が必要です。私は前に最初の方法を使用して、一般的に私のためにうまくいきました。しかし、実際には(それは私がとにかく知っている)それでエラーをキャッチする方法はありません。 2つ目は簡単にtry/catchブロックを囲むことができますが、方法1の選択肢に対して行ったすべての検索では、方法2を1回しか実行しませんでした。そのようなさまざまな環境のために十分に信頼できるかどうか疑問に思います。ほとんどの状況で方法2が安全かどうか誰にでも教えてもらえますか?マップネットワークドライブ: "net.exe USE"とWshNetwork.MapNetworkDrive?

方法1

Process.Start("net.exe", @"USE Z: \\server\share /user:domain\username password").WaitForExit(); 

方法2 Windowsスクリプトホストオブジェクトモデル

IWshNetwork_Class network = new IWshNetwork_Class(); 
network.MapNetworkDrive("k:", @"\\server\share"); 
+3

私は#2が好きです。よりクリーンに見え、APIの一部として提供されました。しかし、資格などを指定できるのはどうですか? –

+0

はい、資格情報を使用できます。わかりやすくそれを残しました。 – JimDel

+1

http://pinvoke.net/default.aspx/mpr/WNetAddConnection2.html –

答えて

4

を参照する他のアプローチは、実際のWin32のAPI(WNetAddConnection2A、WNetCancelConnection2A、など)のPInvokeことであろう。 チェックアウトhttp://www.codeguru.com/csharp/csharp/cs_network/windowsservices/article.php/c12357/

+0

第三者が作成したクラスを使用していないと完璧です。私はそれらを使用することはできません。 – JimDel

+2

あなたは彼のクラスを使う必要はありません。彼の作品に基づいて自分自身を作成することができます。 – dvallejo