如何得到系統資源、GDI資源、用戶資源

huwei001982 2004-08-06 03:50:56
我記得有一個API是 Get****Resources, 具體是什麼忘記了,在VC中搜索也找不到
不知哪位大俠能告知!
...全文
103 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
huwei001982 2004-08-23
typedef DWORD (__stdcall GetGui)(HANDLE, DWORD);

HINSTANCE hInst = ::LoadLibrary("User32.dll");
VERIFY(hInst != NULL);
GetGui *p = (GetGui*)::GetProcAddress(hInst, "GetGuiResources");

HANDLE hHandle = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE,
::GetCurrentProcessId());

DWORD dwReturn = p(hHandle, 0);
TCHAR buf[20];
AfxMessageBox(ltoa(dwReturn, buf, 10));

::CloseHandle(hHandle);
::FreeLibrary(hInst);

通过函数指针
这样是实现了, 取得的值为 18左右
这应该是当前进程占用的资源百比分吧, 如果我想得到系统剩余的资源又该怎么办
谢谢!
回复
DentistryDoctor 2004-08-23
/// 如果您必须使用下列所指定的平台之前的平台,则修改下面的定义。
// 有关不同平台的相应值的最新信息,请参考 MSDN。
#ifndef WINVER
#define WINVER 0x0500 //为 Windows 2000 及更新版本改变为适当的值。
#endif

#ifndef _WIN32_WINNT // 允许使用 Windows 2000或更高版本的特定功能。
#define _WIN32_WINNT 0x0500 //为Windows 2000 及更新版本改变为适当的值。
#endif

#ifndef _WIN32_WINDOWS // 允许使用 Windows 2000或更高版本的特定功能。
#define _WIN32_WINDOWS 0x0500 //为 Windows Me 及更新版本改变为适当的值。
#endif
回复
huwei001982 2004-08-23
error C2065: 'GetGuiResources' : undeclared identifier

我可以查到这个函数(在 vc98\include)中

也在 link中加入了 user32.lib

怎么还是不行
回复
DentistryDoctor 2004-08-23
参考MSDN中Performance Monitoring的内容,具体有什么计数器可以看看"性能"
回复
huwei001982 2004-08-23
楼上的可否将 Performance Counters 说得详细些,

Thanks, thanks!

这个问题问了好多天了
回复
DentistryDoctor 2004-08-23
最好用Performance Counters.
回复
DentistryDoctor 2004-08-23
GetGuiResources

The GetGuiResources function retrieves the count of handles to graphical user interface (GUI) objects in use by the specified process.


DWORD GetGuiResources(
HANDLE hProcess,
DWORD uiFlags
);

Parameters
hProcess
[in] Handle to the process. The handle must have the PROCESS_QUERY_INFORMATION access right. For more information, see Process Security and Access Rights.
uiFlags
[in] GUI object type. This parameter can be one of the following values. Value Meaning
GR_GDIOBJECTS Return the count of GDI objects.
GR_USEROBJECTS Return the count of USER objects.

Return Values
If the function succeeds, the return value is the count of handles to GUI objects in use by the process. If no GUI objects are in use, the return value is zero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks
A process without a graphical user interface does not use GUI resources, therefore, GetGuiResources will return zero.

Requirements
Client: Included in Windows XP and Windows 2000 Professional.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Header: Declared in Winuser.h; include Windows.h.
Library: Use User32.lib.


回复
luerming 2004-08-23
up
回复
huwei001982 2004-08-20
再顶起来
回复
huwei001982 2004-08-07
不是 LoadResource, 其实就像是 WIN ME下有一个资源监视的工具, 可以列出三种资源的使用情况!
回复
huwei001982 2004-08-07
没有人知道吗?
回复
huiker 2004-08-06
up
回复
xiaohe2008 2004-08-06
HGLOBAL LoadResource(
HMODULE hModule,
HRSRC hResInfo );
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-08-06 03:50
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……