基本信息
源码名称:开启远程桌面及获取电脑信息
源码大小:0.05M
文件格式:.zip
开发语言:C#
更新时间:2020-07-15
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 3 元×
微信扫码支付:3 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
自己厂里,内部使用的小工具。解决一部分人不知道怎么获取本机IP,开启远程桌面,电脑信息等情况。
自己厂里,内部使用的小工具。解决一部分人不知道怎么获取本机IP,开启远程桌面,电脑信息等情况。
using System; using System.Collections.Generic; using System.Diagnostics; using System.Management; using System.Net; using System.Net.NetworkInformation; using System.Net.Sockets; using System.Threading; using System.Windows.Forms; namespace IP查询 { public partial class FrmMain : Form { internal static List<int> openedPorts = new List<int>(); //已扫描端口数目 internal static int scannedCount = 0; internal static int runningThreadCount = 0; static int startPort = 1; static int endPort = 500; static int maxThread = 100; public FrmMain() { InitializeComponent(); toolStripStatusLabel1.Text = "卓力电器集团 开发: yya"; } private void BtnGetIP_Click(object sender, EventArgs e) { //IterationRemoveItem(this.LstIP);//移除所有项 LstIP.Items.Clear();//清除所有 string name = Dns.GetHostName(); IPAddress[] ipadrlist = Dns.GetHostAddresses(name); // LstIP.DataSource = ipadrlist; LstIP.Items.Add("本机所有IP:"); foreach (IPAddress item in ipadrlist) { if (item.AddressFamily == AddressFamily.InterNetwork)//只取IP V4 LstIP.Items.Add(" " item); } LstIP.Items.Add("MAC地址:"); foreach (var item in GetMacByWMI()) { LstIP.Items.Add(" " item.ToString()); } LstIP.Items.Add("计算机名:" name); LstIP.Items.Add("当前登录用户:" System.Environment.UserName); LstIP.Items.Add("DNS:"); foreach (var item in GetDnsAddresses()) { if (item.AddressFamily == AddressFamily.InterNetwork) { LstIP.Items.Add(" " item.ToString()); //break; } } LstIP.Items.Add("当前登录的域或工作组:" System.Environment.UserDomainName); GetOSystem aa= new GetOSystem(); LstIP.Items.Add("当前操作系统: " aa.GetName ); LstIP.Items.Add("系统位数:" Distinguish64or32System()); //LstIP.Items.Add("当前登录的域或工作组:" new GetOSystem()); } private string Distinguish64or32System() { try { string addressWidth = String.Empty; ConnectionOptions mConnOption = new ConnectionOptions(); ManagementScope mMs = new ManagementScope("//localhost", mConnOption); ObjectQuery mQuery = new ObjectQuery("select AddressWidth from Win32_Processor"); ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(mMs, mQuery); ManagementObjectCollection mObjectCollection = mSearcher.Get(); foreach (ManagementObject mObject in mObjectCollection) { addressWidth = mObject["AddressWidth"].ToString(); } return addressWidth; } catch (Exception ex) { return String.Empty; } } public List<string> GetMacByWMI() { List<string> macs = new List<string>(); try { string mac = ""; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"]) { mac = mo["MacAddress"].ToString(); macs.Add(mac); } } moc = null; mc = null; } catch { } return macs; } private void timer1_Tick(object sender, EventArgs e) { toolStripStatusLabel2.Text ="日期:" DateTime.Now.ToLongDateString() " " DateTime.Now.ToLongTimeString(); } #region 获取DNS public IPAddressCollection GetDnsAddresses() { NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adapter in adapters) { IPInterfaceProperties adapterProperties = adapter.GetIPProperties(); return adapterProperties.DnsAddresses; } return null; } #endregion private void LstIP_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.C && e.Control) { Clipboard.SetDataObject(LstIP.SelectedItem.ToString()); //把数据复制到粘贴板上 } } private void IterationRemoveItem(ListBox listbox) { for (int i = 0; i < listbox.Items.Count; i ) { // this.LstIP.Items.RemoveAt(i); listbox.Items.RemoveAt(i); } for (int j = 0; j < listbox.Items.Count; j ) { IterationRemoveItem(listbox); } } private void btnOpenRemote_Click(object sender, EventArgs e) { string strcmd = "@echo off\r\n"; strcmd = "reg add \"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 0 /f"; string stroutcmd = string.Empty; Cmd.RunCmd(strcmd, out stroutcmd); if (stroutcmd.Contains("操作成功")) MessageBox.Show("操作成功", "提示"); else MessageBox.Show("操作失败!", "提示"); } private void btnCloseRemote_Click(object sender, EventArgs e) { string strcmd = "@echo off\r\n"; strcmd = "reg add \"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 1 /f"; string stroutcmd = string.Empty; Cmd.RunCmd(strcmd, out stroutcmd); if (stroutcmd.Contains("操作成功")) MessageBox.Show("操作成功", "提示"); else MessageBox.Show("操作失败!", "提示"); } private void btnShutDown_Click(object sender, EventArgs e) { //if(string.IsNullOrEmpty(TxtComputer.Text)) //{ // MessageBox.Show("请输入要关机的计算机名称或IP", "提示"); // return; //} string strcmd = "@echo on\r\n "; strcmd = "shutdown -s -t 1001"; string stroutcmd = string.Empty; Cmd.RunCmd(strcmd, out stroutcmd); if (stroutcmd.Contains("操作成功")) MessageBox.Show("操作成功", "提示"); else MessageBox.Show("操作失败!", "提示"); } private void BtnGetHandInfo_Click(object sender, EventArgs e) { HardwareHandler hard = new HardwareHandler(); hard.CpuInfo(); lstHand.Items.Add("CPU信息:"); foreach (var item in hard.CpuInfo()) { lstHand.Items.Add(" " item); } lstHand.Items.Add("主板信息:"); foreach (var item in hard.MainBoardInfo()) { lstHand.Items.Add(" " item); } lstHand.Items.Add("硬盘信息:"); foreach (var item in hard.DiskDriveInfo()) { lstHand.Items.Add(" " item); } //lstHand.Items.Add("网络信息:"); //foreach (var item in hard.NetworkInfo()) //{ // lstHand.Items.Add(" " item); //} lstHand.Items.Add("操作系统信息:"); foreach (var item in hard.OsInfo()) { lstHand.Items.Add(" " item); } lstHand.Items.Add("内存信息:"); foreach (var item in hard.GetPhisicalMemory()) { lstHand.Items.Add(" " item); } } private void btnScanPort_Click(object sender, EventArgs e) { //int runningThreadCount = 0; //int maxThread = 100; //int scannedCount = 0; string host = TXTIP.Text.Trim(); int startPort = int.Parse(TXTStartPort.Text.Trim()); int endPort = int.Parse(TXTEndPort.Text.Trim()); for (int port = startPort; port < endPort; port ) { Scanner scanner = new Scanner(host, port); Thread thread = new Thread(new ThreadStart(scanner.Scan)); thread.Name = port.ToString(); thread.IsBackground = true; thread.Start(); runningThreadCount ; Thread.Sleep(10); //循环,直到某个线程工作完毕才启动另一新线程,也可以叫做推拉窗技术 while (runningThreadCount >= maxThread) ; } //空循环,直到所有端口扫描完毕 while (scannedCount 1 < (endPort - startPort)) ; foreach (int port in openedPorts) { LstPort.Items.Add(port.ToString().PadLeft(6)); } } } /// <summary> /// 取出的 win10 系统为win8的。奇怪 ,已修改 /// </summary> public class GetOSystem { private const string Windows2000 = "5.0"; private const string WindowsXP = "5.1"; private const string Windows2003 = "5.2"; private const string Windows2008 = "6.0"; private const string Windows7 = "6.1"; private const string Windows8OrWindows81 = "6.2"; private const string Windows10 = "10.0"; private string OSystemName; public void setOSystemName(string oSystemName) { this.OSystemName = oSystemName; } public string GetName { get; set; } public GetOSystem() { string ss = string.Empty; switch (System.Environment.OSVersion.Version.Major "." System.Environment.OSVersion.Version.Minor) { case Windows2000: setOSystemName("Windows2000"); GetName = "Windows 2000"; break; case WindowsXP: setOSystemName("WindowsXP"); GetName = "Windows XP"; break; case Windows2003: setOSystemName("Windows2003"); GetName = "Windows 2003"; break; case Windows2008: setOSystemName("Windows2008"); GetName = "Windows 2008"; break; case Windows7: setOSystemName("Windows7"); GetName = "Windows 7"; break; case Windows8OrWindows81: setOSystemName("Windows8.OrWindows8.1"); GetName = "Windows 8 Or Windows 8.1"; break; case Windows10: setOSystemName("Windows10"); GetName = "Windows 10"; break; default: setOSystemName("未知操作系统"); GetName = "未知操作系统 "; break; } //Console.WriteLine(OSystemName); } } public class Cmd { private static string CmdPath = @"C:\Windows\System32\cmd.exe"; /// <summary> /// 执行cmd命令 /// 多命令请使用批处理命令连接符: /// <![CDATA[ /// &:同时执行两个命令 /// |:将上一个命令的输出,作为下一个命令的输入 /// &&:当&&前的命令成功时,才执行&&后的命令 /// ||:当||前的命令失败时,才执行||后的命令]]> /// 其他请百度 /// </summary> /// <param name="cmd"></param> /// <param name="output"></param> public static void RunCmd(string cmd, out string output) { cmd = cmd.Trim().TrimEnd('&') "&exit";//说明:不管命令是否成功均执行exit命令,否则当调用ReadToEnd()方法时,会处于假死状态 using (Process p = new Process()) { p.StartInfo.FileName = CmdPath; p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动 p.StartInfo.RedirectStandardInput = true; //接受来自调用程序的输入信息 p.StartInfo.RedirectStandardOutput = true; //由调用程序获取输出信息 p.StartInfo.RedirectStandardError = true; //重定向标准错误输出 p.StartInfo.CreateNoWindow = true; //不显示程序窗口 p.Start();//启动程序 //向cmd窗口写入命令 p.StandardInput.WriteLine(cmd); p.StandardInput.AutoFlush = true; //获取cmd窗口的输出信息 output = p.StandardOutput.ReadToEnd(); p.WaitForExit();//等待程序执行完退出进程 p.Close(); } } } class Scanner { string m_host; int m_port; public Scanner(string host, int port) { m_host = host; m_port = port; } public void Scan() { TcpClient tc = new TcpClient(); tc.SendTimeout = tc.ReceiveTimeout = 2000; try { tc.Connect(m_host, m_port); if (tc.Connected) { Console.WriteLine("Port {0} is Open", m_port.ToString().PadRight(6)); FrmMain.openedPorts.Add(m_port); } } catch { Console.WriteLine("Port {0} is Closed", m_port.ToString().PadRight(6)); } finally { tc.Close(); tc = null; FrmMain.scannedCount ; FrmMain.runningThreadCount--; } } } }