社区
C++ Builder
帖子详情
如何结束一个没有响应的进程?
大伟
2007-05-28 05:07:25
hwnd=FindWindow(NULL,"TEST");
SendMessage(hwnd,WM_CLOSE,NULL,NULL);
这个方法不行,不知道还有什么方法?
...全文
295
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
笑话:计算机系的男同学追班里一女同学,结果此女总是躲躲闪闪。男的看没戏,就另找了
一个
去追,结果这女的不满意了...
一名计算机系男生追求班里的女生未果转而追求另一女生,原目标女生不满并质问男生为何放弃。男生以电脑程序比喻,如果点击
一个
程序总是显示“
没有响应
”,应该如何处理?女生回答应该“
结束
进程
”。男生表示赞同。
dat关闭某
进程
_如何强制
结束
一个
运行中的
进程
本文介绍了在Windows操作系统中强制
结束
一个
不响应的
进程
的方法,包括通过任务管理器的‘
结束
进程
’功能,以及使用命令行工具ntsd、tasklist和tskill。特别提到ntsd是
一个
系统调试工具,可以用来
结束
大部分
进程
,并提供了使用ntsd命令的格式。同时警告,强制
结束
进程
可能导致数据丢失。
dat关闭某
进程
_如何禁止
结束
某
进程
本文介绍了如何使用taskkill命令在Windows系统中强制
结束
或禁止
结束
某个
进程
,包括使用/S、/U、/P等参数指定远程系统、用户名和密码,以及/F、/IM、/PID等选项进行
进程
选择。此外,还提到了筛选器的使用,如根据
进程
状态、图像名等条件筛选要操作的
进程
。
linux中怎样
结束
进程
,linux怎么样终止
进程
本文介绍如何在Linux中使用kill和killall命令来终止无响应的应用程序
进程
。通过这两种工具,用户可以根据
进程
ID或
进程
名称来
结束
进程
。文章还详细解释了不同信号的作用及其如何被发送。
bat文件
结束
进程
命令
本文详细介绍了Windows系统中的tasklist和taskkill命令的使用方法。包括如何查看本地或远程系统上的
进程
列表,以及如何根据
进程
ID或名称
结束
进程
。提供了丰富的参数说明和实例演示。
C++ Builder
13,874
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章