青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Jiang's C++ Space

創作,也是一種學習的過程。

   :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
鎖屏并不是一個很難的功能,初步想了一下覺得這樣,其實未必……本文是我琢磨了好幾天下來的成果,而且只是“初級”的,對Windows Mobile不夠熟,沒人輔導,真是累啊。

先給讀者些感性認識,這是我手機上Windows Mobile 6.1默認的鎖屏程序:

雖然說是鎖屏,其實是連鍵盤一塊兒鎖了,真正的英文名稱是叫“Lock Device”的,鎖設備。鎖了之后,你碰一碰鍵盤上其它按鍵,大致就這樣顯示:

表示你要繼續使用設備的話,得先“解鎖”。
從按鍵盤按鍵設備還有反應這點上看,所謂鎖屏其實并沒有真正屏蔽掉所有按鍵,只是對這些按鍵進行了一些別的處理而已。

但無疑這個鎖屏太土了,很多人不喜歡,所以才有了別的鎖屏軟件,比如下面這個叫S2U2,這是個免費軟件,好評率還蠻高的,這是它默認的鎖屏界面,其實界面還是可以定制的,可以弄得很漂亮:

這個軟件的“鎖屏”方式跟系統默認的就有所不同了,它貌似屏蔽了所有的鍵盤按鍵,只能通過滑動屏幕上的那個滑塊來解鎖。
現在接下來找個Windows Mobile 6.5的手機看看。

更好看一些,我稍微研究了一下6.5的鎖屏,其實也并非屏蔽所有按鍵,你可以這么試驗一下:隱藏所有窗口,在“今日”下鎖屏,然后按一下綠色的電話鍵,然后解鎖。你就會發覺屏幕顯示的不是“今日”,而是撥號面板,說明電話鍵還是起作用了,但我嘗試下來掛機鍵卻沒起作用。
如果上面這些問題你都不認為是什么問題,那么處理來電消息的問題呢?有沒想過。默認情況下,電話一來,系統會彈出消息框,鍵盤自動解鎖,但這很容易引起誤操作,所以我看見HTC的鎖屏就很好地處理了這個問題,它需要用戶在屏幕上劃一下,才解鎖,雖然有的用戶會嫌麻煩,但我想總比誤接聽好吧?

現在你認識到了吧,“鎖”,不是簡單的鎖而已。

前面是不是說得有點多了,所以本文顯得有些頭重腳輕,因為我目前實現的只有“初級”,所以內容還不是很多。

首先是鎖鍵盤,鎖屏時候屏蔽所有按鍵,這個可以用鉤子,關于Windows Mobile上的鉤子,網上文章有不少,但你看完后發覺都是抄來抄去的,煩都煩死,原作我找了一下,很可能(不是100%)是來自這里:http://www.codeproject.com/KB/windows/wincekbhook.aspx,而且,目前只能設置WH_KEYBOARD_LL類型的鉤子,WH_KEYBOARD_LL被define為20,這個跟Windows系統還不一樣,不過也不能怪Microsoft,因為hook在Windows Mobile中本來就是undefined的,不推薦使用。而且我在使用鉤子的過程中遇到了問題,就是鉤子對我的手機Samsung i780完全無效,(而模擬器還有另外兩臺多普達的機器是沒問題的)當然了,安裝鉤子的時候我查看過返回值,都是正常的,只是hook不到任何鍵盤消息,我的手機上出現了這種情況,這也意味著別的手機也可能出現。

折騰了許久之后,(我還嘗試了另外好幾種方法,但都不理想)我終于找到了解決方案,那就是從GAPI中分離出來的一個API,AllKeys,在本地的MSDN中是找不到這個函數的,但通過在線的MSDN很快就能找到這個函數的說明,用起來十分十分簡單,完全能達到我的功能要求,而且對我的Samsung i780是有效的!

鍵盤解決了,然后是來電處理,來電時候我目前的處理跟系統默認的一樣,一來電,就立即自動解鎖鍵盤,并且顯示電話撥號面板,電話結束后再自動鎖上,這樣做雖然不是很好,但至少可以接受。那就要處理來電和掛斷消息了,一開始打算用TAPI,網上很多人也都這么說的,但TAPI非常復雜,功能很強大,而我需要的僅僅是得到通知這么一個功能,有點牛刀殺雞的感覺,而TAPI還有個問題,就是貌似它具有“獨占性”,我的程序一旦占據了電話,別的程序要用電話就可能有問題了,這個我沒深入研究。

最后我采用的方法是注冊系統通知消息,RegistryNotifyWindow,現在把關鍵代碼貼出來:
#define WM_USER_TELEPHONE_STATE  (WM_USER+1086)

//WM_CREATE
//Register the notification for monitoring the telephone state.
RegistryNotifyWindow(SN_PHONEINCOMINGCALL_ROOT, //defined in snapi.h
    SN_PHONEINCOMINGCALL_PATH, SN_PHONEINCOMINGCALL_VALUE, hWnd,  //handle to our window to receive msg
    WM_USER_TELEPHONE_STATE, //app defined message to send
    NULL, //app defined value
    NULL, &g_hregNotifyPhone);

//
//Phone state changed!
case WM_USER_TELEPHONE_STATE:
    
if ((wParam&SN_PHONEINCOMINGCALL_BITMASK)==SN_PHONEINCOMINGCALL_BITMASK
        
|| (wParam&SN_PHONECALLTALKING_BITMASK)==SN_PHONECALLTALKING_BITMASK)
    {
        AllKeys(FALSE);
        ShowWindow(hWnd, SW_HIDE);
    }
    
else
    {

        AllKeys(TRUE);
        ShowWindow(hWnd, SW_SHOW);
        SHFullScreen(hWnd, SHFS_HIDETASKBAR
|SHFS_HIDESIPBUTTON);
        SetForegroundWindow(hWnd);
    }
    
break;

代碼看起來簡單,我卻研究了許久……這樣實現的功能就是來電時候鎖屏窗口隱藏,解鎖鍵盤,讓系統默認程序接管,電話結束時候重新show出窗口,繼續鎖屏。其余細節代碼就不貼了,雖然細節還有很多,但大致就這些,要真正弄出跟HTC那樣的鎖屏,還有很多要研究的。下次有機會我再寫吧,當然前提是我已經研究出來之后。
posted on 2010-08-09 10:13 Jiang Guogang 閱讀(1439) 評論(1)  編輯 收藏 引用 所屬分類: Windows Embedded Programming

評論

# re: Windows Mobile鎖屏軟件的初級實現 2010-08-09 10:45 Matthew
每周都有新作,有毅力哈  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧美在线一区| 正在播放日韩| 久久精品亚洲精品| 亚洲永久精品大片| 国产色婷婷国产综合在线理论片a| 欧美亚洲一区三区| 久久精品国产v日韩v亚洲| 伊人成年综合电影网| 欧美成人精品激情在线观看| 欧美精品一区二区久久婷婷| 亚洲一区二区三区欧美| 欧美有码在线观看视频| 亚洲区国产区| 亚洲一区二区三区精品视频| 韩国精品在线观看| 亚洲日本中文| 国产精品日本一区二区| 久久久亚洲人| 欧美日韩国产在线播放网站| 欧美一区二区免费| 久热精品视频在线观看一区| 亚洲视频网在线直播| 欧美中日韩免费视频| 亚洲精品视频在线观看网站| 亚洲一区欧美二区| 日韩午夜中文字幕| 性欧美长视频| 亚洲午夜国产一区99re久久| 久久国产日本精品| 亚洲无线一线二线三线区别av| 久久精品一本久久99精品| 一区二区三区 在线观看视频| 欧美综合二区| 亚洲综合视频网| 免费观看成人网| 久久久国产午夜精品| 欧美日产国产成人免费图片| 久久婷婷av| 国产欧美精品一区二区色综合| 亚洲国产美女精品久久久久∴| 国产一在线精品一区在线观看| 国产欧美在线观看一区| 亚洲伦理在线| 亚洲啪啪91| 久久亚洲私人国产精品va媚药| 午夜精品视频在线观看| 欧美成人官网二区| 久久综合国产精品| 国产日韩亚洲欧美精品| 亚洲综合色噜噜狠狠| 亚洲一区二区三区四区视频| 欧美精品日韩三级| 亚洲国产精品尤物yw在线观看 | 另类激情亚洲| 欧美在线视频网站| 欧美日本国产精品| 久久这里有精品视频| 国产精品麻豆欧美日韩ww| 亚洲精品乱码久久久久久日本蜜臀| 伊人成人在线视频| 久久精品国产亚洲一区二区| 久久国内精品自在自线400部| 国产精品乱码妇女bbbb| 亚洲午夜激情免费视频| 宅男精品视频| 欧美三级黄美女| 亚洲午夜av在线| 午夜在线观看欧美| 国产精品主播| 午夜一区二区三区在线观看| 久久精品一二三区| 国内一区二区在线视频观看| 久久久精品国产免大香伊| 蜜臀av国产精品久久久久| 在线播放精品| 欧美高清视频一二三区| 亚洲每日在线| 午夜久久99| 激情亚洲网站| 欧美国产欧美综合 | 久久久久一区二区三区| 激情久久久久久久| 欧美 日韩 国产 一区| 亚洲人成网站在线播| 亚洲欧美国产一区二区三区| 国产精品日韩专区| 久久手机免费观看| 亚洲精品一区二区三区婷婷月| 亚洲综合色在线| 精品99视频| 欧美日韩一区二区高清| 午夜精品一区二区在线观看| 欧美国产精品劲爆| 亚洲免费视频在线观看| 国内精品一区二区三区| 欧美精品日韩精品| 性色av一区二区三区| 亚洲国产日韩在线| 欧美一区二区三区另类| 亚洲经典自拍| 国产女同一区二区| 欧美精品激情在线| 欧美影院在线播放| 一本一本a久久| 久久亚洲国产精品一区二区| 在线中文字幕一区| 尤物精品国产第一福利三区 | 亚洲神马久久| 国产美女精品免费电影| 老司机aⅴ在线精品导航| 在线视频欧美精品| 亚洲国产一区二区视频 | 国产亚洲成精品久久| 欧美精品二区| 久久久噜噜噜久久中文字幕色伊伊| 日韩亚洲在线| 欧美福利专区| 久久综合久久综合久久综合| 99热在线精品观看| 尤物精品在线| 国产亚洲毛片在线| 国产精品你懂得| 亚洲综合三区| 欧美网站在线观看| 亚洲欧美在线一区二区| 亚洲一区二区三区久久 | 亚洲婷婷免费| 在线看片成人| 国产色产综合产在线视频| 欧美视频日韩视频| 欧美人妖另类| 乱人伦精品视频在线观看| 欧美一区二区在线免费播放| 一区二区三区高清在线| 最新日韩中文字幕| 亚洲国产精品电影在线观看| 麻豆精品网站| 免费成人小视频| 另类专区欧美制服同性| 久久亚洲风情| 美女成人午夜| 欧美国产精品一区| 欧美激情bt| 亚洲大胆人体视频| 亚洲大黄网站| 亚洲美女视频在线观看| 日韩视频一区二区| 一区二区三区日韩精品视频| 一区二区三区成人精品| 一本色道久久综合亚洲精品小说 | 一区二区三区四区在线| 国产精品99久久久久久有的能看| 亚洲精品一区二区三区四区高清| 日韩视频一区| 午夜精品久久久久久久久久久久久 | 99精品99| 亚洲一区在线免费观看| 西西人体一区二区| 久久精品天堂| 欧美黑人国产人伦爽爽爽| 亚洲日韩欧美视频| 一区二区三区蜜桃网| 午夜精品福利视频| 久久久夜夜夜| 欧美日韩亚洲一区二区三区在线观看| 欧美无乱码久久久免费午夜一区| 国产精自产拍久久久久久蜜| 免费的成人av| 久久久久久久久蜜桃| 欧美大片在线观看一区| 欧美1区视频| 国产精品久久久久91| 国语自产精品视频在线看一大j8 | 极品少妇一区二区| 亚洲欧洲精品一区二区三区不卡| 亚洲视频在线一区观看| 久久国产天堂福利天堂| 亚洲电影一级黄| 亚洲在线观看视频网站| 久久一二三区| 国产精品久久久久秋霞鲁丝| 精品成人国产| 亚洲自拍啪啪| 亚洲黄页一区| 亚洲一区二区三区四区中文| 久久手机精品视频| 国产精品久久久久高潮| 亚洲国产日韩欧美在线图片| 亚洲一区综合| 亚洲第一区在线观看| 午夜精彩国产免费不卡不顿大片| 免费观看日韩av| 国产亚洲综合精品| 一区二区三区四区蜜桃| 牛牛精品成人免费视频| 午夜国产精品影院在线观看| 欧美乱大交xxxxx| 亚洲第一在线综合网站| 欧美在线欧美在线| 99精品欧美一区|