最近在win7上,VS2010开发环境中,写一个守护进程的程序,程序内容:发现目标进程挂起后,将其kill,然后重启。

可是,遇到了一个问题,就是在使用TerminateProcess进行kill目标进程时,kill失败,利用GetLastError()获取错误代码为5,“5”表示拒绝访问。在网上查了下资料,大概有2中解决方法:

方法1:获取管理员权限。

在应用程序的Manifest禁用UAC Virtualization,取消其对数据写操作的重定向。具体做法:项目--》***属性--》连接器--》清单文件,我们设置启用UAC(Enable User Account Control),并且在UAC Execution Level中设置请求管理员权限。这样,应用程序在启动的时候,就会向用户请求管理员权限,当应用程序获得管理员执行权限后,当然可以向任意目录写入数据,UAC Virtualization也就不会起作用了。

如下图:

但是,我这样做了,却不起作用。我开始纠结了,什么原因呢?

后来发现了方法2,解决了我的问题。欣喜若狂啊!

方法2:在OpenProcess的时候权限设置的不对。

原因是OpenProcess是设置的权限不够,应该加上PROCESS_TERMINATE权限,具体可参考MSDN中的OpenProcess函数的说明。

将参数DWORDexitCode 设置成PROCESS_ALL权限即可使用。

TerminateProcess结束进程的具体代码如下:

--------------------------------------------------------------------------

HANDLE   hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,processID);

TerminateProcess(hProcess,uExitCode);

--------------------------------------------------------------------------

最后,我用方法2解决了我的问题。感觉自己对这些API不熟悉,没有全局把握。

使用TerminateProcess结束进程时,错误码为5的解决方法相关推荐

  1. sqlite3出现SQLITE_BUSY错误码的原因以及解决方法

    转载:https://www.cnblogs.com/lijingcheng/p/4454884.html 转载:https://blog.csdn.net/venchia_lu/article/de ...

  2. 使用ExitProcess()结束本进程、TerminateProcess 结束进程

    进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的 ...

  3. 使用ExitProcess()结束本进程,TerminateProcess()结束进程

    进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的 ...

  4. win10软件拒绝访问删不掉_win10结束进程时拒绝访问的处理办法

    win10结束进程时拒绝访问的处理办法? 在平时的工作中,大家常常会碰到一些进程没有法响应,于是想要结束掉,可是有网友反映说结束进程时拒绝访问了,那么当你碰到win10结束进程时拒绝访问如何办,不熟悉 ...

  5. VC使用TerminateProcess结束进程实例

    本文实例讲述了VC使用TerminateProcess结束进程的方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: int KillProcess(LPCSTR pszClassNa ...

  6. 关于LR录制时不能自动启动IE浏览器的解决方法

    关于LR录制时不能自动启动IE浏览器的解决方法 录制环境: win7 64位操作系统IE8 LR11 在使用Loadrunner进行性能调试时,录制脚本的时候,发现Loadrunner不能自动启动IE ...

  7. idea2019打卡没多久就闪退_IDEA 2020.1打开时闪退的问题及解决方法(完美解决方法)...

    推荐阅读: 支持Java 14!Java开发工具IntelliJ IDEA 2020.1稳定版发布 https://www.jb51.net/softjc/720187.html IntelliJ I ...

  8. 打开 mhtml 文件 显示不全_3dmax打开时显示缺少外部文件的解决方法与步骤

    谢谢观看文章,有什么问题可以私聊我,评论转发后可以私信我 资料 录播 可以免费领视频教学以及学习资料插件---------------------------------- 3dmax打开时显示缺少外 ...

  9. android 百度地图闪退,Android使用百度地图出现闪退及定位时显示蓝屏问题的解决方法...

    使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 android:name="com.baidu.lbsapi.A ...

最新文章

  1. jQuery 之父:每天写代码
  2. swapCursor vs changeCursor, what’s the difference?
  3. Vue CLI:全局CLI配置
  4. Google 节日徽标全集 (1999-2009) (下)
  5. java取json对象的值_java的JsonObject对象提取值方法
  6. 使用神经网络自动提取出它的特征码(1)
  7. html显示当前时间_HTML基础教程:超链接的使用
  8. RocketMQ——角色与术语详解
  9. 字体在ppt中可以整体替换吗_制作PPT必备的6个技巧,个个让人相见恨晚!你确定不来学一学?...
  10. 网络嗅探器c语言代码,基于C 网络嗅探器的设计与实现-精品.doc
  11. 三层交换(VLAN间通信)
  12. USACO-Section 3.2 Feed Ratios(枚举)
  13. Centos8.5.211降级为Centos8.4-1.2105
  14. 为了软银的万亿物联网 ARM取消了一笔企业预授权费用
  15. [翻译]pb技巧、代码和实用工具[程序员家园论坛]
  16. nvme 驱动详解[转]
  17. 圣诞礼物c语言代码大全,圣诞节到咯,教大家用C语言画个圣诞树
  18. ufs2.2 协议扫盲(三)
  19. RGB 色度空间转换
  20. python3爬取网易云歌单数据清洗_实例 | 使用网易云音乐数据演示数据整合与数据清洗...

热门文章

  1. PC端QQ“频道”功能关不掉?这么做太简单
  2. adroid之加密算法md5
  3. 批处理+开机自动执行
  4. Linux命令行修改IP、网关、DNS的方法
  5. 翻页类视图 ViewPager
  6. python 中字符串列表的切割,拼接
  7. oppop r1c怎么设置语言中文,OPPO R1 用起来怎么样?我们的读者给出了答案
  8. 计算机作文 六年级,我和电脑作文(2篇)
  9. 前端开发常用代码片段
  10. 结合验证码识别的暴力破解