⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 backlight.txt

📁 smartphone 监听电源状态源码
💻 TXT
字号:
这样触发系统事件: 
IntPtr hBackLightEvent = CreateEvent(IntPtr.Zero, false, true, "BackLightChangeEvent"); 
if (hBackLightEvent != IntPtr.Zero) 
{ 
EventModify(hBackLightEvent,3); 
CloseHandle(hBackLightEvent); 
} 

[DllImport("coredll.dll", SetLastError=true)] 
public static extern IntPtr CreateEvent(IntPtr lpEventAttributes, bool bManualReset, bool bInitialState, string lpName); 
[DllImport("coredll.dll", SetLastError=true)] 
public static extern bool EventModify(IntPtr hEvent, int ef); 
[DllImport("coredll.dll", SetLastError=true)] 
public static extern bool CloseHandle(IntPtr hObject); 



smartphone的背光控制

反汇编了peripheral.dll,想看看smartphone上的背光是如何控制的,了解了一点点
下面是相关的有名事件:
TIMEOUTDISPLAYOFFLCDONLY
TIMEOUTDISPLAYOFFHALF
TIMEOUTDISPLAYOFF
MONITOR_PRESSED_ANYKEY
BackLightChangeEvent

可以在应用程序中使用这些事件


818+, 830 wm5 背光设置代码

反汇编backlight.exe得到的,在mda compact ii上测试通过

如果背景关闭了(机器上开的),打开背光
void BackLightOn()
{
         HANDLE hBL=CreateEvent(NULL,FALSE,FALSE,L"BackLightChangeEvent");
         if(hBl != NULL)
        {
                   SetEvent(hBL);
                   CloseHandle(hBL);
        }
}

得到背光的亮度设置
int GetBackLightLevel()
{
            int iRet = -1;
            DWORD dwOut,dwRet;

            HANDLE h = CreateFile(TEXT("BKL1:"), GENERIC_READ|GENERIC_WRITE, 0,0,
                                                    OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0); 
           if (h != INVALID_HANDLE_VALUE)
          {
                     if ( DeviceIoControl(h, 1 , 0, 0, &dwOut, sizeof(DWORD), &dwRet, 0))
                     {
                                iRet = dwOut;
                     }
                    CloseHandle(h);
          }
          return iRet;
}

设置背光亮度等级
BOOL GetBackLightLevel(DWORD dwLevel)
{
            BOOL bRet = FALSE;
            DWORD dwRet;

            HANDLE h = CreateFile(TEXT("BKL1:"), GENERIC_READ|GENERIC_WRITE, 0,0,
                                                    OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0); 
           if (h != INVALID_HANDLE_VALUE)
          {
                     if ( DeviceIoControl(h, 2 , &dwLevel, sizeof(DWORD), 0,0, &dwRet, 0))
                     {
                                bRet = TRUE;
                     }
                    CloseHandle(h);
          }
          return bRet;
} 

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -