你的位置:首页 > 软件开发 > ASP.net > C#实现远程机器管理

C#实现远程机器管理

发布时间:2015-04-20 20:00:23
目前处于待离职状态,原先所有的工作都在进行交接,过程当中不乏有很多先前整理的和动手尝试实现的功能;我的主页中已经列出来一部分内容,有兴趣的可以前往看一看。 接下来的内容主要介绍另外一个工具,用于对远程主机进行远程控制、进程管理 ...

     目前处于待离职状态,原先所有的工作都在进行交接,过程当中不乏有很多先前整理的和动手尝试实现的功能;我的主页中已经列出来一部分内容,有兴趣的可以前往看一看。     

     接下来的内容主要介绍另外一个工具,用于对远程主机进行远程控制、进程管理、服务管理以及WMI相关信息显示等;其中仍然存在部分问题还没有得到有效的解决,希望曾经参与过或者有关相关经验的前辈能够指导一下。

一、很搓很搓的主界面

C#实现远程机器管理

C#实现远程机器管理

1、配置菜单里面包括远程主机连接配置信息的添加和编辑,界面如下:

C#实现远程机器管理

二、主要功能实现部分

远程主机配置信息

  public class RemoteMachine  {    /// <summary>    /// 桌面名称    /// </summary>    public get='_blank'>string DesktopName { get { return this._DesktopName ?? this.Server; } set { this._DesktopName = value; } }    private string _DesktopName = null;    /// <summary>    /// 远程桌面的IP地址或者域名    /// </summary>    public string Server { get; set; }    /// <summary>    /// 用户名    /// </summary>    public string UserName { get; set; }    /// <summary>    /// IP    /// </summary>    public string Domain { get; set; }    /// <summary>    /// 登录密码    /// </summary>    public string Password { get; set; }    /// <summary>    /// 允许查询进程    /// </summary>    public bool ShowProcess { get { return _ShowProcess; } set { _ShowProcess = value; } }    private bool _ShowProcess = true;    /// <summary>    /// 允许远程    /// </summary>    public bool RemoteAble { get { return _RemoteAble; } set { _RemoteAble = value; } }    private bool _RemoteAble = true;    /// <summary>    /// 允许查询服务    /// </summary>    public bool ShowService { get { return _ShowService; } set { _ShowService = value; } }    private bool _ShowService = true;    /// <summary>    /// 共享磁盘驱动器    /// </summary>    public bool RedirectDrives { get { return _RedirectDrives; } set { _RedirectDrives = value; } }    private bool _RedirectDrives = true;    /// <summary>    /// 共享打印机    /// </summary>    public bool RedirectPrinters { get { return _RedirectPrinters; } set { _RedirectPrinters = value; } }    private bool _RedirectPrinters = false;    /// <summary>    /// 共享端口    /// </summary>    public bool RedirectPorts { get { return _RedirectPorts; } set { _RedirectPorts = value; } }    private bool _RedirectPorts = false;    /// <summary>    /// 色彩深度    /// </summary>    public Colors ColorDepth { get { return _ColorDepth; } set { _ColorDepth = value; } }    private Colors _ColorDepth = Colors.Color24;    public override string ToString()    {      return string.Format("{0}:{1}", this.DesktopName, this.Server);    }    public void Save(IniFile iniFile)    {      Save(this, iniFile);    }    public void Delete(IniFile iniFile)    {      string section = string.Format("Remote({0})", this.DesktopName);      iniFile.DeleteSection(section);    }    public void Load(IniFile iniFile, string desktopName)    {      string section = string.Format("Remote({0})", desktopName);      this.DesktopName = desktopName;      this.Server = iniFile.ReadString(section, "Server", "");      this.UserName = iniFile.ReadString(section, "UserName", "");      this.Domain = iniFile.ReadString(section, "Domain", "");      this.Password = iniFile.ReadString(section, "Password", "");      this.RemoteAble = iniFile.ReadInt(section, "RemoteAble", 0) == 1;      this.ShowProcess = iniFile.ReadInt(section, "ShowProcess", 0) == 1;      this.ShowService = iniFile.ReadInt(section, "ShowService", 0) == 1;      this.RedirectDrives = iniFile.ReadInt(section, "RedirectDrives", 0) == 1;      this.RedirectPrinters = iniFile.ReadInt(section, "RedirectPrinters", 0) == 1;      this.RedirectPorts = iniFile.ReadInt(section, "RedirectPorts", 0) == 1;      this.ColorDepth = (Colors)iniFile.ReadInt(section, "ColorDepth", 0);    }    public static RemoteMachine Load(string desktopName, IniFile iniFile)    {      string section = string.Format("Remote({0})", desktopName);      RemoteMachine mac = new RemoteMachine();      mac.DesktopName = desktopName;      mac.Server = iniFile.ReadString(section, "Server", "");      mac.UserName = iniFile.ReadString(section, "UserName", "");      mac.Domain = iniFile.ReadString(section, "Domain", "");      mac.Password = iniFile.ReadString(section, "Password", "");      mac.RemoteAble = iniFile.ReadInt(section, "RemoteAble", 0) == 1;      mac.ShowProcess = iniFile.ReadInt(section, "ShowProcess", 0) == 1;      mac.ShowService = iniFile.ReadInt(section, "ShowService", 0) == 1;      mac.RedirectDrives = iniFile.ReadInt(section, "RedirectDrives", 0) == 1;      mac.RedirectPrinters = iniFile.ReadInt(section, "RedirectPrinters", 0) == 1;      mac.RedirectPorts = iniFile.ReadInt(section, "RedirectPorts", 0) == 1;      mac.ColorDepth = (Colors)iniFile.ReadInt(section, "ColorDepth", 0);      return mac;    }    public static void Save(RemoteMachine machine, IniFile iniFile)    {      string section = string.Format("Remote({0})", machine.DesktopName);      iniFile.WriteString(section, "DesktopName", machine.DesktopName);      iniFile.WriteString(section, "Server", machine.Server);      iniFile.WriteString(section, "UserName", machine.UserName);      iniFile.WriteString(section, "Domain", machine.Domain);      iniFile.WriteString(section, "Password", machine.Password);      iniFile.WriteInt(section, "RemoteAble", machine.RemoteAble ? 1 : 0);      iniFile.WriteInt(section, "ShowProcess", machine.ShowProcess ? 1 : 0);      iniFile.WriteInt(section, "ShowService", machine.ShowService ? 1 : 0);      iniFile.WriteInt(section, "RedirectDrives", machine.RedirectDrives ? 1 : 0);      iniFile.WriteInt(section, "RedirectPrinters", machine.RedirectPrinters ? 1 : 0);      iniFile.WriteInt(section, "RedirectPorts", machine.RedirectPorts ? 1 : 0);      iniFile.WriteInt(section, "ColorDepth", (int)machine.ColorDepth);    }    public static List<RemoteMachine> Load(IniFile iniFile)    {      string[] infos = iniFile.ReadAllSectionNames();      if (infos != null)      {        List<RemoteMachine> macs = new List<RemoteMachine>();        foreach (string info in infos)        {          string section = info.Substring(7, info.Length - 8);          RemoteMachine mac = RemoteMachine.Load(section, iniFile);          macs.Add(mac);        }        return macs;      }      return null;    }  }  public enum Colors : int  {    Color8 = 8,    Color16 = 16,    Color24 = 24,    Color32 = 32  }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:C#实现远程机器管理

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录