社区
C++ Builder
帖子详情
如何结束一个没有响应的进程?
大伟
2007-05-28 05:07:25
hwnd=FindWindow(NULL,"TEST");
SendMessage(hwnd,WM_CLOSE,NULL,NULL);
这个方法不行,不知道还有什么方法?
...全文
264
6
打赏
收藏
如何结束一个没有响应的进程?
hwnd=FindWindow(NULL,"TEST"); SendMessage(hwnd,WM_CLOSE,NULL,NULL); 这个方法不行,不知道还有什么方法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
loveshell
2007-05-29
打赏
举报
回复
列举进程,比较名字。
DWORD findpid(char* inputproname)
{
DWORD PID=NULL;
HANDLE hProcess=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
HANDLE hModule;
PROCESSENTRY32* pinfo=new PROCESSENTRY32;
MODULEENTRY32* minfo=new MODULEENTRY32;
pinfo->dwSize=sizeof(PROCESSENTRY32);
minfo->dwSize=sizeof(MODULEENTRY32);
BOOL report;
char shortpath[MAX_PATH] = "";
char proname[MAX_PATH];
char propath[MAX_PATH];
char defaultpath[MAX_PATH];
report=Process32First(hProcess,pinfo);
HANDLE hToken; // handle to process token
TOKEN_PRIVILEGES tkp; // pointer to token structure
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken);
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0);
while(report)
{
hModule=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pinfo->th32ProcessID);
Module32First(hModule, minfo);
strcpy(proname,pinfo->szExeFile);
if(stricmp(inputproname,proname)==0)
{
PID=pinfo->th32ProcessID;
}
report=Process32Next(hProcess,pinfo);
}
return PID;
}
大伟
2007-05-29
打赏
举报
回复
如何获得进程ID呢?
jacknes009
2007-05-29
打赏
举报
回复
study
大伟
2007-05-29
打赏
举报
回复
用了JSP的一段代码
void KillProgram(LPCSTR ExeName)
{
LPCSTR File;
HANDLE hProcessSnap;
PROCESSENTRY32 pe32;
if (!ExeName || !ExeName[0])
return;
File = strrchr(ExeName, '\\');
if (File!=0)
ExeName = File+1;
hProcessSnap = CreateToolhelp32Snapshot(
TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == (HANDLE)-1)
return;
memset(&pe32, 0, sizeof(pe32));
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hProcessSnap, &pe32))
{
do
{
File = strrchr(pe32.szExeFile, '\\');
File = File? File+1 : pe32.szExeFile;
if (strcmpi(File,ExeName)==0) {
TerminateProcess(OpenProcess(PROCESS_ALL_ACCESS,0,pe32.th32ProcessID), 0);
break;
}
}while(Process32Next(hProcessSnap,&pe32));
}
CloseHandle(hProcessSnap);
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
String strExe = ExtractFilePath(Application->ExeName)+"\\player.exe";
KillProgram(strExe.c_str());
}
//---------------------------------------------------------------------------
netsys2
2007-05-28
打赏
举报
回复
http://access911.net/n/doc1.asp?mode=a&bid=005001&aid=5082789
netsys2
2007-05-28
打赏
举报
回复
bool KillProcessByAPI( DWORD dwPid )
{
HANDLE ps = OpenProcess(1,false,dwPid);
if( ps && TerminateProcess(ps,-9))
return true;
return false;
}
dwPid是进程ID
什么是
进程
?什么是线程?
进程
和线程之间的区别是什么?
什么是
进程
?什么是线程?
进程
是系统中正在运行的
一个
程序,程序一旦运行就是
进程
。
进程
可以看成程序执行的
一个
实例。
进程
是系统资源分配的独立实体,每个
进程
都拥有独立的地址空间。
一个
进程
无法访问另
一个
进程
...
Ubuntu下查看
进程
pid及
结束
无响应程序
Ubuntu下查看
进程
pid及
结束
无响应程序 在Windows系统中偶尔会碰到程序无响应的情况,大家都知道使用快捷键Ctrl+Alt+... PID:
进程
标识符,系统为每
一个
进程
分配
一个
识别码,称为PID。 一、查看
进程
及PID 1、用 Ct
计算机快速
结束
进程
,
结束
进程
快捷键,详细教您电脑
结束
进程
快捷键怎么操作...
那么,如何强制
结束
进程
?下面,小编给大家介绍电脑
结束
进程
快捷键的步骤。有时我们会遇到程序无响应或者其他别的原因想要
结束
程序,那么我们这时候就可以
结束
进程
。电脑用户,在操作电脑的时候,遇到程序无响应,就...
什么是
进程
?什么是线程?
进程
与线程的区别?
进程
可以理解为
一个
应用程序的执行过程,应用程序一旦执行,就是
一个
进程
。每个
进程
都有自己独立的地址空间,每启动
一个
进程
,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据...
面试题:1,
进程
和线程的区别?什么时候用
进程
?什么时候用线程?为什么你的项目中用的是线程?为什么不用
进程
?如果只有
进程
,对你这个项目有没有影响?
答:首先得知道什么是
进程
什么是线程,我的理解是
进程
是指在系统中正在运行的
一个
应用程序;程序一旦运行就是
进程
,或者更专业化来说:
进程
是指程序执行时的
一个
实例,即它是程序已经执行到课中程度的数据结构的汇集...
C++ Builder
13,826
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章