ImageVerifierCode 换一换
格式:DOCX , 页数:5 ,大小:16.88KB ,
资源ID:3101213      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3101213.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(强制结束进程的两种实现方式.docx)为本站会员(sk****8)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

强制结束进程的两种实现方式.docx

1、强制结束进程的两种实现方式-C#和C+实现最近在做一个大型的项目,由于进程之间的关联出了一些问题,长话短说,就是我们不得不强制停止某些进程以保证系统正常的运行,在网上找了一下,没发现有这方面详细的介绍和写的比较全面的文章,于是按照 MSDN 的说明写了两种方法,希望对遇到类似问题的朋友有所帮助。首先,我们来看看 C#的实现方式, 由于 C#对进程的封装比较好,所以我们只需要较少的语句就可以完成这个工作,值得强调的是参数有效性检测和名字比较,由于系统中可能运行很多意想不到的进程,所以在比较名字的时候一定要用等于而不是包含或者之比较开头和结尾,否则很可能杀错进程,相关代码如下。C# Code:/R

2、eturn true for successful and false for failedpublic bool FindAndKillProcessByName(string name)/Parameter checkif (0 = name.Length)return false;/Find the named process and terminate itforeach (Process winProc in Process.GetProcesses()/use equals for the task in case we kill/a wrong processif (winPro

3、c.ProcessName.Equals(name)winProc.Kill();return true;return false;使用 C+完成相同的工作就需要相对多几行代码,首先是取得当前系统中所有进程的快照,完成这个工作的函数是CreateToolhelp32Snapshot(),在头文件#include中,调用这个函数并返回有效的句柄之后我们需要在这个快照中查找我们想要结束的进程,值得一提的是Process32First(), Process32Next()这两个函数的逻辑请仔细看代码,否则很可能漏掉某个进程而导致错误,另外就是OpenProcess()网上很多文章说打开进程需要 SE

4、Debug 权限,其实是不需要的,只要我们传入 PROCESS_TERMINATE 作为参数就可以成功的打开进程。C+ Code:BOOL FindAndKillProcessByName(LPCTSTR strProcessName)if(NULL = strProcessName)return FALSE;HANDLE handle32Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (INVALID_HANDLE_VALUE = handle32Snapshot)return FALSE;PROCESSENTRY3

5、2 pEntry; pEntry.dwSize = sizeof( PROCESSENTRY32 );/Search for all the process and terminate itif(Process32First(handle32Snapshot, if (!_tcsicmp(pEntry.szExeFile, strProcessName)bFound = TRUE;while(!bFound)if(bFound)CloseHandle(handle32Snapshot);HANDLE handLe = OpenProcess(PROCESS_TERMINATE , FALSE,

6、 pEntry.th32ProcessID);BOOL bResult = TerminateProcess(handLe,0);return bResult;CloseHandle(handle32Snapshot);return FALSE;总结本文以 C+ 和 C# 为例详细的介绍了两种强制结束进程的方式,经过严格的测试,以上代码均可以成功运行并完成相关的任务,但是值得一提的是,这种结束进程的方式就是传说中的下策,如果还有其他解决方案尽量不要采取这种方式结束进程,因为会导致相关的内存或者某些资源无法释放,建议只在程序安装或者升级使用这种方式。还是那句话:如果你知道自己在干什么,你什么都可以做,加油!

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。