I am not very good at DLLStructCreate... and I have not much time... but this is some SystemParametersInfo stuff from microsoft that is supposed to return the info you want... somone else might fix it.
#cs
typedef struct tagNONCLIENTMETRICS {
UINT cbSize;
int iBorderWidth;
int iScrollWidth;
int iScrollHeight;
int iCaptionWidth;
int iCaptionHeight;
LOGFONT lfCaptionFont;
int iSmCaptionWidth;
int iSmCaptionHeight;
LOGFONT lfSmCaptionFont;
int iMenuWidth;
int iMenuHeight;
LOGFONT lfMenuFont;
LOGFONT lfStatusFont;
LOGFONT lfMessageFont;
#if (WINVER >= 0x0600)
int iPaddedBorderWidth;
#endif
} NONCLIENTMETRICS,
*LPNONCLIENTMETRICS;
typedef struct tagLOGFONT {
LONG lfHeight;
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT, *PLOGFONT;
#ce
$nonclientmetrics = DllStructCreate("uint;int;int;int;int;int;byte[60];int;int;byte[60];int;int;byte[60];byte[60];byte[60]")
DLLStructSetData($nonclientmetrics,1,DllStructGetSize($nonclientmetrics))
Global Const $SPI_GETNONCLIENTMETRICS = 41
$a = DLLCall("user32.dll","int","SystemParametersInfo","int",41, _
"int",DllStructGetSize($nonclientmetrics), _
"ptr",DllStructGetPtr($nonclientmetrics),"int",0)
$b = DLLCall("kernel32.dll","int","GetLastError")
MsgBox(4096,$b[0],$a[0])
$logfont1 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]",DLLStructGetPtr($nonclientmetrics,7))
$logfont2 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]",DLLStructGetPtr($nonclientmetrics,10))
$logfont3 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]",DLLStructGetPtr($nonclientmetrics,13))
$logfont4 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]",DLLStructGetPtr($nonclientmetrics,14))
$logfont5 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]",DLLStructGetPtr($nonclientmetrics,15))
MsgBox(4096,"",DllStructGetData($logfont1,14) & @LF & _
DllStructGetData($logfont2,14) & @LF & _
DllStructGetData($logfont3,14) & @LF & _
DllStructGetData($logfont4,14) & @LF & _
DllStructGetData($logfont5,14))
Lar.