2010-02-19 62 views
2

我有一個小程序,它只是簡單地檢查指定的文件是否位於未映射到計算機上的指定網絡驅動器上。
若要檢查此臨時映射到網絡位置,請檢查該文件是否存在,並取消映射該驅動器。我現在想通了,我可以用一個空的本地名稱(MSDN:如果字符串爲空,或者如果lpLocalName爲NULL,則該函數在不重定向本地設備的情況下連接到網絡資源)可以調用WNetAddConnection2。
只是爲了顯示代碼:使用空的本地名稱調用WNetAddConnection2

NETRESOURCE nr; 
nr.dwType = RESOURCETYPE_DISK; 
nr.lpLocalName = NULL; // explicitly set this to NULL 
nr.lpRemoteName = "\\\\computer\\c$"; 
nr.lpProvider = NULL; 

DWORD dwResult = WNetAddConnection2(&nr, cstrPassword, cstrUsername, FALSE); 
if (dwResult != 0) 
{ 
    return false; 
} 

CPath cLocation(cstrFileLocation); 
return cLocation.FileExists() != FALSE; 

到目前爲止好代碼工作正常。但是我現在想知道的是,如果WNetAddConnection2的調用有任何問題?我無法調用WNetCancelConnection,因爲我沒有本地名稱。那麼現在我的電腦上有一些殭屍嗎?
如何查看我的計算機上的所有網絡連接?最好是命令提示符的簡短命令(類似於NET USE)。

回答

3

好吧,算出來。我可以撥打WNetCancelConnection2(nr.lpRemoteName, 0, TRUE);正確取消映射驅動器。

+0

謝謝,對我有用! – Fred 2012-11-29 11:00:29