コード例 #1
0
ファイル: Power.cs プロジェクト: svn2github/log2console16
        internal static PowerManagementNativeMethods.SystemBatteryState GetSystemBatteryState()
        {
            IntPtr status = IntPtr.Zero;

            PowerManagementNativeMethods.SystemBatteryState batt_status;

            try
            {
                status = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemBatteryState)));
                uint retval = PowerManagementNativeMethods.CallNtPowerInformation(
                    5, // SystemBatteryState
                    (IntPtr)null,
                    0,
                    status,
                    (UInt32)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemBatteryState))
                    );

                if (retval == CoreNativeMethods.STATUS_ACCESS_DENIED)
                {
                    throw new UnauthorizedAccessException("The caller had insufficient access rights to get the system battery state.");
                }

                batt_status = (PowerManagementNativeMethods.SystemBatteryState)Marshal.PtrToStructure(status, typeof(PowerManagementNativeMethods.SystemBatteryState));
            }
            finally
            {
                Marshal.FreeCoTaskMem(status);
            }

            return(batt_status);
        }
コード例 #2
0
ファイル: Power.cs プロジェクト: svn2github/log2console16
        GetSystemPowerCapabilities()
        {
            IntPtr status = IntPtr.Zero;

            PowerManagementNativeMethods.SystemPowerCapabilities powerCap;

            try
            {
                status = Marshal.AllocCoTaskMem(
                    Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemPowerCapabilities)));

                uint retval = PowerManagementNativeMethods.CallNtPowerInformation(
                    4, // SystemPowerCapabilities
                    (IntPtr)null,
                    0,
                    status,
                    (UInt32)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemPowerCapabilities))
                    );

                if (retval == CoreNativeMethods.STATUS_ACCESS_DENIED)
                {
                    throw new UnauthorizedAccessException("The caller had insufficient access rights to get the system power capabilities.");
                }

                powerCap = (PowerManagementNativeMethods.SystemPowerCapabilities)Marshal.PtrToStructure(status, typeof(PowerManagementNativeMethods.SystemPowerCapabilities));
            }
            finally
            {
                Marshal.FreeCoTaskMem(status);
            }

            return(powerCap);
        }
コード例 #3
0
        internal static PowerManagementNativeMethods.SystemBatteryState GetSystemBatteryState()
        {
            if (PowerManagementNativeMethods.CallNtPowerInformation(
                    PowerManagementNativeMethods.PowerInformationLevel.SystemBatteryState,
                    IntPtr.Zero, 0, out PowerManagementNativeMethods.SystemBatteryState batteryState,
                    (uint)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemBatteryState))
                    ) == NativeAPI.Consts.Common.StatusAccessDenied)
            {
                throw new UnauthorizedAccessException(LocalizedMessages.PowerInsufficientAccessBatteryState);
            }

            return(batteryState);
        }
コード例 #4
0
        GetSystemPowerCapabilities()
        {
            if (PowerManagementNativeMethods.CallNtPowerInformation(
                    PowerManagementNativeMethods.PowerInformationLevel.SystemPowerCapabilities,
                    IntPtr.Zero, 0, out PowerManagementNativeMethods.SystemPowerCapabilities powerCap,
                    (uint)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemPowerCapabilities))
                    ) == NativeAPI.Consts.Common.StatusAccessDenied)
            {
                throw new UnauthorizedAccessException(LocalizedMessages.PowerInsufficientAccessCapabilities);
            }

            return(powerCap);
        }
コード例 #5
0
        internal static PowerManagementNativeMethods.SystemPowerCapabilities GetSystemPowerCapabilities()
        {
            var retval = PowerManagementNativeMethods.CallNtPowerInformation(
                PowerManagementNativeMethods.PowerInformationLevel.SystemPowerCapabilities,
                IntPtr.Zero, 0, out PowerManagementNativeMethods.SystemPowerCapabilities powerCap,
                (uint)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemPowerCapabilities))
                );

            if (retval == CoreNativeMethods.StatusAccessDenied)
            {
                throw new UnauthorizedAccessException(LocalizedMessages.PowerInsufficientAccessCapabilities);
            }

            return(powerCap);
        }
コード例 #6
0
ファイル: Power.cs プロジェクト: kagada/Arianrhod
        internal static PowerManagementNativeMethods.SystemBatteryState GetSystemBatteryState()
        {
            PowerManagementNativeMethods.SystemBatteryState batteryState;

            uint retval = PowerManagementNativeMethods.CallNtPowerInformation(
                PowerManagementNativeMethods.PowerInformationLevel.SystemBatteryState,
                IntPtr.Zero, 0, out batteryState,
                (UInt32)Marshal.SizeOf(typeof(PowerManagementNativeMethods.SystemBatteryState))
                );

            if (retval == CoreNativeMethods.StatusAccessDenied)
            {
                throw new UnauthorizedAccessException(LocalizedMessages.PowerInsufficientAccessBatteryState);
            }

            return(batteryState);
        }