问题描述
.各位老大好!本著名(零基础)菜鸟又来麻烦大家了.最近一段时间偶抱着书啃再看看其他大侠做的东东误以为自己的水平似乎有些提高了所以想自己做个东东用果然不出所料马上又被“打回原形”了.情况是这样的:本人使用电脑时有个坏习惯总是打开一堆窗口比如:用IE和TT浏览器分别浏览不同类型的网上信息几个文件夹MSN的几个对话窗口QQ几个对话窗口小游戏等等感觉都操作完了一个一个的关太麻烦就想自己做个小程序点击个按钮就可以关闭除了“system”“localservice”“networkservice”和自己指定的程序(如msn和QQ的主程序迅雷BT)以外的不再使用的进程.我用了个笨办法几乎是“穷极例举法”了因为打开的窗口如TT和IE在浏览不同页面时窗口的标题是随时改变的所以本著名菜鸟偶是从进程入手的方法如下:DimpProcess()AsProcesspProcess=Process.GetProcesses()DimiAsIntegerFori=0TopProcess.Length()-1Console.WriteLine(pProcess(i).ProcessName)If(pProcess(i).ProcessName<>"123"&"456"&"789"&"abc")Then'判断进程pProcess(i).Kill()'关闭进程EndIfNext我在IF中(pProcess(i).ProcessName<>)的<>后面“穷极例举”了所有的“system”“localservice”“networkservice”和自己指定的程序本人洋洋得意地开始“启动调试”(在调试之前我费了半天劲打开了足有四十多个各类窗口)满怀期待的希望看到所有窗口都被自动关掉的壮观场面结果令本大菜鸟非常震惊!本以为大功告成了结果一开始调试电脑重启了!偶呆呆的看着电脑重启直到重新看到了桌面!重新试验了一次结果还是如此!晕死我了!哭啊!.请问各位大侠这样写的问题在哪里?可怜一下本菜鸟吧赏我个“医治人参果树的方子”吧!谢谢嗷!.另外这个东东完成后本菜鸟还想在此基础上做些改进后面的改进以后再说吧我先把这个问题搞懂了再说了.再次感谢了!.
解决方案
解决方案二:
天已经亮了555555555555这一夜算是白折腾了偶好惨啊
解决方案三:
up
解决方案四:
请教谢谢!
解决方案五:
ForEachoneProcessAsProcessInProcess.GetProcesses()If(oneProcess.ProcessName="IEXPLORE")Then'判断进程oneProcess.Kill()'关闭进程ExitForEndIfNextMessageBox.Show("OK")樓主可以試下我的代碼來關網頁。
解决方案六:
忘了說,把那個ExitFor去掉。。因為我測試時加上去的。
解决方案七:
【ping502】兄谢谢你!关闭单个的进程我知道的我想关闭的是除了指定进程之外的所有进程呵呵这个到现在还没解决呢!.如果有办法请帮忙啦呵呵
解决方案八:
因为你把系统进程结束了系统就自动重启了这不应该是代码的问题而是你设计思想的问题并非所有的进程都可以随便结束你仔细想想吧
解决方案九:
引用7楼DotGod的回复:
因为你把系统进程结束了系统就自动重启了这不应该是代码的问题而是你设计思想的问题并非所有的进程都可以随便结束你仔细想想吧
谢谢老大!.请问如果我想实现这样的功能怎么用比较好?.另外代码的问题解决了但是很多进程拒绝访问请问如果有的进程拒绝访问如何执行下一个呢?.“生成”-“发布”后出现了如下问题:(有色字体部分)有关调用实时(JIT)调试而不是此对话框的详细信息,请参见此消息的结尾。**************异常文本**************System.ComponentModel.Win32Exception:拒绝访问。在System.Diagnostics.ProcessManager.OpenProcess(Int32processId,Int32access,BooleanthrowIfExited)在System.Diagnostics.Process.GetProcessHandle(Int32access,BooleanthrowIfExited)在System.Diagnostics.Process.Kill()在Game.Uploading.Button7_Click(Objectsender,EventArgse)在System.Windows.Forms.Control.OnClick(EventArgse)在System.Windows.Forms.Button.OnClick(EventArgse)在System.Windows.Forms.Button.OnMouseUp(MouseEventArgsmevent)在System.Windows.Forms.Control.WmMouseUp(Message&m,MouseButtonsbutton,Int32clicks)在System.Windows.Forms.Control.WndProc(Message&m)在System.Windows.Forms.ButtonBase.WndProc(Message&m)在System.Windows.Forms.Button.WndProc(Message&m)在System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&m)在System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&m)在System.Windows.Forms.NativeWindow.Callback(IntPtrhWnd,Int32msg,IntPtrwparam,IntPtrlparam)**************已加载的程序集**************mscorlib程序集版本:2.0.0.0Win32版本:2.0.50727.1433(REDBITS.050727-1400)基本代码:file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll----------------------------------------Game程序集版本:1.0.0.0Win32版本:1.0.0.0基本代码:file:///C:/Documents%20and%20Settings/ffd/Local%20Settings/Apps/2.0/6PXN8NZB.34R/BCPC9PMC.8LB/game..tion_1416cf9df9b71446_0001.0000_d7ab0cc39acdd8aa/Game.exe----------------------------------------Microsoft.VisualBasic程序集版本:8.0.0.0Win32版本:8.0.50727.1433(REDBITS.050727-1400)基本代码:file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll----------------------------------------System程序集版本:2.0.0.0Win32版本:2.0.50727.1433(REDBITS.050727-1400)基本代码:file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll----------------------------------------System.Windows.Forms程序集版本:2.0.0.0Win32版本:2.0.50727.1433(REDBITS.050727-1400)基本代码:file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll----------------------------------------System.Drawing程序集版本:2.0.0.0Win32版本:2.0.50727.1433(REDBITS.050727-1400)基本代码:file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll----------------------------------------System.Runtime.Remoting程序集版本:2.0.0.0Win32版本:2.0.50727.1433(REDBITS.050727-1400)基本代码:file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll----------------------------------------System.Windows.Forms.resources程序集版本:2.0.0.0Win32版本:2.0.50727.1433(REDBITS.050727-1400)基本代码:file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.Windows.Forms.resources.dll----------------------------------------mscorlib.resources程序集版本:2.0.0.0Win32版本:2.0.50727.1433(REDBITS.050727-1400)基本代码:file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll----------------------------------------**************JIT调试**************要启用实时(JIT)调试,该应用程序或计算机的.config文件(machine.config)的system.windows.forms节中必须设置jitDebugging值。编译应用程序时还必须启用调试。例如:<configuration><system.windows.formsjitDebugging="true"/></configuration>启用JIT调试后,任何无法处理的异常都将被发送到在此计算机上注册的JIT调试器,而不是由此对话框处理。
解决方案十:
如果有的进程无法结束如何强制结束?谢谢!
解决方案十一:
这个是很危险的,除..以外的,你肯定这里不包括有用的系统进程吗还是指定一种关闭为好,比如楼上有说的,IE等这样比较安全
解决方案十二:
【tjficcbw】兄:谢谢你!我希望想“穷极例举”所有的系统进程然后把不必要的进程都关掉呵呵我知道应该怎样关闭单一、确定名称的进程但是不知道怎么关掉我自己不用的进程........请问各位高手:学生偶能否换个方法,比如:怎样才能关闭(除指定的(如:杀毒软件、防火墙)之外的)全部的用户进程呢?.还请赐教!谢谢!!!
解决方案十三:
这个你要把基本运用时的进程全部列出输出到文本框,复制出来,在程序中定义为一个字符串数组,写进这些进程,再对每个进程与之进行比较如不一样则KILL这样就行了,列出平时正常的进程到文本框:textbox1.text=""DimTmpProcAsProcessDimprocsAsProcess()=Process.GetProcesses()ForEachTmpProcInprocsTextBox1.Text=TextBox1.Text&TmpProc.ProcessName.ToUpper&vbCrLfNext
比如你列出43个进程那么你定义一个数组dimProcArray(42)赋值你的所有进程ProcArray(0)="进程0"ProcArray(1)="进程1"ProcArray(2)="进程2".........在比较KILLDimiAsIntegerForEachTmpProcInprocsFori=0To42IfNotTmpProc.ProcessName.ToUpper=ProcArray(i)ThenTmpProc.Kill()EndIfNextNext
解决方案十四:
還是指定要關閉的進程比較合理,指定不關閉的進程的話,就和上面說的,可能把電腦都關閉了。