windows mobile屏蔽“開始”菜單

來源:互聯網
上載者:User

我的程式是一個WM全屏程式,開機時自動運行。我已經屏蔽了所有的PDA按鍵(除電源鍵),即使用者不能退出我的程式。但當使用者關機時(長按電源按鍵)會彈 出 “......,是否關機”那個對話方塊,而這個對話方塊會把“開始”菜單顯示出來,使用者如果點開始菜單裡面任何一項,他就跳出我的程式了。

我一直以為這個功能不能實現,不過某天我玩一個全屏RPG遊戲時,發現我長按關機鍵後,再點那個“開始”沒有反應,於是又想實現該功能。

怎麼讓使用者不能點擊那個開始菜單?

在MSDN的windows mobile版塊: http://social.microsoft.com/Forums/zh-CN/1729/thread/3b2495d5-a4a5-43b8-9080-242e1e3514cc

在CSDN的windows mobile版塊: http://topic.csdn.net/u/20090702/11/e6417a27-30fe-469e-9977-bc219d028ff5.html

 我都問過該問題,而且查閱了很多中文,英文文檔都找不到合適的解決方案,請園子裡的牛人幫忙。

 再次表示賺意。

 最後,謝謝大家

改----------------------------------------------------------------------------------------------------------------------------------------------

 通過CSDN上幾位朋友的介紹,解決方案有以下兩種:

 兩種解決方案:
1.如果你能截獲到長按電源鍵訊息,那麼直接隱藏HHTaskBar就可以。

 [DllImport("coredll.dll")]
        public extern static IntPtr FindWindow(string lpClassName, string lpWindowName);

        [DllImport("coredll.dll")]
        public extern static bool EnableWindow(IntPtr hwnd, bool bEnable);

        public static bool HideBar(bool enable)
        {
            IntPtr hwnd;
            hwnd = FindWindow("HHTaskBar", "");
            return EnableWindow(hwnd, enable);
        }
        public Form1()
        {
            InitializeComponent();
            HideBar(false);
        }

 

2.服務程式截獲使用者點擊start那個位置的訊息,直接break,就會屏蔽掉。

 

LRESULT WndProc(HWND hwnd,UINT nMessage,WPARAM wParam, LPARAM lParam)
{
    switch(nMessage)
    {
    case WM_LBUTTONDOWN:
        MessageBox(NULL,_T("小樣的,休想逃跑"),_T("溫馨提示"),MB_OK);
        return 0;
    }
    return DefWindowProc(hwnd,nMessage,wParam,lParam);
}

void CEvcDlg::OnButton1() 
{
    HWND hwnd = ::FindWindow(TEXT("HHTaskBar"),TEXT(""));
    if(hwnd != NULL)
    {
        SetWindowLong(hwnd,GWL_WNDPROC,(long)WndProc);

    }
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.