You can do so using the native GetGuiResources api. Here is a sample:
///
/// uiFlags: 0 - Count of GDI objects
/// uiFlags: 1 - Count of USER objects
/// - Win32 GDI objects (pens, brushes, fonts, palettes, regions, device contexts, bitmap headers)
/// - Win32 USER objects:
/// - WIN32 resources (accelerator tables, bitmap resources, dialog box templates, font resources, menu resources, raw data resources, string table entries, message table entries, cursors/icons)
/// - Other USER objects (windows, menus)
///
[DllImport('User32')]
extern public static int GetGuiResources(IntPtr hProcess, int uiFlags);
public static int GetGuiResourcesGDICount()
{
return GetGuiResources(Process.GetCurrentProcess().Handle, 0);
}
public static int GetGuiResourcesUserCount()
{
return GetGuiResources(Process.GetCurrentProcess().Handle, 1);
}
’
’ uiFlags: 0 - Count of GDI objects
’ uiFlags: 1 - Count of USER objects
’ - Win32 GDI objects (pens, brushes, fonts, palettes, regions, device contexts, bitmap headers)
’ - Win32 USER objects:
’ - WIN32 resources (accelerator tables, bitmap resources, dialog box templates, font resources, menu resources, raw data resources, string table entries, message table entries, cursors/icons)
’ - Other USER objects (windows, menus)
’
_
extern Public static Integer GetGuiResources(IntPtr hProcess, Integer uiFlags)
Public Shared Function GetGuiResourcesGDICount() As Integer
Return GetGuiResources(Process.GetCurrentProcess().Handle,0)
End Function
Public Shared Function GetGuiResourcesUserCount() As Integer
Return GetGuiResources(Process.GetCurrentProcess().Handle,1)
End Function
Permalink