public void RenamePrinter(string sPrinterName, string newName, CancellationToken token) { if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } objManagementScope = new ManagementScope(ManagementPath.DefaultPath); objManagementScope.Connect(); SelectQuery objSelectQuery = new SelectQuery(); objSelectQuery.QueryString = @"SELECT * FROM Win32_Printer WHERE Name = '" + sPrinterName.Replace("\\", "\\\\") + "'"; ManagementObjectSearcher oObjectSearcher = new ManagementObjectSearcher(objManagementScope, objSelectQuery); ManagementObjectCollection oObjectCollection = oObjectSearcher.Get(); if (oObjectCollection.Count != 0) { foreach (ManagementObject oItem in oObjectCollection) { if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } oItem?.InvokeMethod("RenamePrinter", new object[] { newName }); OnAtomicStateChange?.Invoke(this, new StringEventArgs($"Renamed printer : {sPrinterName} to {newName}")); return; } } }
public void Map(string sDriveLetter, string sNetworkPath, bool persistant, CancellationToken token) { if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } int iFlags = 0; if (sNetworkPath.Substring(sNetworkPath.Length - 1, 1) == @"\") { sNetworkPath = sNetworkPath.Substring(0, sNetworkPath.Length - 1); } SafeNativeMethods.NETRESOURCE oNetworkResource = new SafeNativeMethods.NETRESOURCE() { oResourceType = SafeNativeMethods.ResourceType.RESOURCETYPE_DISK, sLocalName = sDriveLetter + ":", sRemoteName = sNetworkPath }; if (persistant) { iFlags += (int)Flags.CONNECT_UPDATE_PROFILE; } if (IsDriveMapped(sDriveLetter, token)) { Disconnect(sDriveLetter, true, token); } SafeNativeMethods.WNetAddConnection2(ref oNetworkResource, null, null, iFlags); OnAtomicStateChange?.Invoke(this, new StringEventArgs($"{sDriveLetter} drive mapped to {sNetworkPath}")); }
public bool AddPrinter(string sPrinterName, CancellationToken token) { if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } try { objManagementScope = new ManagementScope(ManagementPath.DefaultPath); objManagementScope.Connect(); ManagementClass objPrinterClass = new ManagementClass(new ManagementPath("Win32_Printer"), null); ManagementBaseObject objInputParameters = objPrinterClass.GetMethodParameters("AddPrinterConnection"); objInputParameters.SetPropertyValue("Name", sPrinterName); if (IsPrinterInstalled(sPrinterName, token)) { DisconnectPrinter(sPrinterName, token); } objPrinterClass?.InvokeMethod("AddPrinterConnection", objInputParameters, null); OnAtomicStateChange?.Invoke(this, new StringEventArgs($"Completed adding printer : {sPrinterName}")); return(true); } catch (OperationCanceledException) { throw; } catch (Exception) { OnAtomicStateError?.Invoke(this, new StringEventArgs($"Failed adding printer : {sPrinterName}")); return(false); } }
public List <Printers> GetMappedPrinters(string _regpath, CancellationToken token) { List <Printers> MappedPrinters = new List <Printers>(); var _MappedPrinters = GetSubkeysValue(_regpath, RegistryHive.Users, token); foreach (var item in _MappedPrinters) { if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } OnAtomicStateChange?.Invoke(this, new StringEventArgs($"Capturing : {item.KeyName.Replace(@",", @"\")}")); MappedPrinters.Add(new Printers() { Name = item.KeyName.Replace(@",", @"\"), Network = true, Default = false }); } return(MappedPrinters); }
public int Disconnect(string sDriveLetter, bool bForceDisconnect, CancellationToken token) { if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } if (bForceDisconnect) { OnAtomicStateChange?.Invoke(this, new StringEventArgs($"{sDriveLetter} drive disconnected")); return(SafeNativeMethods.WNetCancelConnection2(sDriveLetter + ":", 0, 1)); } else { OnAtomicStateChange?.Invoke(this, new StringEventArgs($"{sDriveLetter} drive disconnected")); return(SafeNativeMethods.WNetCancelConnection2(sDriveLetter + ":", 0, 0)); } }
public List <Key> GetNetworkShares(string _regpath, CancellationToken token) { List <Key> NetworkShares = new List <Key>(); NetworkShares = GetSubkeysValue(_regpath, RegistryHive.Users, token); foreach (var share in NetworkShares) { string _driveletter = share.KeyName; foreach (var value in share.Values) { if (value.Key.Equals("RemotePath")) { OnAtomicStateChange?.Invoke(this, new StringEventArgs($"Capturing : {_driveletter} {value.Value.ToString()}")); } } } return(NetworkShares); }
public Dictionary <string, string> GetNetworkSharesWMI(CancellationToken token) { Dictionary <string, string> _mappeddrives = new Dictionary <string, string>(); ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_MappedLogicalDisk"); foreach (ManagementObject queryObj in searcher.Get()) { if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } if (queryObj["Name"] != null && queryObj["ProviderName"] != null) { OnAtomicStateChange?.Invoke(this, new StringEventArgs($"Capturing : {queryObj["Name"].ToString()} {queryObj["ProviderName"].ToString()}")); _mappeddrives.Add(queryObj["Name"].ToString(), queryObj["ProviderName"].ToString()); } } return(_mappeddrives); }
public List <Printers> GetMappedPrintersWMI(CancellationToken token) { List <Printers> _mappedprinters = new List <Printers>(); var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Printer"); foreach (ManagementObject queryObj in searcher.Get()) { if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } Printers prn = new Printers(); prn.Name = queryObj.GetPropertyValue("Name").ToString(); prn.Default = (bool)queryObj.GetPropertyValue("Default"); prn.Network = (bool)queryObj.GetPropertyValue("Network"); if (prn.Network) { OnAtomicStateChange?.Invoke(this, new StringEventArgs($"Capturing : {prn.Name}")); } _mappedprinters.Add(prn); } return(_mappedprinters); }