2009-03-25 19 views
1

リモートディレクトリを監視するプログラムをコーディングしています。 と私はWindows APIを使用しています:WNetAddConnection。 私はそれを使用してリモートディレクトリをZ:にマップします。指定されたユーザー/パスワードを使用します。私は作業環境にこのプログラムを入れた後どのようにWindowsのリモートディレクトリを切断するには?

、 誰かが私を監視同じディレクトリにログインするエクスプローラの場所「\ 192.168.xxの\のsomedir」を使用し、 、それは私のプログラムは、このディレクトリに接続することはできませんになり、 ので、Iこの人にこのことをしないように依頼しなければならないが、私は強制してはならない。

他のすべての接続を切断する方法があるかどうかを知りたい場合は、 を処理するか、それを避けてください。 どのようにすればよいですか?

ところで、私は窓の専門家ではないよ、 私はWindowsネットワーク(または何このバグが本当に意味)の詳細を知らないWindowsネットワークのドキュメントであり、 は私を誰にも言うことができますか?

+0

私は知らないが、なぜ、人々は、エクスプローラを使用して場所に置くとき:「\ 192.168.xxの\ somedir」 とユーザーを私のプログラムは、同じ共有ディレクトリに接続できません。 – linjunhalida

+0

これはMicrosoftの制限です。 1台のWindowsサーバー上の共有にアクセスする1台のWindowsクライアントは、アクセスしているすべての共有に対して同じユーザー名とパスワードを使用する必要があります。 –

答えて

1

醜いオプション:

あなたは「ネット使用」の出力を解析して、あなたは「ネット使用/ d」を使用して好きではない接続を切断することができ

WNetCancelConnection2はそのAPIのようですネット使用/ dが使用しています)

1
WNetCancelConnection2 

しかし、それは人にするのが最も面白いことではありません。

+0

私たちは工場でのみ使用されるプログラムを開発しており、ユーザーは労働者です... – linjunhalida

0

APIについてはわかりませんが、net session/deleteは開いているすべてのセッションを共有から切断します。

0

手順に従うこれを行うことができます:すべてのネットユーザーとpasswdを削除するために実行し、 1を、順序は次のとおりです。 ます。rundll32.exe shell32.dllの、Control_RunDLL keymgr.dll 2、メモリ内のネットユーザーのすべての情報を削除するord ER: net use * /delete /y か、1つのbatファイルを作成することができますが、フォロー情報の聖霊降臨祭:

@echo off 
rundll32.exe shell32.dll,Control_RunDLL keymgr.dll 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 

net use 
net use 
net use 

net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
net use * /delete /y 
関連する問題