У меня есть небольшая программа, которая просто проверяет, находится ли указанный файл на указанном сетевом диске, который не отображается на компьютере.
Чтобы проверить это, я временно отношусь к сетевому местоположению, проверьте, существует ли файл, и чем распакуйте диск. Теперь я понял, что я могу вызвать WNetAddConnection2 с пустым локальным именем (MSDN: если строка пуста или если lpLocalName равно NULL, функция делает подключение к сетевому ресурсу без перенаправления локального устройства.).
Только для отображения кода:Вызов 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, так как у меня нет локального имени. Так у меня теперь есть какие-то зомби на моем компьютере?
Как я могу увидеть все мои сетевые подключения на моем компьютере? Best будет короткой командой командной строки (что-то вроде NET USE).
Спасибо, был полезен для меня! – Fred