Close unused device
1、SetTimer,send key msg at intervals:
keybd_event(VK_F24,0,KEYEVENTF_KEYUP| KEYEVENTF_SILENT,0);
[OK]
2、SystemParametersInfo(SPI_SETBATTERYIDLETIMEOUT,dwTime,0,TRUE)
[FAILED]
3、SetPowerRequirement(_T("BKL1:"), D0, POWER_NAME, NULL, 0)
[FAILED]
come from msnews group,no effect.
4、PowerManager/ReloadActivityTimeouts
moidfy [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\Timeouts],then call the following codes:
HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE,_T("PowerManager/ReloadActivityTimeouts"));
if(hEvent != NULL)
{
SetEvent(hEvent);
CloseHandle(hEvent);
}
Sample:
#define RK_SYSTEM_CCS_CONTROL_POWER TEXT("SYSTEM\\CurrentControlSet\\Control\\Power")
#define RV_BATTPOWEROFF TEXT("BattPowerOff")
#define RV_EXTPOWEROFF TEXT("ExtPowerOff")
#define RK_SYSTEM_CCS_CONTROL_POWER2 TEXT("SYSTEM\\CurrentControlSet\\Control\\Power\\Timeouts")
#define RV_BATTPOWEROFF2 TEXT("BattSuspendTimeout")
#define RV_EXTPOWEROFF2 TEXT("ACSuspendTimeout")
DWORD dwValue=0;
HKEY hKey=NULL;
DWORD dwDisposition;
RegCreateKeyEx(HKEY_LOCAL_MACHINE, RK_SYSTEM_CCS_CONTROL_POWER2,(DWORD) 0, TEXT(""), REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, (LPSECURITY_ATTRIBUTES) NULL,&hKey, &dwDisposition);
dwValue = 120;
RegSetValueEx(hKey,RV_BATTPOWEROFF2, 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));
dwValue = 120;
RegSetValueEx(hKey,RV_EXTPOWEROFF2, 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));
RegCloseKey(hKey);
HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE,_T("PowerManager/ReloadActivityTimeouts"));
if(hEvent != NULL)
{
SetEvent(hEvent);
CloseHandle(hEvent);
}
Ought to use CreateEvent, not use OpenEvent.

浙公网安备 33010602011771号