public static int GetBrightness(IntPtr myHandle) { /*DECLARATIONS*/ //IntPtr myHandle = charmsBar.forms.frmMain.ActiveForm.Handle; IntPtr hMonitor = NativeMethods.MonitorFromWindow(myHandle, NativeConstants.MONITOR_DEFAULTTOPRIMARY); int lastWin32Error = Marshal.GetLastWin32Error(); uint pdwNumberOfPhysicalMonitors = 0u; bool numberOfPhysicalMonitorsFromHmonitor = NativeMethods.GetNumberOfPhysicalMonitorsFromHMONITOR( hMonitor, ref pdwNumberOfPhysicalMonitors); lastWin32Error = Marshal.GetLastWin32Error(); NativeStructures.PHYSICAL_MONITOR[] pPhysicalMonitorArray = new NativeStructures.PHYSICAL_MONITOR[pdwNumberOfPhysicalMonitors]; bool physicalMonitorsFromHmonitor = NativeMethods.GetPhysicalMonitorsFromHMONITOR( hMonitor, pdwNumberOfPhysicalMonitors, pPhysicalMonitorArray); lastWin32Error = Marshal.GetLastWin32Error(); uint pdwMonitorCapabilities = 0u; uint pdwSupportedColorTemperatures = 0u; var monitorCapabilities = NativeMethods.GetMonitorCapabilities( pPhysicalMonitorArray[0].hPhysicalMonitor, ref pdwMonitorCapabilities, ref pdwSupportedColorTemperatures); lastWin32Error = Marshal.GetLastWin32Error(); NativeStructures.MC_DISPLAY_TECHNOLOGY_TYPE type = NativeStructures.MC_DISPLAY_TECHNOLOGY_TYPE.MC_SHADOW_MASK_CATHODE_RAY_TUBE; var monitorTechnologyType = NativeMethods.GetMonitorTechnologyType( pPhysicalMonitorArray[0].hPhysicalMonitor, ref type); lastWin32Error = Marshal.GetLastWin32Error(); /*PROCESS*/ uint minBrightness = 0u; uint curBrightness = 0u; uint maxBrightness = 0u; var getMonitorBrightness = NativeMethods.GetMonitorBrightness( pPhysicalMonitorArray[0].hPhysicalMonitor, ref minBrightness, ref curBrightness, ref maxBrightness); lastWin32Error = Marshal.GetLastWin32Error(); /*Clean Up*/ var destroyPhysicalMonitors = NativeMethods.DestroyPhysicalMonitors( pdwNumberOfPhysicalMonitors, pPhysicalMonitorArray); lastWin32Error = Marshal.GetLastWin32Error(); return((int)curBrightness); }
private void GetMonitorCapabilities(int monitorNumber) { uint pdwMonitorCapabilities = 0u; uint pdwSupportedColorTemperatures = 0u; var monitorCapabilities = NativeCalls.GetMonitorCapabilities(pPhysicalMonitorArray[monitorNumber].hPhysicalMonitor, ref pdwMonitorCapabilities, ref pdwSupportedColorTemperatures); Debug.WriteLine(pdwMonitorCapabilities); Debug.WriteLine(pdwSupportedColorTemperatures); int lastWin32Error = Marshal.GetLastWin32Error(); NativeStructures.MC_DISPLAY_TECHNOLOGY_TYPE type = NativeStructures.MC_DISPLAY_TECHNOLOGY_TYPE.MC_SHADOW_MASK_CATHODE_RAY_TUBE; var monitorTechnologyType = NativeCalls.GetMonitorTechnologyType(pPhysicalMonitorArray[monitorNumber].hPhysicalMonitor, ref type); Debug.WriteLine(type); lastWin32Error = Marshal.GetLastWin32Error(); }
private void Button_Click(object sender, RoutedEventArgs e) { WindowInteropHelper helper = new WindowInteropHelper(this); IntPtr hMonitor = NativeMethods.MonitorFromWindow(helper.Handle, NativeConstants.MONITOR_DEFAULTTOPRIMARY); int lastWin32Error = Marshal.GetLastWin32Error(); uint pdwNumberOfPhysicalMonitors = 0u; bool numberOfPhysicalMonitorsFromHmonitor = NativeMethods.GetNumberOfPhysicalMonitorsFromHMONITOR( hMonitor, ref pdwNumberOfPhysicalMonitors); lastWin32Error = Marshal.GetLastWin32Error(); NativeStructures.PHYSICAL_MONITOR[] pPhysicalMonitorArray = new NativeStructures.PHYSICAL_MONITOR[pdwNumberOfPhysicalMonitors]; bool physicalMonitorsFromHmonitor = NativeMethods.GetPhysicalMonitorsFromHMONITOR( hMonitor, pdwNumberOfPhysicalMonitors, pPhysicalMonitorArray); lastWin32Error = Marshal.GetLastWin32Error(); uint pdwMonitorCapabilities = 0u; uint pdwSupportedColorTemperatures = 0u; var monitorCapabilities = NativeMethods.GetMonitorCapabilities( pPhysicalMonitorArray[0].hPhysicalMonitor, ref pdwMonitorCapabilities, ref pdwSupportedColorTemperatures); lastWin32Error = Marshal.GetLastWin32Error(); NativeStructures.MC_DISPLAY_TECHNOLOGY_TYPE type = NativeStructures.MC_DISPLAY_TECHNOLOGY_TYPE.MC_SHADOW_MASK_CATHODE_RAY_TUBE; var monitorTechnologyType = NativeMethods.GetMonitorTechnologyType( pPhysicalMonitorArray[0].hPhysicalMonitor, ref type); lastWin32Error = Marshal.GetLastWin32Error(); var destroyPhysicalMonitors = NativeMethods.DestroyPhysicalMonitors( pdwNumberOfPhysicalMonitors, pPhysicalMonitorArray); lastWin32Error = Marshal.GetLastWin32Error(); this.lbl.Content = type; }
public bool GetMonitorCapabilities(int monitorNumber) { try { uint pdwMonitorCapabilities = 0u; uint pdwSupportedColorTemperatures = 0u; var monitorCapabilities = NativeCalls.GetMonitorCapabilities(pPhysicalMonitorArray[monitorNumber].hPhysicalMonitor, ref pdwMonitorCapabilities, ref pdwSupportedColorTemperatures); Setup.Logger.Instance().LogDump("DDCControl", "GetMonitorCapabilites Called: #MonitorCapabilites:" + pdwMonitorCapabilities); Setup.Logger.Instance().LogDump("DDCControl", "GetMonitorCapabilites Called: #ColorTemp:" + pdwSupportedColorTemperatures); NativeStructures.MC_DISPLAY_TECHNOLOGY_TYPE type = NativeStructures.MC_DISPLAY_TECHNOLOGY_TYPE.MC_SHADOW_MASK_CATHODE_RAY_TUBE; var monitorTechnologyType = NativeCalls.GetMonitorTechnologyType(pPhysicalMonitorArray[monitorNumber].hPhysicalMonitor, ref type); Setup.Logger.Instance().LogDump("DDCControl", "GetMonitorCapabilities Called: #type:" + type); return(true); } catch (Exception ex) { Setup.Logger.Instance().LogDump("DDCControl", "GetMonitorCapabilites Exception:" + ex); return(false); } }
public static extern bool GetMonitorTechnologyType( IntPtr hMonitor, ref NativeStructures.MC_DISPLAY_TECHNOLOGY_TYPE pdtyDisplayTechnologyType);