【问题标题】:TerminateProcess doesnt work for verified process idTerminateProcess 不适用于已验证的进程 ID
【发布时间】:2011-10-23 21:27:43
【问题描述】:

我正在开发应该终止具有给定名称的进程的应用程序。 我使用的操作系统是windows 7。问题是,对于任务管理器中列出的具有非空白用户名字段的所有进程,它都可以正常工作。但是,当一个进程的用户名为空时,即使任务管理器也无法杀死。

谁能告诉我为什么有些进程没有用户名。就我而言,它是 csrss.exe winlogon.exe,不幸的是,我想杀死一个旧应用程序。我检查的所有其他进程都有一个正确的用户名。

有没有办法给现有进程添加用户名?

谁能推荐我比杀死应用程序更好的解决方案 终止进程()?

【问题讨论】:

  • GetLastError 的结果是什么?
  • 当我使用 GetLastError 时,我总是得到 0x6

标签: c++ windows


【解决方案1】:

这些进程无法终止,因为您没有这样做的特权。您必须以提升的权限执行您的应用程序才能正常工作。没有别的办法。

【讨论】:

  • 我试过提升,但没有帮助。我什至尝试在任务管理器中为我的进程(用户名为空)点击结束进程按钮,尽管我是管理员,但我收到拒绝访问错误。我可以终止所有其他对系统有害的系统进程,但那些没有用户名的系统进程 - 没办法。这对我来说很奇怪,我不知道这是怎么回事
  • 您可能需要将自己提升到系统权限,而不仅仅是管理员权限。尝试使用 psexec -s 运行程序,然后看看它是否有效。该应用程序是从常规用户帐户启动的问题,还是特殊的?可能有一个内核模式组件来保护它,比如杀毒软件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
  • 2014-10-10
相关资源
最近更新 更多