c语言访问网络驱动器,Windows服务中读取网络映射路径无法访问

public enumERROR_ID

{

ERROR_SUCCESS= 0, //Success

ERROR_BUSY = 170,

ERROR_MORE_DATA= 234,

ERROR_NO_BROWSER_SERVERS_FOUND= 6118,

ERROR_INVALID_LEVEL= 124,

ERROR_ACCESS_DENIED= 5,

ERROR_INVALID_PASSWORD= 86,

ERROR_INVALID_PARAMETER= 87,

ERROR_BAD_DEV_TYPE= 66,

ERROR_NOT_ENOUGH_MEMORY= 8,

ERROR_NETWORK_BUSY= 54,

ERROR_BAD_NETPATH= 53,

ERROR_NO_NETWORK= 1222,

ERROR_INVALID_HANDLE_STATE= 1609,

ERROR_EXTENDED_ERROR= 1208,

ERROR_DEVICE_ALREADY_REMEMBERED= 1202,

ERROR_NO_NET_OR_BAD_PATH= 1203}public enumRESOURCE_SCOPE

{

RESOURCE_CONNECTED= 1,

RESOURCE_GLOBALNET= 2,

RESOURCE_REMEMBERED= 3,

RESOURCE_RECENT= 4,

RESOURCE_CONTEXT= 5}public enumRESOURCE_TYPE

{

RESOURCETYPE_ANY= 0,

RESOURCETYPE_DISK= 1,

RESOURCETYPE_PRINT= 2,

RESOURCETYPE_RESERVED= 8,

}public enumRESOURCE_USAGE

{

RESOURCEUSAGE_CONNECTABLE= 1,

RESOURCEUSAGE_CONTAINER= 2,

RESOURCEUSAGE_NOLOCALDEVICE= 4,

RESOURCEUSAGE_SIBLING= 8,

RESOURCEUSAGE_ATTACHED= 16,

RESOURCEUSAGE_ALL= (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER |RESOURCEUSAGE_ATTACHED),

}public enumRESOURCE_DISPLAYTYPE

{

RESOURCEDISPLAYTYPE_GENERIC= 0,

RESOURCEDISPLAYTYPE_DOMAIN= 1,

RESOURCEDISPLAYTYPE_SERVER= 2,

RESOURCEDISPLAYTYPE_SHARE= 3,

RESOURCEDISPLAYTYPE_FILE= 4,

RESOURCEDISPLAYTYPE_GROUP= 5,

RESOURCEDISPLAYTYPE_NETWORK= 6,

RESOURCEDISPLAYTYPE_ROOT= 7,

RESOURCEDISPLAYTYPE_SHAREADMIN= 8,

RESOURCEDISPLAYTYPE_DIRECTORY= 9,

RESOURCEDISPLAYTYPE_TREE= 10,

RESOURCEDISPLAYTYPE_NDSCONTAINER= 11}

[StructLayout(LayoutKind.Sequential)]public structNETRESOURCE

{publicRESOURCE_SCOPE dwScope;publicRESOURCE_TYPE dwType;publicRESOURCE_DISPLAYTYPE dwDisplayType;publicRESOURCE_USAGE dwUsage;

[MarshalAs(UnmanagedType.LPStr)]public stringlpLocalName;

[MarshalAs(UnmanagedType.LPStr)]public stringlpRemoteName;

[MarshalAs(UnmanagedType.LPStr)]public stringlpComment;

[MarshalAs(UnmanagedType.LPStr)]public stringlpProvider;

}public classNetworkConnection

{

[DllImport("mpr.dll")]public static extern int WNetAddConnection2A(NETRESOURCE[] lpNetResource, string lpPassword, string lpUserName, intdwFlags);

[DllImport("mpr.dll")]public static extern int WNetCancelConnection2A(string sharename, int dwFlags, intfForce);public static int Connect(string remotePath, string localPath, string username, stringpassword)

{

NETRESOURCE[] share_driver= new NETRESOURCE[1];

share_driver[0].dwScope =RESOURCE_SCOPE.RESOURCE_GLOBALNET;

share_driver[0].dwType =RESOURCE_TYPE.RESOURCETYPE_DISK;

share_driver[0].dwDisplayType =RESOURCE_DISPLAYTYPE.RESOURCEDISPLAYTYPE_SHARE;

share_driver[0].dwUsage =RESOURCE_USAGE.RESOURCEUSAGE_CONNECTABLE;

share_driver[0].lpLocalName =localPath;

share_driver[0].lpRemoteName =remotePath;

Disconnect(localPath);int ret = WNetAddConnection2A(share_driver, password, username, 1);returnret;

}public static int Disconnect(stringlocalpath)

{return WNetCancelConnection2A(localpath, 1, 1);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值