wangwolue1
驱动牛犊
驱动牛犊
  • 注册日期2002-10-19
  • 最后登录2008-11-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:2207回复:5

驱动或者应用程序中,知道一个进程ID,怎么样得到该进程的程序绝对路径?

楼主#
更多 发布于:2002-11-18 21:29
驱动或者应用程序中,知道一个进程ID,怎么样得到该进程的程序绝对路径?

最新喜欢:

hongsinghongsi...
ss
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-19 16:17
进程的句柄和ID可以用PsGetCurrentProcess和PsGetCurrentProcessId获得。
 
2000下进程完整路径可以用以下函数获得:
PCWSTR GetCurrentProcessPathName()
{
  DWORD dwAddress = (DWORD)PsGetCurrentProcess();
  if(dwAddress == 0 || dwAddress == 0xFFFFFFFF)
    return NULL;
  dwAddress += 0x1B0;
  if((dwAddress = *(DWORD*)dwAddress) == 0) return NULL;
  dwAddress += 0x10;
  if((dwAddress = *(DWORD*)dwAddress) == 0) return NULL;
  dwAddress += 0x3C;
  if((dwAddress = *(DWORD*)dwAddress) == 0) return NULL;

  return (PCWSTR)dwAddress;
}
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-20 16:19
GOOD!
生命驱动,活力无限!
wangwolue1
驱动牛犊
驱动牛犊
  • 注册日期2002-10-19
  • 最后登录2008-11-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-25 12:49
谢谢,我想让它显示出来应该怎么做?
我用dbgprint(\"%s\",GetCurrentProcessPathName());
会蓝屏,用
dbgprint(\"%c\",GetCurrentProcessPathName());
只能显示一个字符。


ss
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-25 13:46
用RtlUnicodeStringToAnsiString什么的转换一下啊!
Axi
Axi
驱动牛犊
驱动牛犊
  • 注册日期2002-02-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-12-09 18:08
谢谢,我想让它显示出来应该怎么做?
我用dbgprint(\"%s\",GetCurrentProcessPathName());
会蓝屏,用
dbgprint(\"%c\",GetCurrentProcessPathName());
只能显示一个字符。


 
dbgprint(\"%ws\",GetCurrentProcessPathName());
可以么?
举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。
游客

返回顶部