亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2007-01-01 00:00:00楊志紅鄒運蘭
        計算機時代 2007年3期

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

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

        0引言

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

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

        1.1使用高級電源管理原因分析

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

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

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

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

        #include\"winnt.h”

        UINT sSaveScreenTime;

        SystemParameterslnfo(SPI_GETSCREENSAVETIMEOUT,0,

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

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

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

        sSaveScreenTime,NULL,O):

        下面討論屏幕自動關(guān)閉的解決方法。第一種方法是利用函數(shù)SetThreadExecutionSate0。通過該函數(shù)的運行,可以讓操作系統(tǒng)捕獲系統(tǒng)的運行狀態(tài),從而強制系統(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)原來電源參數(shù)

        SystemParameterslnfo(SPl_GETSCREENSAVETIMEOUT,0,

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

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

        PreventStat=SetThreadExcutionState (PreventStat);

        SystemParameterslnfo(SPI GETSCREENSAVETIMEOUT.

        sSaveDisplayTimeOut,NULL,O):

        第二種方法是允許WM_POWERBROADCAST消息在系統(tǒng)間傳遞,利用軟件來響應(yīng)對應(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)識

        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)無法關(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ù)原來的設(shè)置

        1.3定制電源解決方案

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

        首先定義一個回調(diào)函數(shù)和一個數(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)識符

        DWORD PoINameLen://電源策略名字長度

        LPTSTR

        P0lName://電源策略名稱

        DWORD PoIDescLen://電源策略描述符長度

        LPTSTR

        PolDesc://電源策略描述符

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

        strucl pwrschmIistnxtSchm:

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

        }PowerSchemeList,pPowerSchemeList:

        DPowerSchemeList pAlIPOIicies=NULL,pLastScheme:

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

        BOOLEAN CALLBACK PS—PowerCallBack(UINT schmID.

        DWORD dwNameLen.LPTSTR schmName,DWORD

        dwDescLen。LPTSTR schmDesc,PPOWER.-POLlCY ppwrplcy。

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

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

        sizeof(PowerschemeList)):

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

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

        //計算真正的策略字符串名字

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

        //保存電源策略名稱

        cumOde->POINameLen=dwNameLen:

        //保存電源策略名稱長度

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

        //計算電源策略描述符

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

        //保存電源策略描述符

        curnOde->POIDescLen=dwDescLen:

        //保存電源策略描述符長度

        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;//計算最后的節(jié)點

        retum(TRUE):

        }

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

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

        BOOLEAN RsIl:

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

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

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

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

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

        日本黄色高清视频久久| 国产在线无码制服丝袜无码| 国产主播福利一区二区| 精品亚洲人伦一区二区三区| 日韩少妇人妻精品中文字幕| 人成午夜免费视频无码| 欧美巨大性爽| 无码中文字幕av免费放| 精品少妇一区二区三区入口| 狠狠躁18三区二区一区| 国产精品毛片无码| 日韩国产有码在线观看视频| 96中文字幕一区二区| 亚洲国产精品成人精品无码区在线| av无码免费永久在线观看| 亚洲熟妇大图综合色区| 亚洲一区二区三区免费的视频| 日日麻批免费40分钟无码| 国产精品白浆在线观看无码专区| 日韩av一区二区三区四区av| 亚洲av无吗国产精品| 女人高潮久久久叫人喷水| 欧美成a人片在线观看久| 麻豆国产成人AV网| 国产成人av三级在线观看韩国| 狠狠噜狠狠狠狠丁香五月| 美女裸体自慰在线观看| 性色av成人精品久久| 女同视频一区二区在线观看| 亚洲综合欧美在线一区在线播放| 国产V日韩V亚洲欧美久久| 亚洲女同性恋激情网站| 久久精品国产99国产精品亚洲| 国产va免费精品观看| 久久洲Av无码西西人体| 亚洲国产色婷婷久久精品| 久久精品国产网红主播| 欧洲亚洲视频免费| 国产在线观看女主播户外| 3d动漫精品啪啪一区二区免费| 国产精品jizz观看|