c中如何获得某个进程的运行路径

c中如何获得某个进程的运行路径,第1张

看看你的计算机上有没有 Windows XP 的 wmic 命令

在DOS 黑窗 打命令

wmic process

可以获核洞碧得所改举有进程信息。

编程序,用 system("wmic process >my_log.txt")

把 屏幕输出 转向 到 文件 my_log.txt 里。

然后 fopen my_log.txt ,从里面 抓出 你要的 进程。

如果觉得信息太多,查一下帮助文件,找合适的选项命令,wmic process 加上选项 就可以了。

例如:

system("wmic process get ExecutablePath >my_log.txt")

my_log.txt 里有:

C:\WINDOWS\System32\smss.exe

C:\WINDOWS\system32\csrss.exe

C:\WINDOWS\system32\winlogon.exe

C:\WINDOWS\颤樱system32\services.exe

C:\WINDOWS\system32\lsass.exe

C:\WINDOWS\system32\svchost.exe

。。。

在“开始”—“运行”栏中输入“wmic”,然后点“确定”燃毕,此时XP就会数段族d出一个名为“C:\WINDOWS\System32\Wbem\wmic.exe”的命令行黑窗口(如果大家是第一次运行的话,窗口中会先显示“正在薯弊安装WMIC,请稍候。”),它的提示符是“wmic:root\cli>”,我们在其后输入“Process”命令(“进程”的意思)并回车,就会看到进程与其所对应的路径了

就按你的方法 剩下御掘谨的就是处理 怎么从 路径里提取 最后一个文件名了

方法 1

for /f "tokens=1,2,3,4,5,6,7,8 delims=\" %%i in ('echo %path%') do (

if "%%j"=="" echo %%i &goto :eo

if "%%k"=="" echo %%j &goto :eo

if "镇基%%l"=="" echo %%k &goto :eo

if "%%m"=="" echo %%l &goto :eo

if "%%n"=="" echo %%m &goto :eo

if "%%o"=="" echo %%n &goto :eo

if "%%p"=="" echo %%o &goto :eo

if "%%q"=="" echo %%p &goto :eo

)

:eo

方法 2

for /l %%i in (2,1,40) do if "!path:~-%%i,1!"=="\" (set /a b=%%i-1 &goto :eo)

:eo

echo !path:~-%b%,-1!

把 这两段分别放在你写散雹的最后一个PAUSE的前面

有什么不明白的 给我留言就可以了

第二种方法 @ECHO OFF 再加个 setlocal enabledelayedexpansion 就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8255000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存