结束普通方法无法结束的进程

使用ntsd程序 (如果安装过VS,在VS的安装目录下,比如“C:\Program Files (x86)\Debugging Tools for Windows (x86)\ntsd.exe”,也可以在这里下载

ntsd -c q -p PID
ntsd -c q -pn PName

两种方法

一种是使用进程的ID号,将PID换成对应进程ID号即可

一种是使用进程的名称,将PName换成对应的exe名字即可,比如notepad.exe

为了方便,写了个批处理,将该批处理和ntsd放在一起,使用时执行批处理,选择对应的方式,并输入参数即可。

@ECHO OFF
TITLE 结束使用普通方法无法结束的进程
COLOR 0A
MODE con: COLS=62 LINES=22

:MENU
set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
ECHO.  %date% %tm1%点%tm2%分%tm3%秒
ECHO.   ========================================
ECHO.   请选择要进行的操作,然后按回车
ECHO.   ────────────────────
ECHO.  1    根据进程号PID结束进程
ECHO.  2    根据进程名称结束进程

ECHO.  0    退出
ECHO.
ECHO.请输入选择项目的序号:

set /p choose=
if %choose%==1 goto killusingpid
if %choose%==2 goto killusingname
if %choose%==0 goto END
ECHO. 输入错误,请输入正确的项目序号:

goto menu

:killusingpid
ECHO.  请输入进程号PID,然后按回车
set /p proid=
set /a i=0
:kpid
ntsd -c q -p %proid%
if %i% GEQ 10 ( ( echo 结束进程%proid%失败 ) & goto MENU )
pause
set /a i=%i%+1
echo 结束进程%proid%第%i%次
tasklist | findstr /i %proid% && ( goto kpid )
echo 结束进程ID为%proid%的程序成功或进程ID:%proid%不存在
GOTO MENU

:killusingname
ECHO.  请输入进程的名称(比如notepad.exe),然后按回车
set /p proname=
set /a i=0
:kpname
ntsd -c q -pn %proname%
if %i% GEQ 10 ( ( echo 结束程序%proname%失败 ) & goto Menu )
set /a i=%i%+1
echo 结束程序%proname%第%i%次
tasklist | findstr /i %proname% && goto kpname
echo 结束程序%proname%成功或程序:%proname%未启动

GOTO MENU

:END
exit

参考:

https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/cdb-command-line-options

原文地址:https://www.cnblogs.com/mobilecard/p/9560105.html

时间: 2024-12-14 22:23:32

结束普通方法无法结束的进程的相关文章

zabbix使用自己编写脚本模板和zabbix自带模板两种方法添加对指定进程和端口的监控

zabbix使用自己编写脚本模板和zabbix自带模板两种方法添加对指定进程和端口的监控 1.自带监控模板进行os的监控 进入/usr/local/zabbix/etc/zabbix_agentd.conf 配置文件修改 LogRemoteCommands=1     ###开启脚本功能 Server=192.168.5.129     ##修改zabbix指向的服务器: 重启zabbix_agentd.zabbix_server服务 在配置-->主机-->添加主机--> 配置主机信息主

Android怎么结束一个进程,我试了用 ActivityManager.killBackgroundProcesses方法去结束,但是没有反应

在android2.2以后,如果服务在ondestroy里加上了start自己,用kill backgroudprocess通常无法结束自己. 有一种最新发现的方法,利用反射调用forceStopPackage来结束进程 Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class); forceStopPackage.setAccessible(true); for

adb server无法启动方法,结束占用端口的进程

adb server is out of date.  killing...ADB server didn't ACK* failed to start daemon *error: unknown host service 使用adb时,若出上面的错,使用adb kill-server是没有用的,因为此时是其他进程的监听了端口,而不是adb.我用cmd+命令管理器解决: 输入netstat -ano | findstr "5037" 找到下列进程 TCP    127.0.0.1:5

Android ActivityManager.killBackgroundProcesses方法去结束

android2.2以后,如果服务在ondestroy里加上了start自己,用kill backgroudprocess通常无法结束自己.有一种最新发现的方法,利用反射调用forceStopPackage来结束进程Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);forceStopPackage.setAccessible(true);forceSto

父进程结束,其子进程不会结束,会挂到init进程下

结论:一个父进程产生子进程,父进程结束(kill),子进程不会结束,子进程被init进程托管 下面是过程: d.sh脚本是一个ping命令,执行d.sh 目前,103310 进程为父进程,103344为子进程 现在把父进程kill掉. 最终发现,子进程103344被托管到1进程下. 参考: 孤儿进程与僵尸进程[总结] 原文地址:https://www.cnblogs.com/sdadx/p/10133168.html

Activity优化几个结束的方法

1 package com.itau.jingdong; 2 3 import java.util.Stack; 4 import android.app.Activity; 5 import android.app.ActivityManager; 6 import android.content.Context; 7 8 /** 9 * @author Tau.Chen 陈涛 10 * 11 * @email [email protected],[email protected] 12 *

jQuery each方法中结束本次循环和退出循环

each里面不能使用break结束循环,也不能使用continue来结束本次循环,只能用return false来结束循环(代替break),用return ture来结束本次循环(代替continue). $.each(a, function(i, e){ if (...) { // 结束本次循环 return true; } if (...) { // 退出循环 return true; } }); 原文地址:https://www.cnblogs.com/KingJames/p/85218

数据库五大结束使用方法

数据库中的五种约束及其添加方法五大约束 —-主键约束 (Primay Key Constraint)   唯一性,非空性 —-唯一约束 (Unique Constraint)            唯一性,可以空,但只能有一个 —-检查约束 (Check Constraint))            对该列数据的范围.格式的限制(如:年龄.性别等) —-默认约束 (Default Constraint)            该数据的默认值 —-外键约束 (Foreign Key Constr

输入数据有多组,到 EOF 结束实现方法

C语言实现: while(~scanf("%d%d", &n, &m)){ } 或 while(scanf("%d %d",&n,&m)!=EOF){ } C++实现: while(cin>>n>>m){ } 原文地址:https://www.cnblogs.com/chenjiaolong/p/12540137.html