2010-02-19 3 views
2

컴퓨터에 매핑되지 않은 지정된 네트워크 드라이브에 지정된 파일이 있는지를 단순히 확인하는 작은 프로그램이 있습니다.
이것을 확인하려면 네트워크 위치에 임시로 매핑하고 파일이 존재하는지 확인하고 드라이브 매핑을 해제하십시오. 이제는 WNetAddConnection2를 빈 로컬 이름 (MSDN : string이 비어 있거나 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을 호출 할 수 없습니다. 그렇다면 지금 내 컴퓨터에 좀비가 있습니까?
내 컴퓨터의 모든 네트워크 연결을 어떻게 볼 수 있습니까? 최상은 명령 프롬프트 (NET USE와 비슷한 것)에 대한 간단한 명령입니다.

답변

3

좋아, 알아 냈어. WNetCancelConnection2(nr.lpRemoteName, 0, TRUE);으로 전화하여 드라이브의 매핑을 올바르게 해제 할 수 있습니다.

+0

감사합니다. 유용했습니다. – Fred

관련 문제