GDIオブジェクトのハンドル数取得          <TOP>


指定したプロセスのGDIオブジェクトおよびUSERオブジェクトの数を取得します。

GetGuiResources 指定されたプロセスが使っているGUIオブジェクトのハンドルを返す

GetCurrentProcess 現在のプロセスに対応する疑似ハンドルを取得

 

 

'================================================================
'= GDIオブジェクトのハンドル数取得
'= Windows NT: バージョン 5.0 以降
'=    (GetGuiResources.bas)
'================================================================
#include "Windows.bi"

#define GR_GDIOBJECTS 0        'GDIオブジェクトの数を返す
#define GR_USEROBJECTS 1       'USERオブジェクトの数を返す

' 指定されたプロセスが使っているGUIオブジェクトのハンドルを返す
Declare Function Api_GetGuiResources& Lib "user32" Alias "GetGuiResources" (ByVal hProcess&, ByVal uiFlags&)

' 現在のプロセスに対応する疑似ハンドルを取得
Declare Function Api_GetCurrentProcess& Lib "Kernel32" Alias "GetCurrentProcess" ()

Var Shared Text1 As Object
Var Shared Button1 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var txt As String

    txt = txt & "GDIオブジェクト  :" & Format$(Api_GetGuiResources(Api_GetCurrentProcess, GR_GDIOBJECTS), "####") & Chr$(13, 10)
    txt = txt & "ユーザーオブジェクト:" & Format$(Api_GetGuiResources(Api_GetCurrentProcess, GR_USEROBJECTS), "####")
    Text1.SetWindowText txt
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End