基本信息
源码名称:开启远程桌面及获取电脑信息
源码大小:0.05M
文件格式:.zip
开发语言:C#
更新时间:2020-07-15
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 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--;
}
}
}
}