如何根据其.EXE文件的版本号杀死进程?

2 delphi process

我想找到一个属于具有特定文件版本号的.EXE文件的进程,并将其终止.我怎样才能做到这一点?

我正在与德尔福合作,但任何一般帮助将不胜感激.

Rob*_*edy 12

你不能只通过查看版本来"杀死文件".如果你有一个句柄,你可以杀死一个进程.获取进程句柄有两种常用方法:

  1. 使用开始此过程时获得的句柄CreateProcess.
  2. 获取已经运行的进程的句柄OpenProcess.

我假设你自己没有开始这个过程,所以你需要使用OpenProcess.

然后问题转向选择尝试打开的进程.OpenProcess需要一个进程ID,有几种方法可以获得其中一种,具体取决于您已经拥有的有关该进程的其他信息.

如果您担心EXE文件的版本号,请考虑使用第二种方法,但在选择该过程之前,请打开EXE文件并检查其内容.这是一个完全不同的任务,从杀死一个过程,如果你遇到麻烦,你应该在一个单独的问题中询问它.

一旦掌握了您感兴趣的过程,就可以将其杀死TerminateProcess.请注意该功能文档中的警告; 这不是一个干净的过程关闭任何延伸.

最后,请注意观察窗口句柄和过程句柄之间的区别.它们不可互换.HWnd当您想要握住窗户把手时使用该类型; THandle用于处理句柄.