每天为您提供最新最好玩的的天堂私服,请关注本站!
广告联系
天堂私服 私服技术 心情故事 官方动态 业内新闻 发布家族
应用程序运行、关闭、进程、线程
文章作者:天堂私服 文章来源:http://www.ptlcw.com/ 更新时间:2010-04-13 10:39:03  
 private void button2_Click(object sender, EventArgs e)
        {//关闭指定的正在运行的程序
        try
            {
            string MyProgram = "excel";
            Process[] MyProcesses = Process.GetProcessesByName(MyProgram);
            foreach (Process MyProcess in MyProcesses)
                {
                MyProcess.CloseMainWindow();
                MessageBox.Show("成功关闭程序:" + MyProgram, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        catch(Exception a)
        {
        MessageBox.Show(a.Message );
            }
        }
        private void button3_Click(object sender, EventArgs e)
        {//获取当前系统正在运行的程序
            string MyInfo = "当前系统正在运行的程序包括:\n";
            Process[] MyProcesses = Process.GetProcesses();
            foreach (Process MyProcess in MyProcesses)
            {
                if (MyProcess.MainWindowTitle.Length > 0)
                    MyInfo += MyProcess.MainWindowTitle+"\n";
            }
            MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);              
        }
        private void button4_Click(object sender, EventArgs e)
        {//获取系统指定进程信息
            string MyProgram = "excel";
            Process[] MyProcesses = Process.GetProcessesByName(MyProgram);
            string MyInfo = MyProgram+"程序的进程信息如下:\n";
            foreach (Process MyProcess in MyProcesses)
            {
                MyInfo += "\n进程名称:" + MyProcess.ProcessName;
                MyInfo += "\n进程ID:" + MyProcess.Id.ToString();
                MyInfo += "\n启动时间:" + MyProcess.StartTime.ToLongDateString() + MyProcess.StartTime.ToLongTimeString();
                MyInfo += "\n是否响应:" + MyProcess.Responding.ToString();
          ,各种转运小方法;      MyInfo += "\n关联进程句柄:" + MyProcess.Handle.ToString();
                MyInfo += "\n进程打开的句柄数:" + MyProcess.HandleCount.ToString();
                MyInfo += "\n主窗口句柄:" + MyProcess.MainWindowHandle.ToString();
                MyInfo += "\n主窗口标题:" + MyProcess.MainWindowTitle;
                MyInfo += "\n主模块:" + MyProcess.MainModule.ModuleName;
                MyInfo += "\n模块数量:" + MyProcess.Modules.Count.ToString();
                MyInfo += "\n基本优先级:" + MyProcess.BasePriority.ToString();
                MyInfo += "\n提升优先级:" + MyProcess.PriorityBoostEnabled.ToString();
                MyInfo += "\n处理器:" + MyProcess.ProcessorAffinity.ToInt32().ToString();
                MyInfo += "\n线程数量:" + MyProcess.Threads.Count.ToString();
                MyInfo += "\n最小工作集:" +MyProcess.MinWorkingSet.ToInt32().ToString();
                MyInfo += "\n最大工作集:" + MyProcess.MaxWorkingSet.ToInt32().ToString();
                MyInfo += "\n工作集:" + MyProcess.WorkingSet.ToString();
                MyInfo += "\n峰值工作集:" + MyProcess.PeakWorkingSet.ToString();
                MyInfo += "\n专用内存大小:" + MyProcess.PrivateMemorySize.ToString();
                MyInfo += "\n未分页内存大小:" +MyProcess.NonpagedSystemMemorySize.ToString();
                MyInfo += "\n分页内存大小:" + MyProcess.PagedMemorySize.ToString();
                MyInfo += "\n峰值分页内存大小:" + MyProcess.PeakPagedMemorySize.ToString();
                MyInfo += "\n虚拟内存大小:" + MyProcess.VirtualMemorySize.ToString();
                MyInfo += "\n峰值虚拟内存大小:" + MyProcess.PeakVirtualMemorySize.ToString();
                MyInfo += "\n占用总时间:" +MyProcess.TotalProcessorTime.ToString();
                MyInfo += "\n特权占用时间:" + MyProcess.PrivilegedProcessorTime.ToString();
                MyInfo += "\n用户占用时间:" + MyProcess.UserProcessorTime.ToString();
            }
            MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);              
        }
        private void button5_Click(object sender, EventArgs e)
        {//获取指定系统进程的模块信息
            string MyProgram = "excel";
            Process[] MyProcesses = Process.GetProcessesByName(MyProgram);
            string MyInfo = MyProgram + "程序的进程模块信息如下:\n";
            foreach (Process MyProcess in MyProcesses)
            {
                ProcessModuleCollection MyModules = MyProcess.Modules;
                foreach (ProcessModule MyModule in MyModules)
                {
                    MyInfo += "\n=====================================================";
                    MyInfo+="\n模块名称:"+MyModule.ModuleName;
                    MyInfo+="\n公司名称:"+MyModule.FileVersionInfo.CompanyName;
                    MyInfo+="\n文件名称:"+MyModule.FileVersionInfo.FileName;
                    MyInfo+="\n文件版本:"+MyModule.FileVersionInfo.FileVersion;
                    if (!MyModule.FileVersionInfo.FileDescription.Equals(""))
                        MyInfo+="\n文件说明:"+MyModule.FileVersionInfo.FileDescription;
                    MyInfo+="\n文件创建时间:"+File.GetCreationTime(MyModule.FileVersionInfo.FileName).ToString();
                    //获取并显示文件大小.
                    FileInfo MyFileInfo = new FileInfo(MyModule.FileVersionInfo.FileName);
                    MyInfo+="\n文件大小:"+MyFileInfo.Length.ToString();
                }
            }
            MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);              
        }
        private void button6_Click(object sender, EventArgs e)
        {//获取指定系统进程的线程信息
            string MyProgram = "excel";
            Process[] MyProcesses = Process.GetProcessesByName(MyProgram);
            string MyInfo = MyProgram + "程序的进程线程信息如下:\n";
            foreach (Process MyProcess in MyProcesses)
            {
                int MyCount = 0;
                while (MyCount < MyProcess.Threads.Count)
                {
                    ProcessThread MyThread = MyProcess.Threads[MyCount];
                    MyInfo += "\n===================================================";
                    MyInfo += "\n标识符:" + MyThread.Id.ToString();
                    MyInfo += "\n基本优先级:" + MyThread.BasePriority.ToString();
                    MyInfo += "\n当前优先级:" + MyThread.CurrentPriority.ToString();
                  ,转发 有点经典;  MyInfo += "\n内存地址:" + MyThread.StartAddress.ToString();
                    MyInfo += "\n启动时间:" + MyThread.StartTime.ToString();
                    MyInfo += "\n使用时间:" + MyThread.UserProcessorTime.ToString();
                    if (MyThread.ThreadState == ThreadState.Initialized)
                        MyInfo += "\n当前状态:线程已初始化但尚未启动";
                    if (MyThread.ThreadState == ThreadState.Ready)
                        MyInfo += "\n当前状态:线程准备在下一个可用的处理器上运行";
                    if (MyThread.ThreadState == ThreadState.Running)
                        MyInfo += "\n当前状态:当前正在使用处理器";
                    if (MyThread.ThreadState == ThreadState.Standby)
                        MyInfo += "\n当前状态:将要使用处理器";
                    if (MyThread.ThreadState == ThreadState.Terminated)
                        MyInfo += "\n当前状态:已完成执行并已退出";
                    if (MyThread.ThreadState == ThreadState.Transition)
                        MyInfo += "\n当前状态:在可以执行前等待处理器之外的资源";
                    if (MyThread.ThreadState == ThreadState.Unknown)
                        MyInfo += "\n当前状态:状态未知";
                    if (MyThread.ThreadState == ThreadState.Wait)
                        MyInfo += "\n当前状态:正在等待外围操作完成或等待资源释放";
                    if (MyThread.WaitReason == ThreadWaitReason.EventPairHigh)
                        MyInfo += "\n等待原因:线程正在等待事件对高";
                    if (MyThread.WaitReason == ThreadWaitReason.EventPairLow)
                        MyInfo += "\n等待原因:线程正在等待事件对低";
                    if (MyThread.WaitReason == ThreadWaitReason.ExecutionDelay)
                        MyInfo += "\n等待原因:线程执行延迟";
                    if (MyThread.WaitReason == ThreadWaitReason.Executive)
                        MyInfo += "\n等待原因:线程正在等待计划程序";
                    if (MyThread.WaitReason == ThreadWaitReason.FreePage)
                        MyInfo += "\n等待原因:线程正在等待可用的虚拟内存页";
                    if (MyThread.WaitReason == ThreadWaitReason.LpcReceive)
                        MyInfo += "\n等待原因:线程正在等待本地过程调用到达";
                    if (MyThread.WaitReason == ThreadWaitReason.LpcReply)
                        MyInfo += "\n等待原因:线程正在等待对本地过程调用的回复到达";
                    if (MyThread.WaitReason == ThreadWaitReason.PageIn)
                        MyInfo += "\n等待原因:线程正在等待虚拟内存页到达内存";
                    if (MyThread.WaitReason == ThreadWaitReason.PageOut)
                        MyInfo += "\n等待原因:线程正在等待虚拟内存页写入磁盘";
                    if (MyThread.WaitReason == ThreadWaitReason.Suspended)
                        MyInfo += "\n等待原因:线程执行暂停";
  ,选择;                  if (MyThread.WaitReason == ThreadWaitReason.SystemAllocation)
                        MyInfo += "\n等待原因:线程正在等待系统分配";
                    if (MyThread.WaitReason == ThreadWaitReason.Unknown)
                        MyInfo += "\n等待原因:线程正在因未知原因而等待";
                    if (MyThread.WaitReason == ThreadWaitReason.UserRequest)
                        MyInfo += "\n等待原因:线程正在等待用户请求";
                    if (MyThread.WaitReason == ThreadWaitReason.VirtualMemory)
                        MyInfo += "\n等待原因:线程正在等待系统分配虚拟内存";
                    MyCount++;
                }
            }
            MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);    
  ,劲舞团私服卡级;      }
     }
浏览次数:
最新文章
·.﹎零式
·[转]其实,你放的下Ta
·分手时不哭泣
·[转]以后一定要学会这十种排骨做法[图片
·四川的味道我知道—红烧鲫鱼
·男人看了都叫好(高档进口汽车展)[图片
·多年以后......[信纸]
·【转】一个老人去世的全过程,看了想哭
·[转]亲爱的,下辈子我不关机了...(让3
·[转]09年能让你笑到腰疼的签名!
热门文章
· 永恒奇迹 送别随感
· 【木木】组图细谈哑铃卧推
· 酒店员工个人素质 意识.形象.心态.沟通
· 高效率异地改QQ密码方法
· QQ空间免费物品名称收集
· 床上折腾一分钟,两星期瘦小肚腩
· 应用程序运行、关闭、进程、线程
· 凄美的感人故事
· 中国生活条件最好的十所大学 北语位居榜
· 经典爱情短语(精选118条.伤心的话 伤感
Copyright © 2009 http://www.ptlcw.com/ All rights reserved.
天堂私服 提供最新最好玩的天堂私服 版权所有
请使用1024*768分辨率浏览本站以达到最佳视觉效果
渝ICP备09887581号