• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            missautumn's BLOG

            devote to innovation of technique

            Windows CE下開(kāi)關(guān)無(wú)線的通用辦法

            最近在將應(yīng)用程序從Windows Mobile遷移到Windows CE平臺(tái)的時(shí)候遇到了一個(gè)開(kāi)關(guān)無(wú)線網(wǎng)絡(luò)的問(wèn)題,經(jīng)過(guò)自己的一番摸索找到了一個(gè)通用的解決辦法,以下是詳細(xì)的原理及過(guò)程,
            一、Windows Mobile下是怎么開(kāi)關(guān)無(wú)線的
            其實(shí)開(kāi)關(guān)無(wú)線離不開(kāi)下面三個(gè)函數(shù),
                    [DllImport("coredll.dll")]
                    protected static extern int GetDevicePower(string pvDevice, int Flags, ref DevicePowerStateEnum state);
                    [DllImport("coredll.dll")]
                    protected static extern int SetDevicePower(string pvDevice, int Flags, DevicePowerStateEnum state);
                    [DllImport("coredll.dll")]
                    protected static extern int DevicePowerNotify(string name, DevicePowerStateEnum state, int flags);
            最頭疼的是這邊的pvDevice參數(shù)到底應(yīng)該寫(xiě)什么呢?經(jīng)過(guò)Google老師的指引,我終于搞清楚了pvDevice的格式,
            pvDevice = 設(shè)備類(lèi)型GUID\設(shè)備名稱
                那無(wú)線設(shè)備類(lèi)型GUID到底改寫(xiě)什么呢,如果你你不介意Hard Code那你可以直接在你的代碼中寫(xiě){98C5250D-C29A-4985-AE5F-AFE5367E5006},如果你想在你的代碼中避免Hard Code那寫(xiě)一個(gè)讀注冊(cè)表函數(shù),去讀\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\State\Suspend\下的第一個(gè)子鍵就可以了。
                設(shè)備名稱怎么取呢?那當(dāng)然還得讀組冊(cè)表,下面的SDIO86861就是我們要的設(shè)備名稱。
            1,判斷當(dāng)前無(wú)線狀態(tài)
            GetDevicePower(@"{98C5250D-C29A-4985-AE5F-AFE5367E5006}\SDIO86861",1,ref dps)
            檢查dps是否為D0.
            2,打開(kāi)無(wú)線及關(guān)閉無(wú)線
            DevicePowerNotify(@"{98C5250D-C29A-4985-AE5F-AFE5367E5006}\SDIO86861",DevicePowerStateEnum.D0,1);
            Sleep(50);
            SetDevicePower(@"{98C5250D-C29A-4985-AE5F-AFE5367E5006}\SDIO86861",1,DevicePowerStateEnum.D0);
            二、Windows CE下為什么不能用Mobile的方式控制無(wú)線
            因?yàn)閃indows CE的注冊(cè)表中State下面是沒(méi)有值的,所以只能想辦法到其他地方去取了 :(

            三、Windows CE下我們改怎么做
            我的Device是M8,內(nèi)核是Windows CE6.0. 先看看MeiZu的注冊(cè)表項(xiàng)吧

            果然State下面什么值都沒(méi)有! :(
            之后郁悶了半天,又翻了半天的遠(yuǎn)程注冊(cè)表,終于被我發(fā)現(xiàn)一個(gè)可疑的注冊(cè)表鍵[Mobile Device\HKEY_LOCAL_MACHINE\Comm\SWLD24SP1],這個(gè)子鍵的結(jié)構(gòu)如下,

            夠可疑的吧,趕緊用代碼試試先!
            GetDevicePower(@"{98C5250D-C29A-4985-AE5F-AFE5367E5006}\SWLD24SP1",1,ref dps),得到的dps為DevicePowerStateEnum.D0.  成功了!!
            之后在Mobile設(shè)備上驗(yàn)證這個(gè)方法,結(jié)果也通過(guò)了.

            posted on 2009-07-14 17:27 william 閱讀(3774) 評(píng)論(8)  編輯 收藏 引用 所屬分類(lèi): C++ 、Windows Mobile Development

            Feedback

            # re: Windows CE下開(kāi)關(guān)無(wú)線的通用辦法 2009-07-14 20:58 樂(lè)蜂網(wǎng)

            好東西!謝謝  回復(fù)  更多評(píng)論   

            # re: Windows CE下開(kāi)關(guān)無(wú)線的通用辦法 2009-07-15 11:50 99讀書(shū)人

            不錯(cuò) 哦  回復(fù)  更多評(píng)論   

            # re: Windows CE下開(kāi)關(guān)無(wú)線的通用辦法 2009-07-16 18:59 99網(wǎng)上書(shū)城

            分享好東西  回復(fù)  更多評(píng)論   

            # re: Windows CE下開(kāi)關(guān)無(wú)線的通用辦法 2010-04-13 11:34 阿道夫

            即使改了作者的網(wǎng)卡SWLD24SP1,這個(gè)方法試了行不通,還不能說(shuō)是通用的  回復(fù)  更多評(píng)論   

            # re: Windows CE下開(kāi)關(guān)無(wú)線的通用辦法 2010-04-15 13:48 阿道夫

            試了很多次,在CE5.0上通不過(guò),我的也是SDIO86861的網(wǎng)卡  回復(fù)  更多評(píng)論   

            # re: Windows CE下開(kāi)關(guān)無(wú)線的通用辦法 2010-04-15 13:51 阿道夫

            Mobile5.0上也不行的,使用WLP1:作為設(shè)備名稱可以通過(guò)  回復(fù)  更多評(píng)論   

            # re: Windows CE下開(kāi)關(guān)無(wú)線的通用辦法 2010-11-19 12:25 SDIO86861

            @阿道夫
            那你現(xiàn)在搞定沒(méi)? 我也是這個(gè)網(wǎng)卡  回復(fù)  更多評(píng)論   

            # re: Windows CE下開(kāi)關(guān)無(wú)線的通用辦法[未登錄](méi) 2011-02-24 13:48 riverqh

            先使用WZCEnumInterfaces獲取無(wú)線網(wǎng)卡列表(一般PDA也就只有一個(gè)無(wú)線網(wǎng)卡吧,那就拿第一個(gè)好了),然后前面固定加上無(wú)線網(wǎng)卡MiniPort的GUID {98C5250D-C29A-4985-AE5F-AFE5367E5006}\作為設(shè)備名稱傳遞到SetPower/GetPower就行了。  回復(fù)  更多評(píng)論   

            国产精品青草久久久久婷婷| 久久久精品久久久久久 | 亚洲乱码日产精品a级毛片久久| 久久久久久一区国产精品| 国产精品成人精品久久久| 久久久久国色AV免费看图片| 2021国内精品久久久久久影院| 国产成人精品免费久久久久| 久久夜色精品国产www| 2022年国产精品久久久久 | 色8久久人人97超碰香蕉987| 久久精品国产99国产精品| 亚洲AV成人无码久久精品老人| 国产高潮国产高潮久久久91 | 天堂无码久久综合东京热| 久久久噜噜噜久久熟女AA片| 亚洲国产日韩欧美综合久久| 99热成人精品免费久久| 久久99热这里只频精品6| 伊人久久大香线蕉精品不卡| jizzjizz国产精品久久| 亚洲精品乱码久久久久久蜜桃| 久久美女网站免费| 欧美丰满熟妇BBB久久久| 亚洲欧洲精品成人久久曰影片 | 亚洲性久久久影院| 久久se精品一区精品二区国产| 99精品久久精品一区二区| 婷婷五月深深久久精品| 国内精品久久久久影院亚洲| 亚洲国产天堂久久综合| 亚洲国产小视频精品久久久三级 | 精品国产乱码久久久久软件| 国产精品va久久久久久久| 嫩草影院久久国产精品| 久久青青草原国产精品免费| 久久美女人爽女人爽| 国产精品狼人久久久久影院| 久久国产精品一区二区| 亚洲AV日韩精品久久久久| 久久亚洲精品人成综合网|