C++访问一个带密码的共享文件夹的方法

1 篇文章 0 订阅
1 篇文章 0 订阅

首先先说明,方法是根据51CTO论坛的回答得出的,具体网址是:http://bbs.51cto.com/thread-910854-1.html  标题:编写一个带密码的访问共享文件夹的小工具


1、使用 Net use 取得与服务器的连接即可

system("net use \\\\192.168.1.100\\ck\\a b /user:a"); 

接着就能访问共享文件夹了。

2、像 @紫色枫叶 那样使用 WNetAddConnection2(LPNETRESOURCE lpnetresource,LPCTSTR lpPassword,LPCTSTR lpUsername,DWORD dwFlags) 函数,其中可不用映射盘符,具体参数定义参见MSDN。
example:

#ifndef UNICODE
        #define UNICODE
#endif
#ifdef UNICODE
        #ifndef _UNICODE
                #define _UNICODE
        #endif
#endif

#include <Windows.h>
#include <tchar.h>
#include <WinNetWk.h>
#include <stdio.h>
#pragma comment(lib, "Mpr.lib")

int _tmain(int argc, TCHAR **argv)
{
        
    TCHAR szPasswd[] = TEXT("****");          //共享资源授权用户的密码
    TCHAR szUserName[] = TEXT("**");        //共享资源授权的用户

    NETRESOURCE net_Resource;
    net_Resource.dwDisplayType = RESOURCEDISPLAYTYPE_DIRECTORY;
    net_Resource.dwScope = RESOURCE_CONNECTED;
    net_Resource.dwType = RESOURCETYPE_ANY;
    net_Resource.dwUsage = 0;
    net_Resource.lpComment = TEXT("");
    net_Resource.lpLocalName = TEXT("z:");  //映射成本地驱动器z:
    net_Resource.lpProvider= NULL;
    net_Resource.lpRemoteName = TEXT("\\\\192.168.0.2\\管理部"); // \\servername\共享资源名
    DWORD dwFlags = CONNECT_UPDATE_PROFILE;
    DWORD dw = WNetAddConnection2(&net_Resource, szPasswd, szUserName, dwFlags);
    switch(dw)
    {
        case ERROR_SUCCESS:
            ShellExecute(NULL, TEXT("open"), TEXT("z:"), NULL, NULL, SW_SHOWNORMAL);
            break;
        case ERROR_ACCESS_DENIED:
            wprintf(TEXT("没有权访问!"));
                break;
        case ERROR_ALREADY_ASSIGNED:
            ShellExecute(NULL, TEXT("open"), TEXT("z:"), NULL, NULL, SW_SHOWNORMAL);
            break;
        case ERROR_INVALID_ADDRESS:
            wprintf(TEXT("IP地址无效"));
            break;
        case ERROR_NO_NETWORK:
            wprintf(TEXT("网络不可达!"));
            break;
    }
    return 0;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值