Get font information (?)

Just starting out? Need help? Post your questions and find answers here.
AZJIO
Addict
Addict
Posts: 1318
Joined: Sun May 14, 2017 1:48 am

Get font information (?)

Post by AZJIO »

There is a working example

Not working, need help

First attempt

Code: Select all

EnableExplicit

Structure Metr
	Size.i
	i1.i
	i2.i
	i3.i
	i4.i
	i5.i
	s1.b[60]
	i6.i
	i7.i
	s2.b[60]
	i8.i
	i9.i
	s3.b[60]
	s4.b[60]
	s5.b[60]
EndStructure

Structure ItemFont
	l1.l
	l2.l
	l3.l
	l4.l
	l5.l
	s1.b
	s2.b
	s3.b
	s4.b
	s5.b
	s6.b
	s7.b
	s8.b
	char.c[32]
EndStructure

Global Metr.Metr

Metr\Size = SizeOf(Metr)

#SPI_GETNONCLIENTMETRICS = 41

SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, Metr\Size, Metr, 0)

Debug GetLastError_()

Global ItemFont1.ItemFont
CopyStructure(@Metr\s1, @ItemFont1, ItemFont)

Debug ItemFont1\char
Debug ItemFont1\l1
Debug ItemFont1\l5
Second attempt

Code: Select all

EnableExplicit

Structure ItemFont
	l1.l
	l2.l
	l3.l
	l4.l
	l5.l
	s1.b
	s2.b
	s3.b
	s4.b
	s5.b
	s6.b
	s7.b
	s8.b
	char.c[32]
EndStructure

Structure Metr
	Size.l
	l1.l
	l2.l
	l3.l
	l4.l
	l5.l
	s1.ItemFont
	l6.l
	l7.l
	s2.ItemFont
	l8.l
	l9.l
	s3.ItemFont
	s4.ItemFont
	s5.ItemFont
EndStructure

Global Metr.Metr

Metr\Size = SizeOf(Metr)

#SPI_GETNONCLIENTMETRICS = 41

SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, Metr\Size, Metr, 0)

Debug GetLastError_()

Debug "———————"
Debug "CaptionFont"
Debug PeekS(@Metr\s1\char, 32, #PB_Unicode)
Debug Metr\s1\l1
Debug Metr\s1\l5
Debug "———————"
Debug "IconFont"
Debug PeekS(@Metr\s2\char, 32, #PB_Unicode)
Debug Metr\s2\l1
Debug Metr\s2\l5
Debug "———————"
Debug "MenuFont"
Debug PeekS(@Metr\s3\char, 32, #PB_Unicode)
Debug Metr\s3\l1
Debug Metr\s3\l5
Debug "———————"
Debug "MessageFont"
Debug PeekS(@Metr\s4\char, 32, #PB_Unicode)
Debug Metr\s4\l1
Debug Metr\s4\l5
Debug "———————"
Debug "SmCaptionFont"
Debug PeekS(@Metr\s5\char, 32, #PB_Unicode)
Debug Metr\s5\l1
Debug Metr\s5\l5
User_Russian
Addict
Addict
Posts: 1443
Joined: Wed Nov 12, 2008 5:01 pm
Location: Russia

Re: Get font information (?)

Post by User_Russian »

Code: Select all

EnableExplicit

Global Metr.NONCLIENTMETRICS

Metr\cbSize = SizeOf(Metr)

SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, Metr\cbSize, Metr, 0)

Debug Metr\iCaptionHeight
Debug Metr\iMenuWidth
Debug PeekS(@Metr\lfMenuFont\lfFaceName[0])
Debug PeekS(@Metr\lfMessageFont\lfFaceName[0])
AZJIO
Addict
Addict
Posts: 1318
Joined: Sun May 14, 2017 1:48 am

Re: Get font information (?)

Post by AZJIO »

Thanks.
"IconFont" is missing. HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics. There are 6 elements, and there are 5 elements in the structure.
There is a program that changes the font size. I would like to repeat it. It would be possible to change this data in the registry. The first byte changes.

Code: Select all

1 = f3
2 = f2
3 = f1
4 = f0 (font size 16)
5 = ef (font size 17)
6 = ee
7 = ed
5 elements

Code: Select all

EnableExplicit

Global Metrics.NONCLIENTMETRICS

Metrics\cbSize = SizeOf(Metrics)

SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, Metrics\cbSize, Metrics, 0)

Debug "———————"
Debug "Title CaptionFont"
Debug PeekS(@Metrics\lfCaptionFont\lfFaceName[0])
Debug Metrics\lfCaptionFont\lfHeight
Debug Metrics\lfCaptionFont\lfWeight
Debug "———————"
Debug "Title Palette SMCaptionFont"
Debug PeekS(@Metrics\lfSMCaptionFont\lfFaceName[0])
Debug Metrics\lfSMCaptionFont\lfHeight
Debug Metrics\lfSMCaptionFont\lfWeight
Debug "———————"
Debug "Menu MenuFont"
Debug PeekS(@Metrics\lfMenuFont\lfFaceName[0])
Debug Metrics\lfMenuFont\lfHeight
Debug Metrics\lfMenuFont\lfWeight
Debug "———————"
Debug "ToolBar StatusFont"
Debug PeekS(@Metrics\lfStatusFont\lfFaceName[0])
Debug Metrics\lfStatusFont\lfHeight
Debug Metrics\lfStatusFont\lfWeight
Debug "———————"
Debug "MessageBox MessageFont"
Debug PeekS(@Metrics\lfMessageFont\lfFaceName[0])
Debug Metrics\lfMessageFont\lfHeight
Debug Metrics\lfMessageFont\lfWeight
Post Reply