请问如何kill一个已经运行的程序。

halloo 2003-02-22 01:27:07
就是说程序2运行开始的时候,杀掉程序1。怎么写?谢谢。
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
halloo 2003-02-22
  • 打赏
  • 举报
回复
谢谢。
叶子哟 2003-02-22
  • 打赏
  • 举报
回复
前者肯定可以,后者必须是它接受这个消息
叶子哟 2003-02-22
  • 打赏
  • 举报
回复
或是
HWND Wnd=FindWindowEx(NULL,NULL,NULL,"your program's title");
if (Wnd!=0)
{ ::SendMessage(Wnd,WM_SYSCOMMAND,SC_CLOSE,0);
::SendMessage(Wnd,WM_CLOSE,0,0);
}
叶子哟 2003-02-22
  • 打赏
  • 举报
回复
include <vcl.h>
#pragma hdrstop
#include "tlhelp32.h"

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
DWORD pID;
bool rValue;
PROCESSENTRY32 lppe;
HANDLE hSnapshot;
HANDLE pHandle;
hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
lppe.dwSize = sizeof(lppe);
rValue=Process32First(hSnapshot,&lppe);
TListItem *NItem;

ListView1->Items->Clear();
while(rValue)
{
if(UpperCase(ExtractFileName(lppe.szExeFile))=="QQ2000B.EXE")//Kill QQ2000.EXE
{
pID=lppe.th32ProcessID; //在此得到进程的ID
pHandle=OpenProcess(PROCESS_TERMINATE,false,pID);
TerminateProcess(pHandle,-9); //Kill该进程
}
NItem=ListView1->Items->Add();
NItem->Caption=lppe.th32ProcessID;
NItem->SubItems->Add(String(lppe.szExeFile));
rValue=Process32Next(hSnapshot,&lppe);

}
CloseHandle(hSnapshot);

}
halloo 2003-02-22
  • 打赏
  • 举报
回复
HWND hWnd;
if((hWnd = FindWindow(NULL,"pro1")) != NULL){
CloseHandle(hWnd);
}
是这样吗?但是好像没有不行。能给出代码吗?
叶子哟 2003-02-22
  • 打赏
  • 举报
回复
找到它的句柄,发消息,WM_CLOSE

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧