zoukankan      html  css  js  c++  java
  • 各种小功能的代码

    各种小功能的代码,开放给大家,一起用!

    一、设置系统休眠:  Application.SetSuspendState(PowerState.Hibernate, truefalse);//设置休眠状态

    二、设置系统关机:    public partial class Frm_Main : Form

        {
            public Frm_Main()
            {
                InitializeComponent();
            }
            private int isClose = 0;//声明一个变量表示是否关机
            private const int WM_QUERYENDSESSION = 0x0011;//系统发送的关机命令
            protected override void WndProc(ref Message m)//此方法用于处理Windows消息
            {
                switch (m.Msg)//获取消息值
                {
                    case WM_QUERYENDSESSION:
                        m.Result = (IntPtr)isClose;//为了响应消息处理,设置返回值
                        break;
                    default://默认执行
                        base.WndProc(ref m);//重写此方法
                        break;
                }
            }

            private void button1_Click(object sender, EventArgs e)
            {
                isClose = 0;//使消息值等于0,实现禁止关机
                MessageBox.Show("禁止关闭计算机");
            }
            private void button2_Click(object sender, EventArgs e)
            {
                isClose = 1;//使消息值等于1,实现允许关机
                MessageBox.Show("允许关闭计算机");
            }

        } 

     三、注销系统:  [DllImport("user32.dll", EntryPoint = "ExitWindowsEx", CharSet = CharSet.Ansi)]

            private static extern int ExitWindowsEx(int uFlags, int dwReserved);

     四、关闭系统:  System.Diagnostics.Process myProcess = new System.Diagnostics.Process();

                myProcess.StartInfo.FileName = "cmd.exe";//启动cmd命令
                myProcess.StartInfo.UseShellExecute = false;//是否使用系统外壳程序启动进程
                myProcess.StartInfo.RedirectStandardInput = true;//是否从流中读取
                myProcess.StartInfo.RedirectStandardOutput = true;//是否写入流
                myProcess.StartInfo.RedirectStandardError = true;//是否将错误信息写入流
                myProcess.StartInfo.CreateNoWindow = true;//是否在新窗口中启动进程
                myProcess.Start();//启动进程
                myProcess.StandardInput.WriteLine("shutdown -s -t 0");//执行关机命令

     五、重启系统:System.Diagnostics.Process myProcess = new System.Diagnostics.Process();

                myProcess.StartInfo.FileName = "cmd.exe";//启动cmd命令
                myProcess.StartInfo.UseShellExecute = false;//是否使用系统外壳程序启动进程
                myProcess.StartInfo.RedirectStandardInput = true;//是否从流中读取
                myProcess.StartInfo.RedirectStandardOutput = true;//是否写入流
                myProcess.StartInfo.RedirectStandardError = true;//是否将错误信息写入流
                myProcess.StartInfo.CreateNoWindow = true;//是否在新窗口中启动进程
                myProcess.Start();//启动进程
                myProcess.StandardInput.WriteLine("shutdown -r -t 0");//执行重启计算机命令

     六、远程关闭或者重启电脑:

    /// <summary>
            
    /// 关闭或重启远程计算机
            
    /// </summary>
            
    /// <param name="doinfo">要执行的操作命令</param>
            private void CloseComputer(string doinfo)
            {
                ConnectionOptions op = new ConnectionOptions();//创建ConnectionOptions对象
                op.Username = textBox4.Text;//设置远程机器用户名
                op.Password = textBox3.Text;//设置远程机器登录密码
                
    //创建ManagementScope对象
                ManagementScope scope = new ManagementScope("\\\\" + textBox2.Text + "\\root\\cimv2:Win32_Service", op);
                try
                {
                    scope.Connect();//连接远程对象
                    ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");//实例化ObjectQuery对象
                    
    //创建ManagementObjectSearcher对象
                    ManagementObjectSearcher query1 = new ManagementObjectSearcher(scope, oq);
                    ManagementObjectCollection queryCollection1 = query1.Get();//得到WMI控制
                    foreach (ManagementObject mobj in queryCollection1)
                    {
                        string[] str = { "" };
                        mobj.InvokeMethod(doinfo, str);
                    }
                }
                catch (Exception ey)
                {
                    MessageBox.Show(ey.Message);
                }

            }

    七、取消磁盘共享: 

     System.Diagnostics.Process myProcess = new System.Diagnostics.Process();

                myProcess.StartInfo.FileName = "cmd.exe";//启动cmd命令
                myProcess.StartInfo.UseShellExecute = false;//是否使用系统外壳程序启动进程
                myProcess.StartInfo.RedirectStandardInput = true;//是否从流中读取
                myProcess.StartInfo.RedirectStandardOutput = true;//是否写入流
                myProcess.StartInfo.RedirectStandardError = true;//是否将错误信息写入流
                myProcess.StartInfo.CreateNoWindow = true;//是否在新窗口中启动进程
                myProcess.Start();//启动进程
                
    //执行取消磁盘共享命令
                myProcess.StandardInput.WriteLine("NET SHARE " + textBox1.Text + "$ /DEL");
                MessageBox.Show("执行成功""信息", MessageBoxButtons.OK, MessageBoxIcon.Information);

    八、获取磁盘信息:SelectQuery selectQuery = new SelectQuery("select * from win32_logicaldisk");//查询磁盘信息

                ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);//创建WMI查询对象
                foreach (ManagementObject disk in searcher.Get())//遍历所有磁盘
                {
                    comboBox1.Items.Add(disk["Name"].ToString());//将磁盘名称添加到下拉列表中

                } 

     九、验证磁盘是否可写:DriveInfo dinfo = new DriveInfo(comboBox1.Text);//创建DriveInfo对象

                if (dinfo.IsReady)//判断磁盘是否准备好
                    label2.Text = "该磁盘已经准备好";//如果准备好则弹出提示
                else//否则
                    label2.Text = "该磁盘未准备好";//通知磁盘未准备好

     十、检查磁盘的可用容量:

    DriveInfo dinfo = new DriveInfo(comboBox1.Text);//实例化DriveInfo
                float tsize = dinfo.TotalSize;//获得磁盘的总容量
                float fsize = dinfo.TotalFreeSpace;//获取剩余容量
                Graphics graphics = this.CreateGraphics();//创建Graphics绘图对象
                Pen pen1 = new Pen(Color.Red);//创建画笔对象
                Brush brush1 = new SolidBrush(Color.WhiteSmoke);//创建笔刷
                Brush brush2 = new SolidBrush(Color.LimeGreen);//创建笔刷
                Brush brush3 = new SolidBrush(Color.RoyalBlue);//创建笔刷
                Font font1 = new Font("Courier New"16, FontStyle.Bold);//设置字体
                Font font2 = new Font("宋体"9);//设置字体
                graphics.DrawString("磁盘容量分析", font1, brush2, new Point(6050));//绘制文本
                float angle1 = Convert.ToSingle((360 * (Convert.ToSingle(fsize / 100000000000) / Convert.ToSingle(tsize / 100000000000))));//计算绿色饼形图的范围
                float angle2 = Convert.ToSingle((360 * (Convert.ToSingle((tsize - fsize) / 100000000000) / Convert.ToSingle(tsize / 100000000000))));//计算蓝色饼形图的范围
                
    //调用Graphics对象的FillPie方法绘制饼形图
                graphics.FillPie(brush2, 60801501500, angle1);
                graphics.FillPie(brush3, 6080150150, angle1, angle2);
                graphics.DrawRectangle(pen1, 3023520050);
                graphics.FillRectangle(brush2, 352452010);
                graphics.DrawString("磁盘剩余容量:" + dinfo.TotalFreeSpace / 1000 + "KB", font2, brush2, 55245);
                graphics.FillRectangle(brush3, 352652010);

                graphics.DrawString("磁盘已用容量:" + (dinfo.TotalSize - dinfo.TotalFreeSpace) / 1000 + "KB", font2, brush3, 55265); 

  • 相关阅读:
    hdu acm 2844 Coins 解题报告
    hdu 1963 Investment 解题报告
    codeforces 454B. Little Pony and Sort by Shift 解题报告
    广大暑假训练1 E题 Paid Roads(poj 3411) 解题报告
    hdu acm 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
    hdu acm 1114 Piggy-Bank 解题报告
    poj 2531 Network Saboteur 解题报告
    数据库范式
    ngnix 配置CI框架 与 CI的简单使用
    Vundle的安装
  • 原文地址:https://www.cnblogs.com/jiangguanghe/p/2360593.html
Copyright © 2011-2022 走看看