import com.ms.dll.DllLib; import com.ms.win32.*; public class EnumDisplaySettings { public static void main(String args[]) { String devicename = ""; DEVMODE devmode = new DEVMODE() ; devmode.dmSize =(short) DllLib.sizeOf(DEVMODE.class); int mode=0; System.out.println("---------------- Modes of Display Adapter --------------------------\n") ; System.out.println("Current Settings: ") ; EnumDisplaySettings(null, win.ENUM_CURRENT_SETTINGS, devmode) ; devicename = devmode.dmDeviceName; System.out.println("Device Name: " + devicename) ; System.out.println( " Width: " + devmode.dmPelsWidth + " " + "Height: " + devmode.dmPelsHeight + " " + "Bits/pixel: " + devmode.dmBitsPerPel + " " + "Frequency: " + devmode.dmDisplayFrequency + "\n\n") ; System.out.println("------------ Available Settings --------------------") ; while (EnumDisplaySettings(null, mode, devmode)) { if(! devmode.dmDeviceName.equals(devicename)) { devicename = devmode.dmDeviceName ; System.out.println("\nDevice Name: " + devicename) ; } System.out.println(mode + " Width: " + devmode.dmPelsWidth + " " + "Height: " + devmode.dmPelsHeight + " " + "Bits/pixel: " + devmode.dmBitsPerPel + " " + "Frequency: " + devmode.dmDisplayFrequency + "\n") ; // System.out.println("Width: " + devmode.dmPelsWidth + " " + "Height: " + devmode.dmPelsHeight) ; // System.out.println("Bits per pixel: " + devmode.dmBitsPerPel + " " + "Frequency: " + devmode.dmDisplayFrequency + "\n") ; mode++; } } /** @dll.import("USER32",auto) */ private static native boolean EnumDisplaySettings(String lpszDeviceName, int iModeNum, DEVMODE lpDevMode) ; } /** @dll.struct(auto) */ class DEVMODE { /** @dll.structmap([type=TCHAR[32]]) */ public String dmDeviceName; public short dmSpecVersion; public short dmDriverVersion; public short dmSize; public short dmDriverExtra; public int dmFields; public short dmOrientation; public short dmPaperSize; public short dmPaperLength; public short dmPaperWidth; public short dmScale; public short dmCopies; public short dmDefaultSource; public short dmPrintQuality; public short dmColor; public short dmDuplex; public short dmYResolution; public short dmTTOption; public short dmCollate; /** @dll.structmap([type=TCHAR[32]]) */ public String dmFormName; public short dmLogPixels; public int dmBitsPerPel; public int dmPelsWidth; public int dmPelsHeight; public int dmDisplayFlags; public int dmDisplayFrequency; public int dmICMMethod; public int dmICMIntent; public int dmMediaType; public int dmDitherType; public int dmICCManufacturer; public int dmICCModel; public int dmPanningWidth; public int dmPanningHeight; }