| 论坛登陆 注册 | 教程 笑话 影视 投稿 |
![]() |
|
||||||||||||||||||||||||||||||||||||||||
摆脱DLL地狱的困扰之获取进程的命令行 |
|
| www.xker.com 作者:NorthTibet 来源:vckbase 加入日期:2006-3-3 10:53:29 | |
上表列出的方法中有一个是 GetCmdLine,这个函数返回进程的命令行。实际上,它并不是真正地返回命令行,而是返回进程启动时接收的参数。例如,如果你安装了微软Power Toys中的TweakUI程序(可以在vckbase站点下载),当你在Windows的资源管理器中的任何文件夹上单击右键,则在弹出的上下文菜单中都会有一个"Run Command Prompt Here"菜单项。执行这个菜单命令后,会弹出命令提示窗口,并且所点击的目录为当前工作目录。(相关文章:摆脱DLL地狱的困扰之WTS API ) 但是你怎么知道cmd.exe被调用的时候用的是什么参数呢?那么在微软的调试工具(可以在vckbase站点下载)中有一个命令行程序TLIST.EXE,用它可以知道cmd.exe运行的参数,TLIST.EXE是个控制台程序,其输出的信息包括运行进程清单以及命令行,如果用进程ID作为参数调用此程序,例如用cmd.exe的进程ID作为参数载C:盘根目录(C:\)运行TLIST: C:\>tlist 632 632 CMD.EXE C:\WINNT\System32\cmd.exe - tlist 632 CWD: C:\ CmdLine: C:\WINNT\System32\cmd.exe /k cd "C:\" VirtualSize: 13408 KB PeakVirtualSize: 13412 KB WorkingSetSize: 948 KB PeakWorkingSetSize: 952 KB NumberOfThreads: 1 968 Win32StartAddr:0x4ad1a420 LastErr:0x000000cb State:Waiting 5.0.2195.1600 shp 0x4ad00000 cmd.exe 5.0.2195.1600 shp 0x77f80000 ntdll.dll 5.0.2195.1600 shp 0x77e80000 KERNEL32.dll 5.0.2195.1600 shp 0x77e10000 USER32.dll 5.0.2195.1340 shp 0x77f40000 GDI32.DLL 5.0.2195.1600 shp 0x77db0000 ADVAPI32.dll 5.0.2195.1615 shp 0x77d40000 RPCRT4.DLL 6.1.8637.0 shp 0x78000000 MSVCRT.dll 第三行的参数/k cd "C:\"用于外壳调用cmd.exe。如果指定了/k,则cmd.exe执行指定的命令,但是不退出。由于这时调用的应用程序,所以在你构造的工具中这样使用行不通的,必须通过API函数调用。 本新闻共2页,当前在第1页 1 2 编辑:xker.com上一篇:用Regsvr32快速找回丢失的显示桌面(图) 下一篇:没有了 |
||||||||||||||||||||||||||||||||
| 【关闭窗口】【技术交流】【收藏此页】 |
| 相关文章 | ||||
|
| 评论 | |
设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
|
| Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446 | |
|
|
| 本页浏览次数: |