[转]杀死已知应用程序名称的进程 VC

原创 2007年09月17日 11:29:00

#include <Tlhelp32.h>
#include <stdio.h>

void KillProcess(LPTSTR sProcessName)
{
 char cTemp[256];
 //判该程序是否运行
 HANDLE hProcessSnap = NULL;
 PROCESSENTRY32 pe32={0};

 PROCESS_INFORMATION ProcessInfo;
 STARTUPINFO StartupInfo = {0};

 hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 if (hProcessSnap == (HANDLE)-1)
  return;

 pe32.dwSize = sizeof(PROCESSENTRY32);
 if (Process32First(hProcessSnap, &pe32))
 {
  do
  {
   if (strcmp(pe32.szExeFile,sProcessName) == 0)
   {
    StartupInfo.cb = sizeof(STARTUPINFO);
    StartupInfo.wShowWindow = SW_HIDE;
    ZeroMemory(&StartupInfo, sizeof(StartupInfo));
    sprintf(cTemp,"ntsd -c q -p %d", pe32.th32ProcessID);

    CreateProcess(NULL,cTemp,NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,&ProcessInfo);
    CloseHandle(hProcessSnap);
    return;
   }
  }while (Process32Next(hProcessSnap, &pe32));
 }

 CloseHandle(hProcessSnap);
}

假设已知应用程序全路径名称:

 LPTSTR lpszProcName = "E://项目文档与程序//BeatTest//BeatTest.exe";

那么如下调用即可杀死已有进程。
 LPTSTR lpExeName = strrchr(lpszProcName, '//');
 KillProcess(lpExeName + 1);


 

相关文章推荐

修改Android工程的名称、安装路径、应用程序进程名

在Google提供的Eclipse集成开发环境adt-bundle下修改名称的总结: 1.      修改工程名(apk名称) 在弹出的对话框中输入新名称 该操作实际上是修改/.project下的...
  • hcj116
  • hcj116
  • 2014年03月21日 13:50
  • 14775

结束已知应用程序名的进程Demo

  • 2010年11月24日 20:14
  • 44KB
  • 下载

VC中使用GetModuleFileName获取应用程序路径 转帖

\\与API函数GetModuleFileName获取应用程序目录有何不一样? 采用.\\也能获得应用程序目录,采用GetModuleFileName也能获得,二者有何不同? 一样! 一...

已知观察角计算坐标的程序

  • 2014年04月19日 08:55
  • 31KB
  • 下载

Win7安装VC++6.0已知的兼容性问题的解决方法

转自:http://www.veryhuo.com/a/view/53057.html 今天写程序让人生气的是写的所有的程序没一个对的,不能连接运行。原来经过好多次的纠结后来才知道是win7...
  • gtatcs
  • gtatcs
  • 2013年04月19日 21:44
  • 2661

C#中已知颜色对照程序

  • 2012年02月07日 11:44
  • 7KB
  • 下载

转 Android应用程序在新的进程中启动新的Activity的方法和过程分析 .

前面我们在分析Activity启动过程的时候,看到同一个应用程序的Activity一般都是在同一个进程中启动,事实上,Activity也可以像Service一样在新的进程中启动,这样,一个应用程序就可...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[转]杀死已知应用程序名称的进程 VC
举报原因:
原因补充:

(最多只允许输入30个字)