
当你运行的程序正在调用某个dll文件时,正在使用的文件是当然不可能给你删除的。一般会提示:另一个程序正在使用此文件 or 拒绝访问等那么,到底是哪个程序在调用这个dll文件呢。一个方法可以把那个程序很容易的找出来。。在运行里输入cmd进入命令提示符。然后输入命令:tasklist /mc:\123txt不要急。到C盘下面去找一找,是不是有了一个123txt?(当然。你可以自己设定文件的输出路径,名字,甚至后缀。但要是文本文件哦。。)打开他。里面就是目前运行的各个程序正在调用的dll文件。找出来了后问题就好办多了。打开任务管理器。把对应的那个程序给关了。。就可以顺利删除了。。那就不必进安全模式,进DOS那么麻烦了。。。当然。有些应用程序是以服务形式运行的。那么你就有可能查到的是svhostexe但是。里面有很多个哦。。这个也好办。仍然打开命令提示符。输入tasklist /svc,当然,你也可以把他输出为文本文件,如tasklist /svcC:\234txt。看到了吗?每个svchostexe后面是不是对应有一个ID呢?有了ID一对照也可以知道是哪个服务了。。如果是可关的。就关了他。。不过记住。。系统进程可别乱关哦。
运行你想知道的
应用程序
,然后在进入
dos窗口
(开始->运行->command),输入命令:
tasklist
/m
|more
就可以看到你那个应用程序调用的
dll文件
了
或者
tasklist
/m
>c:\dlltxt
就把结果保存在c:\dlltxt文件里面,想怎么看就怎么看!
名称
ldd
-
打印共享库的依赖关系
大纲
ldd
[选项] 文件
描述
ldd
输出在命令行上指定的每个程序或共享库需要的共享库。
选项
--version
打印ldd的版本号
-v
--verbose
打印所有信息,例如包括符号的版本信息
-d
--data-relocs
执行符号重部署,并报告缺少的目标对象(只对ELF格式适用)
-r
--function-relocs
对目标对象和函数执行重新部署,并报告缺少的目标对象和函数(只对ELF格式适用)
--help
用法信息
或者看看《linux就该这么学》,具体关于这一章地址3w(dot)linuxprobe/chapter-02(dot)html
::本程序仅用于XP查看进程使用的端口
@echo off
setlocal enabledelayedexpansion
echo&echo 端口号 进程名称
echo&ECHO TCP协议:
for /F "usebackq skip=4 tokens=2,5" %%i in (`"netstat -ano -p TCP"`) do (
call :Assoc %%i TCP %%j
echo !TCP_Port! !TCP_Proc_Name!
)
echo&ECHO UDP协议:
for /F "usebackq skip=4 tokens=2,4" %%i in (`"netstat -ano -p UDP"`) do (
call :Assoc %%i UDP %%j
echo !UDP_Port! !UDP_Proc_Name!
)
echo 请按任意键退出本程序。
pause>nul
:Assoc
for /F "tokens=2 delims=:" %%e in ("%1") do (
set %2_Port=%%e
)
for /F "skip=2 usebackq delims=, tokens=1" %%a in (`"Tasklist /FI "PID eq %3" /FO CSV"`) do (
set %2_Proc_Name=%%~a
)
goto :eof
*** 作系统中的dll文件被程序调用无法直接删除,只能通过特殊方式进行删除,步骤如下:1、在运行里输入cmd进入命令提示符。2、输入命令tasklist /m > 123txt查看dll文件是哪个程序在调用,结束该程序或进程,然后删除dll文件。3、如果查出来的占用dll文件的进程是svhostexe进程,这个进程一般系统有7、8个之多,则可以根据PID进程号来结束进程,然后删除dll文件。
以上就是关于查找dll被什么程序正在调用的方法全部的内容,包括:查找dll被什么程序正在调用的方法、如何查看某进程调用的DLL文件、Linux使用ldd命令查看程序调用了哪些动态库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)