请问高手,如何用WNetAddConnection2连接XP的共享资源?
孤客天涯 2005-07-29 11:11:28 BOOL CScrPluginView::EstablishConnection( LPCTSTR lpszRemote, LPCTSTR lpszResource, LPCTSTR lpszUser,LPCTSTR lpszPassword,BOOL bEstablish )
{
TCHAR szRemoteResource[_MAX_PATH];
DWORD rc;
// Remote resource, \\remote\ipc$, remote\admin$, ...
_stprintf( szRemoteResource, _T("\\\\%s\\%s"), lpszRemote, lpszResource );
//
// disconnect or connect to the resource, based on bEstablish
//
if ( bEstablish )
{
NETRESOURCE nr;
nr.dwType = RESOURCETYPE_ANY;
nr.lpLocalName = NULL;
nr.lpRemoteName = (LPTSTR)&szRemoteResource;
nr.lpProvider = NULL;
//Establish connection (using username/pwd)
rc = WNetAddConnection2( &nr, lpszPassword, lpszUser, FALSE );
switch( rc )
{
case ERROR_ACCESS_DENIED:
case ERROR_INVALID_PASSWORD:
case ERROR_LOGON_FAILURE:
case ERROR_SESSION_CREDENTIAL_CONFLICT:
// Prompt for password if the default(NULL) was not good
if ( lpszUser != NULL && lpszPassword == NULL )
{
//Establish connection (using username/pwd) again
rc = WNetAddConnection2( &nr, lpszPassword, lpszUser, FALSE );
}
break;
}
}
else
// Disconnect
rc = WNetCancelConnection2( szRemoteResource, 0, NULL );
if ( rc == NO_ERROR )
return TRUE; // indicate success
return FALSE;
}
我是用以上代码进行连接,在2000,nt下都可以能过,但在XP下则不灵了,我做了几次测试,如果XP将User用户禁止,连接是老报"未知的用户名或错误密码",如果开启User用户,即使以Administrator身份登录也报"拒绝访问"错误,这是为什么?