c WM5 電源管理 和 控制背景燈

2021-04-28 15:50:47 字數 2586 閱讀 8005

1. 保持背光

public enum devicepowerstate : int

[dllimport("coredll", setlasterror=true)]

static  extern intptr  setpowerrequirement(string devicename, devicepowerstate state, uint dwdeviceflags, string name, ulong reserved);

[dllimport("coredll", setlasterror = true)]

static extern int releasepowerrequirement(intptr  hpowerreq);

示例://保持背光

hpower = setpowerrequirement("bkl1:", devicepowerstate.d0, 1, null, 0);                

//取消保持背光

if (hpower != null)

releasepowerrequirement(hpower);

2. 設定背光

修改登錄檔

//currentuser/contorlpanel/backlight/acbrightness

//currentuser/contorlpanel/backlight/brightness

生成事件生效

[dllimport("coredll.dll", setlasterror = true, callingconvention = callingconvention.winapi, charset = charset.auto)]

public static extern intptr createevent(intptr  lpeventattributes, [in, marshalas(unmanagedtype.bool)] bool bmanualreset, [in, marshalas(unmanagedtype.bool)] bool bintialstate, [in, marshalas(unmanagedtype.bstr)] string lpname);

[dllimport("coredll.dll", setlasterror = true, callingconvention = callingconvention.winapi, charset = charset.auto)]

[return: marshalas(unmanagedtype.bool)]

public static extern bool closehandle(intptr  hobject);

[dllimport("coredll.dll", setlasterror = true)]

[return: marshalas(unmanagedtype.bool)]

public static extern bool eventmodify(intptr  hevent, [in, marshalas(unmanagedtype.u4)] int devent);

intptr  hbacklightevent = createevent(intptr.zero , false, true, "backlightchangeevent");

if (hbacklightevent != intptr.zero )

部分htc機器,修改登錄檔無效,直接呼叫htcdll(我的t3238 wm6.1測試通過)

[dllimport("htcutil.dll")]

private static extern int htcutilgetonpowerbrightnesslevel(ref int pvalue);

[dllimport("htcutil.dll")]

private static extern int htcutilgetonbatterybrightnesslevel(ref int pvalue);

[dllimport("htcutil.dll")]

private static extern int htcutilsetonpowerbrightnesslevel(ref int pvalue);

[dllimport("htcutil.dll")]

private static extern int htcutilsetonbatterybrightnesslevel(ref int pvalue);

[dllimport("htcutil.dll")]

private static extern int htcutilgetbacklightminbrightness(ref int pvalue);

[dllimport("htcutil.dll")]

private static extern int htcutilgetbacklightmaxbrightness(ref int pvalue);

3.禁止系統待機

[dllimport("coredll")]

public static extern void systemidletimerreset();

在合適的時間內,呼叫systemidletimerreset() 清除計時器,使系統不會進入待機狀態.

電源管理方案APM和ACPI比較

apm和acpi比較 近期對linux的電源管理產生了興趣,索性來學習一下電源管理的東西。這不,遇到的乙個問題就是這個 apm acpi兩種電源管理方案有何異同?下面的東西全部來自於網路博文,當然有做一些整理。一 apm的不足和acpi產生 apm全稱是 advanced power managem...

NXP JN5169 電源管理和睡眠模式

二 活動處理模式 三 睡眠模式 四 深度睡眠模式 五 進入睡眠模式和深度睡眠模式 jn5169 提供了三種工作模式,可以控制系統功耗以最大限度地延長電池壽命。三種模式的功耗變化是由於晶元內具有一系列可通過可控方式導通或關斷電源的電源域而導致的。jn5169 具有以下電源域 jn5169 中的活動處理...

管理和備份控制檔案

控制檔案儲存了資料庫的很多基本資訊,例如資料庫名和標識 資料庫建立日期 資料檔案和重做日誌的位置 表空間名稱 備份資訊 檢查點資訊等等。oracle在使用過程中會不斷更新控制檔案,因此控制檔案必須在資料庫開啟時隨時都可供寫入。備份控制檔案的2種方式 多路復用 1 使用pfile啟動資料庫,修改pfi...