根据程序名称结束程序

来源:互联网 发布:域名正在升级 编辑:程序博客网 时间:2024/05/16 07:38
#include <vcl.h>#pragma hdrstop#include "stdio.h"#include "Unit1.h"#include <windows.h>#include <tlhelp32.h>#include <psapi.h>//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"#pragma comment(lib,"psapi.lib")TForm1 *Form1;//从进程名得到进程句柄DWORD CloseProcesstoPid(char *processname){         DWORD    lpidprocesses[1024],cbneeded,cprocesses; //进程句柄数组         HANDLE   hProcess; //进程句柄         HMODULE  hModule;  //模块         UINT     i;         TCHAR    normalname[MAX_PATH]={"UnknownProcess"};            if(!EnumProcesses(lpidprocesses,sizeof(lpidprocesses),&cbneeded)) //枚举全部进程,进程标识符放入数组中         {                  return -1;         }         cprocesses=cbneeded/sizeof(DWORD);//系统进程数目         for(i=0;i<cprocesses;i++)         //查找指定的进程         {                   hProcess=OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE,FALSE,lpidprocesses[i]);//打开进程,返回句柄                   if(hProcess)                   {                            if(EnumProcessModules(hProcess,&hModule,sizeof(hModule),&cbneeded))//枚举进程中的全部模块                            {                                     GetModuleBaseName(hProcess,hModule,normalname,sizeof(normalname));//获取模块名                                     if(!strcmp(normalname,processname)) //比较指定字符串                                     {                                          TerminateProcess(hProcess,0);                                          CloseHandle(hProcess);    //关闭进程句柄                                          return (lpidprocesses[i]);//返回指定的进程标识符PID                                     }                            }                   }         }         CloseHandle(hProcess);         return 0;}//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)        : TForm(Owner){}//---------------------------------------------------------------------------__fastcall TForm1::~TForm1(){   }void __fastcall TForm1::Button1Click(TObject *Sender){     DWORD a = CloseProcesstoPid("1.exe");     ShowMessage(a);}//---------------------------------------------------------------------------

0 0
原创粉丝点击