3 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
我通過(guò)USB連接的硬件設(shè)備遇到了這樣的問(wèn)題。XP / Vista會(huì)在其中途進(jìn)入睡眠/休眠狀態(tài)。很好,您說(shuō),當(dāng)它恢復(fù)時(shí)它就可以繼續(xù)。如果硬件仍然連接!用戶習(xí)慣于在需要時(shí)拔出電纜。
您需要處理XP和Vista
在XP下,捕獲WM_POWERBROADCAST并查找PBT_APMQUERYSUSPEND wparam。
// See if bit 1 is set, this means that you can send a deny while we are busy
if (message.LParam & 0x1)
{
// send the deny message
return BROADCAST_QUERY_DENY;
} // if
else
{
return TRUE;
} // else
在Vista下使用SetThreadExecutionState像這樣
// try this for vista, it will fail on XP
if (SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED) == NULL)
{
// try XP variant as well just to make sure
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED);
} // if
當(dāng)您完成應(yīng)用后,將其恢復(fù)為正常
// set state back to normal
- 3 回答
- 0 關(guān)注
- 1233 瀏覽
添加回答
舉報(bào)