999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Intel電源管理技術(shù)在現(xiàn)代教學(xué)中的應(yīng)用研究

2007-01-01 00:00:00楊志紅鄒運(yùn)蘭
計(jì)算機(jī)時(shí)代 2007年3期

摘要:利用Intel Mobile PlatForm SDK中關(guān)于電源管理的開(kāi)發(fā)接口,提出了電源管理的技術(shù)方案,解決了教師上課過(guò)程中電腦黑屏和屏幕保護(hù)程序自動(dòng)運(yùn)行的問(wèn)題,并為相關(guān)工程技術(shù)人員給出了一個(gè)實(shí)例作參考。

關(guān)鍵詞:黑屏;屏幕保護(hù);電源管理;開(kāi)發(fā)接口

0引言

在多媒體為主的課堂演示教學(xué)過(guò)程中,經(jīng)常會(huì)碰到這樣的問(wèn)題,老師正在專心講課,突然屏幕出現(xiàn)黑屏或者進(jìn)入屏幕保護(hù)狀態(tài),導(dǎo)致上課不得不中斷一段時(shí)間。如果是簡(jiǎn)單的黑屏,需要通過(guò)鍵盤(pán)激活屏幕;如果進(jìn)入屏保狀態(tài),還需要通過(guò)輸入屏幕保護(hù)的密碼才能回到正常狀態(tài)。頻繁的中斷影響了課堂教學(xué)效果。本文主要通過(guò)軟件的方式來(lái)實(shí)現(xiàn)多媒體教學(xué)的電源管理,從而解決老師在多媒體教學(xué)過(guò)程中遇到的技術(shù)問(wèn)題,讓老師從計(jì)算機(jī)的煩擾中解脫出來(lái),專心專業(yè)課程的教學(xué)。我們所使用的開(kāi)發(fā)平臺(tái)為:c/C++編譯器;Windows XP以上操作系統(tǒng);Intel@Mobile platform SDK;P4以上Intel處理器。

1高級(jí)電源管理技術(shù)原理概述

1.1使用高級(jí)電源管理原因分析

以Windows XP為例,用戶可以通過(guò)控制面板來(lái)使用電源管理組件,通過(guò)系統(tǒng)設(shè)置,設(shè)定顯示器進(jìn)入休眠狀態(tài)的時(shí)間,硬盤(pán)關(guān)閉時(shí)間等等,但并不是每一個(gè)用戶都精通這些設(shè)置。教師講課的公共教學(xué)平臺(tái),如果長(zhǎng)時(shí)間不使用屏保,計(jì)算機(jī)的使用壽命會(huì)大大縮短,—個(gè)典型的例子就是用于工業(yè)控制的計(jì)算機(jī)的顯示器只有3年壽命,顯示器長(zhǎng)期處于—個(gè)畫(huà)面狀態(tài),顯像管(CRT)全快速老化,畫(huà)面變模糊而無(wú)法繼續(xù)使用,根本無(wú)法達(dá)到教學(xué)用機(jī)淘汰時(shí)間4~6年的要求。此外,筆記本電腦使用電池工作的時(shí)候,Windows系統(tǒng)會(huì)自動(dòng)進(jìn)入節(jié)能狀態(tài),當(dāng)計(jì)算機(jī)空閑的時(shí)候會(huì)快速進(jìn)入休眠狀態(tài),屏幕會(huì)自動(dòng)關(guān)閉,如果強(qiáng)行改變系統(tǒng)設(shè)置,將對(duì)筆記本造成很大的傷害。以上這—些問(wèn)題都需要有一種電源管理技術(shù)來(lái)解決。以下我們將介紹Intel高級(jí)電源管理技術(shù)相關(guān)開(kāi)發(fā)細(xì)節(jié)。

1.2高級(jí)電源管理開(kāi)發(fā)接口分析

Intel移動(dòng)開(kāi)發(fā)平臺(tái)支持高級(jí)電源管理軟件的開(kāi)發(fā),同時(shí)支持c,c++,.NET和Java等流行語(yǔ)言。不失一般性,本文以C/C++為例進(jìn)行分析。

解決系統(tǒng)的黑屏問(wèn)題,首先要獲得系統(tǒng)黑屏的等待時(shí)間;同樣,要解決屏幕保護(hù)程序自動(dòng)運(yùn)行的問(wèn)題,也要獲得屏保程序的等待時(shí)間。通過(guò)下面的函數(shù)可以獲得屏幕保護(hù)延遲時(shí)間,并停止屏幕保護(hù)程序的運(yùn)行:

#include\"winnt.h”

UINT sSaveScreenTime;

SystemParameterslnfo(SPI_GETSCREENSAVETIMEOUT,0,

sSaveScreenTime,0);//獲得屏幕保護(hù)延遲時(shí)間SystemParameterslnfo(SPl_GE rSCREENSAVETIMEOUT,0,

NULL,0);//關(guān)閉屏幕保護(hù)

可以通過(guò)下面函數(shù)來(lái)恢復(fù)系統(tǒng)屏幕保護(hù)時(shí)間參數(shù):SystemParameterslnfo(SPI_GETSCREENSAVETIMEOUT,

sSaveScreenTime,NULL,O):

下面討論屏幕自動(dòng)關(guān)閉的解決方法。第一種方法是利用函數(shù)SetThreadExecutionSate0。通過(guò)該函數(shù)的運(yùn)行,可以讓操作系統(tǒng)捕獲系統(tǒng)的運(yùn)行狀態(tài),從而強(qiáng)制系統(tǒng)阻止WM_POWERBROADCAST消息在系統(tǒng)間傳遞。格式如下:

EXECUTION_STATE PreventStat;

UINT sSaveDisplayTimeOut;

PreventStat=SetThreadExcutionState

(ES DISPLAY REQUIREDIES COUNTINUOUS);

//PreventStat變量保存進(jìn)程工作狀態(tài)參數(shù)

//Es DISPLAY REQUIRED參數(shù)指示系統(tǒng)需要顯示器正常工作;

//ES_COUNTINUOUS參數(shù)指示系統(tǒng)要保持現(xiàn)有狀態(tài),直到狀態(tài)

發(fā)生改變

SystemParameterslnfo(SPI GETSCREENSAVETIMEOUT,0。

sSaveDisplayTimeOut,O):

//保存系統(tǒng)原來(lái)電源參數(shù)

SystemParameterslnfo(SPl_GETSCREENSAVETIMEOUT,0,

NULL,0);//關(guān)閉屏幕保護(hù)

恢復(fù)系統(tǒng)原來(lái)狀態(tài)方法:

PreventStat=SetThreadExcutionState (PreventStat);

SystemParameterslnfo(SPI GETSCREENSAVETIMEOUT.

sSaveDisplayTimeOut,NULL,O):

第二種方法是允許WM_POWERBROADCAST消息在系統(tǒng)間傳遞,利用軟件來(lái)響應(yīng)對(duì)應(yīng)的消息,并采取必要的方法使系統(tǒng)返回工作狀態(tài)。方法如下:

#include“powerprof.h”

GLOBAL_POWER_POLICY Gpp;//定義全局電源策略變量

POWER_POLICY PP;//定義局部策略變量

ULONG SaveVideoAC,SaveVideoDC;

//定義交流和直流電源使用狀態(tài)變量

UINT id.sSave;

GetActivePwrScheme(id)://捕獲當(dāng)前電源策略標(biāo)識(shí)

GetCurrentPowerPoUcies(Gpp,Pp):

//捕獲當(dāng)前電源策略存放在變量Gpp和PD中

SaveVideoAC=Pp.user.VideOTimeOutAC:

//保存當(dāng)前交流電使用狀態(tài)

SaveVideODC=Pp.user.VideOTimeoutDC:

//保存當(dāng)前直流電使用狀態(tài)

Pp.user.VideOTimeoutAC=0:

Pp.user.VideOTimeOutDC=0:

SetCun'enlPowerPolicles(id,Gpp.Pp):

//清除交流電和直流電為0的目的是使系統(tǒng)無(wú)法關(guān)閉顯示器

SystemParametersInfo(SPl GETSCREENSAVETIMEOUT,0.

sSave。O)://保存當(dāng)前顯示器電源狀態(tài)

SystemParametersInf0(SPI GETSCREENSAVETlMEOUT,0,

NULL,0)://關(guān)閉屏幕保護(hù)

恢復(fù)系統(tǒng)工作狀態(tài)方法如下:

PD.user.Vjde0TimeoutAC=SaveVIdeoAC: //恢復(fù)交流電狀態(tài)

PD.user.VideoTimeoutDC=SaveVIdeoDC; //恢復(fù)直流電狀態(tài)

SetCurrentPowerPolicies(id,Gpp,Pp): //恢復(fù)當(dāng)前電源策略

SvstemParametersInfO(SPl GETSCREENSAVETIMEOUT,

sSave,NULL,0)://恢復(fù)屏幕保護(hù)原來(lái)的設(shè)置

1.3定制電源解決方案

以上方法可以解決上課過(guò)程中的黑屏和屏幕保護(hù)程序自動(dòng)運(yùn)行問(wèn)題。但是這種方法不具備靈活性,因?yàn)闊o(wú)論是屏幕保護(hù)時(shí)間參數(shù)或者是電源管理策略都預(yù)先在程序中設(shè)置,無(wú)法在現(xiàn)場(chǎng)教學(xué)中隨意控制。本文的做法是將各種控制的策略存放在數(shù)據(jù)庫(kù)中,讓電源管理策略菜單化,上課時(shí)教師只需在菜單中選擇電源管理模式。

首先定義一個(gè)回調(diào)函數(shù)和一個(gè)數(shù)據(jù)結(jié)構(gòu):

#incIude“Dowrprof.h”

BOOLEAN CALLBACK PS PowerCa¨Back(UINT,DWORD,

LPTSTR。DWORD,LPTSTR,PPOWER POLICY,LPAIRAM);

//定義回調(diào)函數(shù)

typedef strucl pwrschmIist{//定義電源策略管理數(shù)據(jù)結(jié)構(gòu)

UINT P0llD://電源策略標(biāo)識(shí)符

DWORD PoINameLen://電源策略名字長(zhǎng)度

LPTSTR

P0lName://電源策略名稱

DWORD PoIDescLen://電源策略描述符長(zhǎng)度

LPTSTR

PolDesc://電源策略描述符

PPOWER PO LICY PolElems://系統(tǒng)電源策略結(jié)構(gòu)

strucl pwrschmIistnxtSchm:

//電源策略管理鏈表指針,指向下一個(gè)電源策略管理數(shù)據(jù)結(jié)構(gòu)

}PowerSchemeList,pPowerSchemeList:

DPowerSchemeList pAlIPOIicies=NULL,pLastScheme:

//定義兩個(gè)結(jié)構(gòu)變量,用來(lái)表示電源策略鏈和最后一個(gè)策略

BOOLEAN CALLBACK PS—PowerCallBack(UINT schmID.

DWORD dwNameLen.LPTSTR schmName,DWORD

dwDescLen。LPTSTR schmDesc,PPOWER.-POLlCY ppwrplcy。

LPARAM IParaml//實(shí)現(xiàn)回調(diào)函數(shù)

{pPowerschemeList curnode=(pPowerSchemeList,)calIoc(1,

sizeof(PowerschemeList)):

cumode->PoIID=schmID://保存策略標(biāo)識(shí)符

curnode->PoIName=(LPTSTR)calIoc(1,dwNameLen+1):

//計(jì)算真正的策略字符串名字

memcpy(cumode->PoIName,schmName,dwNameLen):

//保存電源策略名稱

cumOde->POINameLen=dwNameLen:

//保存電源策略名稱長(zhǎng)度

cumode->PolDesc=(LPTSTR)caIIoc(1,dwDescLen+1):

//計(jì)算電源策略描述符

memcpy(curnode一>PoIDesc,schmDesc,dwDescLen):

//保存電源策略描述符

curnOde->POIDescLen=dwDescLen:

//保存電源策略描述符長(zhǎng)度

cumode->PoIEIems=(PPOVVER_POLICY)ca¨oc(1,

sizeof(POWER—POLICY)):

memcpy(cumode->PolEIems,ppwrplcy,sizeof

(POwER—POLlCY)):

//保存系統(tǒng)電源策略

If(NULL==pA¨Policies){

DAllPolicies=curnOde:

}

eIse{

DLastScheme->nxtSchm=cumode:

//完成電源管理策略鏈表的連接

}

pLasfScheme=cumode;//計(jì)算最后的節(jié)點(diǎn)

retum(TRUE):

}

以上代碼中,數(shù)據(jù)結(jié)構(gòu)變量PowerschcreeList保存了電源管_理策略所需要的所有數(shù)據(jù),回調(diào)函數(shù)Ps PoWerCallBack用于保存電源策略,變量pAllPolicies用于遍歷所有管理策略的節(jié)點(diǎn)。

要完成鏈表的創(chuàng)建,使用以下代碼:

BOOLEAN RsIl:

RsIt=EnumPwrScheme(PS—PowerCa¨Back,0);

//枚舉所有電源策略,并保存到指定鏈表pAllPolicies隊(duì)列中

編程人員可以通過(guò)對(duì)話框來(lái)完成對(duì)電源管理策略的設(shè)置和選擇。其中關(guān)鍵的交互數(shù)據(jù)包括策略管理標(biāo)識(shí)符PolID和P0lElcms,第—個(gè)參數(shù)用來(lái)存儲(chǔ)順序號(hào),第二個(gè)參數(shù)存儲(chǔ)真正的系統(tǒng)電源策略數(shù)據(jù)結(jié)構(gòu),然后通過(guò)以下代碼完成策略的設(shè)置:

GLOBALPOWER—POLlCY CurrentGP:

POWER—POLICY SavCurrentPP:

ULONG savVidAC。savVidDC:

UlNT savid,ssav:

GetActivePWrScheme(&sayId):

GetCurrentPowerPolicies(CurrentGP,SavCurrentPP):

SecCurrentPowerPoIicies(SavedPolID.NULL,&SavedPo眶Iems):

SystemParameterslnfo(SPI—_GETSCREENSAVETIMEOUT,0,

ssav,O):

SystemPaFametersInf0(SPI SETSCREENSAVETlMEOUT,0,

NULL,0):

恢復(fù)系統(tǒng):

SetCurrentPowerPolicies(savid,&CurrentGP,&SavCurrentPP)=

SystemParametersInf0(SPI—SETSCREENSAVETIMEOUT,

ssav,NULL,U);

2結(jié)束語(yǔ)

本文提供的方法,基本上解決了現(xiàn)代多媒體教學(xué)中常見(jiàn)的黑屏和屏幕保護(hù)等電源方面的問(wèn)題。但是計(jì)算機(jī)電源管理技術(shù)的真正應(yīng)用是多方面的,靈活使用計(jì)算機(jī)電源管理技術(shù),既可以延長(zhǎng)計(jì)算機(jī)使用壽命,又可以保證教學(xué)工作的順利進(jìn)行。希望本文能為廣大教師和機(jī)器管理人員提供一個(gè)技術(shù)參考。

(注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。)

主站蜘蛛池模板: 日韩一区二区在线电影| 亚洲天堂免费观看| 国产在线98福利播放视频免费| 怡春院欧美一区二区三区免费| 亚洲Aⅴ无码专区在线观看q| 91亚洲免费| 欧美在线中文字幕| 免费中文字幕在在线不卡| 国产精品污污在线观看网站| 香蕉伊思人视频| 成年看免费观看视频拍拍| 日韩在线观看网站| 日韩精品亚洲精品第一页| 亚洲欧美日本国产综合在线| 午夜福利网址| 亚洲二三区| 理论片一区| 国产十八禁在线观看免费| 亚洲看片网| 嫩草影院在线观看精品视频| AV网站中文| a欧美在线| 91视频精品| 亚洲日韩精品伊甸| 91亚瑟视频| 婷婷伊人久久| 国产精品熟女亚洲AV麻豆| 狼友视频国产精品首页| 亚洲视频在线青青| 久久无码免费束人妻| 中文字幕 91| 欧美日韩动态图| 亚洲一级毛片| 狠狠亚洲五月天| 欧美成人综合视频| 精品国产一二三区| 国内熟女少妇一线天| 91视频国产高清| 亚洲成a人片在线观看88| 日本少妇又色又爽又高潮| 久久久噜噜噜| 日本久久网站| 无码视频国产精品一区二区| 在线不卡免费视频| 国产美女91视频| 欧美精品xx| 久久性视频| 91www在线观看| 国产精品亚洲一区二区三区在线观看| 久久香蕉欧美精品| 国产成人无码播放| 天天综合网站| 四虎永久在线视频| 亚洲中文字幕无码爆乳| 国产鲁鲁视频在线观看| 深夜福利视频一区二区| 国产无人区一区二区三区| 99视频在线看| 51国产偷自视频区视频手机观看| 青草视频免费在线观看| 538国产视频| 亚洲国产看片基地久久1024| 国产成人综合日韩精品无码不卡| 91精品国产丝袜| 国产精品免费p区| 国产综合在线观看视频| 偷拍久久网| 99久久精品国产麻豆婷婷| 高清码无在线看| 91精品国产91久无码网站| 爽爽影院十八禁在线观看| 手机在线国产精品| 国产乱人激情H在线观看| 国产精品成人观看视频国产 | 国产草草影院18成年视频| 中文字幕中文字字幕码一二区| 国产成人免费| 亚洲中文字幕av无码区| 亚洲香蕉在线| 一级毛片免费高清视频| 成年av福利永久免费观看| 国产aaaaa一级毛片|