Map Network Driver

WNetAddConnection2 is on c++
public class DriveSettings
{
private enum ResourceScope
{
 RESOURCE_CONNECTED = 1,
 RESOURCE_GLOBALNET,
 RESOURCE_REMEMBERED,
 RESOURCE_RECENT,
 RESOURCE_CONTEXT
}
private enum ResourceType
{
 RESOURCETYPE_ANY,
 RESOURCETYPE_DISK,
 RESOURCETYPE_PRINT,
 RESOURCETYPE_RESERVED
}
private enum ResourceUsage
{
 RESOURCEUSAGE_CONNECTABLE = 0x00000001,
 RESOURCEUSAGE_CONTAINER = 0x00000002,
 RESOURCEUSAGE_NOLOCALDEVICE = 0x00000004,
 RESOURCEUSAGE_SIBLING = 0x00000008,
 RESOURCEUSAGE_ATTACHED = 0x00000010
}
private enum ResourceDisplayType
{
 RESOURCEDISPLAYTYPE_GENERIC,
 RESOURCEDISPLAYTYPE_DOMAIN,
 RESOURCEDISPLAYTYPE_SERVER,
 RESOURCEDISPLAYTYPE_SHARE,
 RESOURCEDISPLAYTYPE_FILE,
 RESOURCEDISPLAYTYPE_GROUP,
 RESOURCEDISPLAYTYPE_NETWORK,
 RESOURCEDISPLAYTYPE_ROOT,
 RESOURCEDISPLAYTYPE_SHAREADMIN,
 RESOURCEDISPLAYTYPE_DIRECTORY,
 RESOURCEDISPLAYTYPE_TREE,
 RESOURCEDISPLAYTYPE_NDSCONTAINER
}
[StructLayout(LayoutKind.Sequential)]
private struct NETRESOURCE
{
 public ResourceScope oResourceScope;
 public ResourceType oResourceType;
 public ResourceDisplayType oDisplayType;
 public ResourceUsage oResourceUsage;
 public string sLocalName;
 public string sRemoteName;
 public string sComments;
 public string sProvider;
}
[DllImport("mpr.dll")]
private static extern int WNetAddConnection2
	(ref NETRESOURCE oNetworkResource, string sPassword, 
	string sUserName, int iFlags);

[DllImport("mpr.dll")]
private static extern int WNetCancelConnection2
	(string sLocalName, uint iFlags, int iForce);

public static void MapNetworkDrive(string sDriveLetter, string sNetworkPath)
{
 //Checks if the last character is \ as this causes error on mapping a drive.
 if (sNetworkPath.Substring(sNetworkPath.Length - 1, 1) == @"\")
 {
 sNetworkPath = sNetworkPath.Substring(0, sNetworkPath.Length - 1);
 }

 NETRESOURCE oNetworkResource = new NETRESOURCE();
 oNetworkResource.oResourceType = ResourceType.RESOURCETYPE_DISK;
 oNetworkResource.sLocalName = sDriveLetter + ":";
 oNetworkResource.sRemoteName = sNetworkPath;

 //If Drive is already mapped disconnect the current 
 //mapping before adding the new mapping
 if (IsDriveMapped(sDriveLetter))
 {
 DisconnectNetworkDrive(sDriveLetter, true);
 }

 WNetAddConnection2(ref oNetworkResource, null, null, 0);
}

public static int DisconnectNetworkDrive(string sDriveLetter, bool bForceDisconnect)
{
 if (bForceDisconnect)
 {
 return WNetCancelConnection2(sDriveLetter + ":", 0, 1);
 }
 else
 {
 return WNetCancelConnection2(sDriveLetter + ":", 0, 0);
 }
}

public static bool IsDriveMapped(string sDriveLetter)
{
 string[] DriveList = Environment.GetLogicalDrives();
 for (int i = 0; i < DriveList.Length; i++)
 {
 if (sDriveLetter + ":\\" == DriveList[i].ToString())
 {
 return true;
 }
 }
 return false;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 建立网络和地图链接是为了更好地帮助用户使用特定的软件、应用程序或系统。用户手册是一个详细的指南,旨在向用户提供使用软件等工具的说明和操作步骤。以下是关于建立网络和地图链接用户手册的一些重要内容: 1. 网络链接部分:这一部分涵盖了用户如何配置网络设置、连接到互联网、进行网络安全设置等内容。用户可以通过手册中提供的步骤和说明来逐步完成这些操作。 2. 地图链接部分:这一部分主要介绍如何使用地图服务和功能。手册会提供关于地图应用程序的基本信息,如如何搜索地点、导航到特定目的地、标记位置等。它还可能包含关于地图数据的详细说明,比如如何通过地图链接获取特定位置的经纬度等信息。 3. 设置与调整:这部分会教用户如何根据个人需求设置和调整网络和地图链接的相关选项。用户可以了解如何更改网络连接类型、调整地图显示设置、更改地图语言等。 4. 故障排除和技术支持:在用户手册中,通常还会包含一些常见问题和解决方法,以及与网络和地图链接相关的常见故障排除步骤。此外,用户手册还会提供有关如何获取技术支持和联系开发者的联系方式。 用户手册对于提供清晰的指导和操作说明非常重要,它可以帮助用户更好地理解和使用网络和地图链接。用户手册应该易于理解,结构合理,并具有能够适应不同用户水平和需求的内容。 ### 回答2: 《building network and map linkages用户手册》是一本介绍如何构建网络和地图链接的用户手册。这本手册旨在帮助用户了解如何在网络和地图之间建立链接,并利用这些链接进行信息共享和实时数据更新。 手册的第一部分介绍了建立网络链接的基础知识。它解释了网络链接的概念、原理和关键要素。同时,手册还介绍了各种网络链接的类型,包括内部链接、外部链接和双向链接,以及它们的应用场景和优缺点。 第二部分介绍了地图链接的相关知识。手册详细介绍了地图链接的作用和优势,以及地图链接的种类和实现方法。它还介绍了如何在地图上添加链接和导航功能,以及如何通过链接实现对不同地图之间的无缝切换。 手册的第三部分是实用指南,它提供了一系列建议和技巧,帮助用户快速、有效地构建网络和地图链接。例如,手册包含了一些实用的代码示例和模板,用户可以根据自己的需求进行修改和应用。此外,手册还介绍了一些常见问题和解决方案,帮助用户应对在链接过程中可能遇到的困难。 最后,手册提供了一些案例研究和实际应用示例,以帮助用户更好地理解和应用所学知识。这些案例涵盖了各种不同领域的实际问题,比如交通导航、地理信息系统等,用户可以通过这些案例学习如何将网络和地图链接应用于自己的工作或项目中。 总之,《building network and map linkages用户手册》是一本全面、实用的指南,帮助用户了解并运用网络和地图链接技术。无论是初学者还是有一定经验的专业人士,都可以从这本手册中获得有益的知识和技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值