Advertisement
Guest User

NetworkDrive

a guest
Dec 10th, 2013
11,835
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.54 KB | None | 0 0
  1. using System.Runtime.InteropServices;
  2.  
  3. namespace Utilities.Network
  4. {
  5.     public class NetworkDrive
  6.     {
  7.         public enum ResourceScope
  8.         {
  9.             RESOURCE_CONNECTED = 1,
  10.             RESOURCE_GLOBALNET,
  11.             RESOURCE_REMEMBERED,
  12.             RESOURCE_RECENT,
  13.             RESOURCE_CONTEXT
  14.         }
  15.  
  16.         public enum ResourceType
  17.         {
  18.             RESOURCETYPE_ANY,
  19.             RESOURCETYPE_DISK,
  20.             RESOURCETYPE_PRINT,
  21.             RESOURCETYPE_RESERVED
  22.         }
  23.  
  24.         public enum ResourceUsage
  25.         {
  26.             RESOURCEUSAGE_CONNECTABLE = 0x00000001,
  27.             RESOURCEUSAGE_CONTAINER = 0x00000002,
  28.             RESOURCEUSAGE_NOLOCALDEVICE = 0x00000004,
  29.             RESOURCEUSAGE_SIBLING = 0x00000008,
  30.             RESOURCEUSAGE_ATTACHED = 0x00000010,
  31.             RESOURCEUSAGE_ALL = (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED),
  32.         }
  33.  
  34.         public enum ResourceDisplayType
  35.         {
  36.             RESOURCEDISPLAYTYPE_GENERIC,
  37.             RESOURCEDISPLAYTYPE_DOMAIN,
  38.             RESOURCEDISPLAYTYPE_SERVER,
  39.             RESOURCEDISPLAYTYPE_SHARE,
  40.             RESOURCEDISPLAYTYPE_FILE,
  41.             RESOURCEDISPLAYTYPE_GROUP,
  42.             RESOURCEDISPLAYTYPE_NETWORK,
  43.             RESOURCEDISPLAYTYPE_ROOT,
  44.             RESOURCEDISPLAYTYPE_SHAREADMIN,
  45.             RESOURCEDISPLAYTYPE_DIRECTORY,
  46.             RESOURCEDISPLAYTYPE_TREE,
  47.             RESOURCEDISPLAYTYPE_NDSCONTAINER
  48.         }
  49.  
  50.         [StructLayout(LayoutKind.Sequential)]
  51.         private class NETRESOURCE
  52.         {
  53.             public ResourceScope dwScope = 0;
  54.             public ResourceType dwType = 0;
  55.             public ResourceDisplayType dwDisplayType = 0;
  56.             public ResourceUsage dwUsage = 0;
  57.             public string lpLocalName = null;
  58.             public string lpRemoteName = null;
  59.             public string lpComment = null;
  60.             public string lpProvider = null;
  61.         }
  62.  
  63.         [DllImport("mpr.dll")]
  64.         private static extern int WNetAddConnection2(NETRESOURCE lpNetResource, string lpPassword, string lpUsername, int dwFlags);
  65.  
  66.         public int MapNetworkDrive(string unc, string drive, string user, string password)
  67.         {
  68.             NETRESOURCE myNetResource = new NETRESOURCE();
  69.             myNetResource.lpLocalName = drive;
  70.             myNetResource.lpRemoteName = unc;
  71.             myNetResource.lpProvider = null;
  72.             int result = WNetAddConnection2(myNetResource, password, user, 0);
  73.             return result;
  74.         }
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement