Assembly language > Assembly discussions
EnumDisplaySettings
TimoVJL:
--- Code: ---; ml.exe -coff hello.asm -link -subsystem:console
.386
.model flat
option casemap:none
exit PROTO C :DWORD
printf PROTO C :PTR,:VARARG
INCLUDELIB msvcrt
EnumDisplaySettingsA PROTO STDCALL :PTR, :DWORD, :PTR
INCLUDELIB user32.lib
POINTL struct
x DWORD ?
y DWORD ?
POINTL ends
DEVMODEX struct
dmDeviceName BYTE 32 dup (?)
dmSpecVersion WORD ?
dmDriverVersion WORD ?
dmSize WORD ?
dmDriverExtra WORD ?
dmFields DWORD ?
union
struct
dmOrientation SWORD ?
dmPaperSize SWORD ?
dmPaperLength SWORD ?
dmPaperWidth SWORD ?
ends
dmPosition POINTL <?>
ends
dmScale SWORD ?
dmCopies SWORD ?
dmDefaultSource SWORD ?
dmPrintQuality SWORD ?
dmColor SWORD ?
dmDuplex SWORD ?
dmYResolution SWORD ?
dmTTOption SWORD ?
dmCollate SWORD ?
dmFormName BYTE 32 dup (?)
dmLogPixels WORD ?
dmBitsPerPel DWORD ?
dmPelsWidth DWORD ?
dmPelsHeight DWORD ?
union
dmDisplayFlags DWORD ?
dmNup DWORD ?
ends
dmDisplayFrequency DWORD ?
dmICMMethod DWORD ?
dmICMIntent DWORD ?
dmMediaType DWORD ?
dmDitherType DWORD ?
dmReserved1 DWORD ?
dmReserved2 DWORD ?
dmPanningWidth DWORD ?
dmPanningHeight DWORD ?
DEVMODEX ends
.data
msg db "%d x %d",10,0
dev db "\\.\DISPLAY1",0
dm DEVMODEX <<?>>
.code
mainCRTStartup PROC C
;invoke EnumDisplaySettingsA, ADDR dev, -1, ADDR dm
invoke EnumDisplaySettingsA, 0, -1, ADDR dm
invoke printf, ADDR msg, dm.dmPelsWidth, dm.dmPelsHeight
invoke exit,0
mainCRTStartup ENDP
END mainCRTStartup
--- End code ---
EDIT: fix for default monitor without device name
Vortex:
Hi Timo,
Many thanks, attached is the project built with Poasm. There are some minor modifications in the code, I hope you don't mind.
Running the executable, I get :
--- Code: ---0 x 0
--- End code ---
TimoVJL:
Thanks
In my system it gave 1920 x 1080
EDIT:
libs are useful for this testbed
https://forum.pellesc.de/index.php?topic=11474.msg40487#msg40487
Vortex:
Hi Timo,
Thanks, I tested your 32-bit version of msvcrt.lib. The result is the same on my Windows 7 Sp1 64-bit system :
--- Code: ---0 x 0
--- End code ---
EDIT : Here is the fixed version following Timo's recommendation to set the driver name to NULL.
--- Code: ---1366 x 768
--- End code ---
TimoVJL:
My system is also Windows 7 SP1 x64.
Those msvcrt.libs was for common usage for those, who don't have them currently.
Navigation
[0] Message Index
[#] Next page
Go to full version