关于XP没有QueryFullProcessImageName的问题(in ProcessInfo)

2011-03-29

记得以前看过一点儿windows核心编程,现在又拿起来重新看看,哎,基本上都忘了。简单看了看进程那部分,自己想写点关于进程的小程序,不过后来发现原来书配了源代码的。于是下到http://www.wintellect.com/books.aspx 把代码下了。打开,然后一切顺利,编译全部通过。不过执行ProcessInfo时,出现错误了。无法定位程序输入点QueryFullProcessImageNameW于KERNEL32.dll上 。去google了一下,原来是XP里面没有QueryFullProcessImageNameW这个东东啊。随后查了查msdn,上面说

 


 

Requirements

Minimum supported client

Windows Vista

Minimum supported server

Windows Server 2008

Header

Winbase.h (include Windows.h)

 


 

 

原来自己用的是XP,不满足人家最小要求啊,呵呵:)。接着往后看,有一个评论说:

 


 

For the best results use the following table to convert paths.

Windows 2000 = GetModuleFileName()
Windows XP x32 = GetProcessImageFileName()
Windows XP x64 = GetProcessImageFileName()
Windows Vista = QueryFullProcessImageName()
Windows 7 = QueryFullProcessImageName()


Note: If you are not aware the API GetProcessImageFileName() returns a kernel DOS device path. You can use the following API to map the device paths to a Win32 format.

GetLogicalDriveStrings
QueryDosDevice

 


原来32位XP还可以用GetProcessImageFileName呢。又查了下GetProcessImageFileName

DWORD WINAPI GetProcessImageFileName(
  __in   HANDLE hProcess,
  __out  LPTSTR lpImageFileName,
  __in   DWORD nSize
);
把源码改了改,如下:

再加上psapi.h这个头文件,然后编译要是有错,5555。 error   LNK2001:   unresolved   external   symbol 。???怎么会有这个问题呢,又看了下msdn,原来

Requirements

Minimum supported client

Windows XP

Minimum supported server

Windows Server 2003

Header

Psapi.h

Library

Kernel32.lib on Windows 7 and Windows Server 2008 R2, Psapi.lib if PSAPI_VERSION=1 on Windows 7 and Windows Server 2008 R2, Psapi.lib on Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000

DLL

Kernel32.dll on Windows 7 and Windows Server 2008 R2, Psapi.dll if PSAPI_VERSION=1 on Windows 7 and Windows Server 2008 R2, Psapi.dll on Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000
 
 
原来是自己没有仔细看啊,少了个psapi.lib啊,难怪啊。加上之后,哈哈可以运行啦,不写了,自己慢慢看看他是怎么写的,嘿嘿,顺便自己瞎改改。


 

 

 

 

 

 

 

 


### 回答1: ProcessInfo 是一个非常好用的系统进程信息查看工具。它可以为用户展示出计算机中所有正在运行的程序和进程的详细信息,包括 CPU 占用率、内存占用率、磁盘活动和网络带宽等等。这些信息对于分析系统性能和故障的原因非常有用,它为用户提供了一个方便而直观的管理视图。 用户下载 ProcessInfo 工具后,只需要打开它,就可以看到所有运行的进程列表。每个进程都会显示一个图标,进程的名称、所属用户、启动时间、CPU 占用率、内存占用率和磁盘 I/O 活动等等。击某个进程,将展开该进程的详细信息,例如线程、模块、窗口等等。此外,用户还可以通过 ProcessInfo 工具来结束、挂起或恢复运行某个进程。 另外值得一提的是,ProcessInfo 工具不仅仅适用于 Windows 操作系统,同时也支持 Linux 和 macOS。此外,它还具有很好的可定制化功能,用户可以根据自己的需求来设置 ProcessInfo 工具的视图和颜色方案等等。 总之,如果用户需要对系统进程进行详细分析,或者需要管理系统中的运行进程,那么 ProcessInfo 工具就是一个非常不错的选择。用户只需要进行简单的下载和安装,就可以使用这个工具来对系统性能进行深入分析,找出问题的原因,并提高计算机的整体运行效率。 ### 回答2: processinfo是一个Windows系统下的进程信息管理工具,可以通过它来获取和查看计算机上运行的各个进程的详细信息。 使用processinfo下载时,我们需要先到官方网站或者其他可靠的软件下载网站中搜索并找到该软件的下载地址。一般来说,我们会找到一个可信赖的下载链接,击进入下载页面。 在下载页面中,我们通常会选择和击一个下载按钮或链接,然后等待下载过程开始。下载过程的时间长短取决于网络速度和软件大小等因素,我们需要耐心等待。 下载完成后,我们需要找到下载好的文件,一般会在浏览器的默认下载保存路径中找到。如果不确定下载保存路径,可以通过浏览器的设置或下载管理界面进行查看或更改。 找到下载好的processinfo安装文件后,双击打开,按照安装向导的提示进行安装过程。通常情况下,我们需要选择安装路径、设置快捷方式等相关选项,并阅读并同意软件的许可协议。 安装完成后,我们可以在开始菜单或桌面上找到processinfo的快捷方式,双击打开即可使用。在processinfo的界面中,我们可以查看当前计算机上运行的进程列表,以及每个进程的详细信息。我们可以了解每个进程的PID、进程名、内存使用情况等,甚至可以进行一些简单的操作,如结束进程或查看进程的属性等。 总之,使用processinfo下载并安装后,我们可以方便地管理和了解当前计算机上所有进程的情况,帮助我们更好地运行和维护系统。 ### 回答3: ProcessInfo是一款功能强大的系统进程信息查看和管理工具。用户可以通过下载和安装ProcessInfo,来实时监控计算机上的运行进程,以便更好地了解和管理这些进程。 使用ProcessInfo,用户可以查看到所有正在运行的进程的详细信息,包括进程名称、进程ID、进程路径、内存使用情况、CPU占用率等。这些信息对于用户来说非常有用,因为它们能够帮助用户了解系统的运行状况,以及哪些进程可能正在消耗过多的系统资源。 除了查看进程的详细信息外,ProcessInfo还提供了一些管理功能。用户可以通过ProcessInfo来结束特定的进程,以便释放系统资源或解决进程卡死的问题。此外,ProcessInfo还支持用户设置进程的优先级,以将更多的系统资源分配给某些重要的进程。 另外,ProcessInfo还提供了一个历史记录功能,可以记录系统中每个进程的运行时间和资源使用情况。用户可以通过查看历史记录来分析进程的运行趋势和资源消耗情况,进而做出合理的调整和优化。 总之,ProcessInfo是一款非常有用的系统进程信息查看和管理工具,它能够帮助用户更好地了解和管理计算机上的运行进程,优化系统性能。通过下载和安装ProcessInfo,用户可以方便地获得实时的进程信息,并通过其提供的管理功能来优化系统资源的分配。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值