如何停用切換 Win32 平台上的工作

文章翻譯 文章翻譯
文章編號: 226359 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何停用工作切換和按鍵的組合,例如 CTRL + ESC 鍵和 ALT + TAB 鍵在 Win32 平台上透過存取其他系統函式。

Windows 95 與 Windows 98

應用程式可以啟用和停用 ALT + TAB 鍵和 CTRL + ESC 鍵,例如藉由呼叫 SystemParametersInfo (SPI_SETSCREENSAVERRUNNING)。若要停用 ALT + TAB 鍵和 CTRL + ESC 鍵,將 uiParam 參數設定為 TRUE ; 要啟用按鍵組合,請將參數設定為 FALSE
UINT nPreviousState;

// Disables task switching
SystemParametersInfo (SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0);

// Enables task switching
SystemParametersInfo (SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
				
附註 使用 SystemParametersInfo SPI_SETSCREENSAVERRUNNING 停用工作切換的應用程式必須啟用切換離開之前的任務或工作切換仍在處理序結束後,停用。

3 和更新版本的 Windows NT 4.0 的 Service Pack 和 Windows 2000

應用程式可以停用 ALT + TAB 或 CTRL + ESC 安裝低階鍵盤勾點。藉由呼叫 SetWindowsHookEx 安裝低階鍵盤勾點 (WH_KEYBOARD_LL)。在視窗勾點上的更多資訊請參閱攔截 」 概觀平台 SDK 文件中。

下列是停用 CTRL + ESC 鍵、 ALT + TAB 鍵和 ALT + ESC 一個範例低階鍵盤勾點程序:
LRESULT CALLBACK LowLevelKeyboardProc (INT nCode, WPARAM wParam, LPARAM lParam)
{
    // By returning a non-zero value from the hook procedure, the
    // message does not get passed to the target window
    KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam;
    BOOL bControlKeyDown = 0;

    switch (nCode)
    {
        case HC_ACTION:
        {
            // Check to see if the CTRL key is pressed
            bControlKeyDown = GetAsyncKeyState (VK_CONTROL) >> ((sizeof(SHORT) * 8) - 1);
            
            // Disable CTRL+ESC
            if (pkbhs->vkCode == VK_ESCAPE && bControlKeyDown)
                return 1;

            // Disable ALT+TAB
            if (pkbhs->vkCode == VK_TAB && pkbhs->flags & LLKHF_ALTDOWN)
                return 1;

            // Disable ALT+ESC
            if (pkbhs->vkCode == VK_ESCAPE && pkbhs->flags & LLKHF_ALTDOWN)
                return 1;

            break;
        }

        default:
            break;
    }
    return CallNextHookEx (hHook, nCode, wParam, lParam);
}
				

2 或更早的 Windows NT 4.0 的 Service Pack、 Windows NT 3.51 或更早

應用程式可以停 CTRL + ESC 全系統用來取代 Windows NT 工作管理員,但不建議這樣做。

應用程式時,可以停用 ALT + TAB 鍵和 ALT + ESC 應用程式執行由藉由呼叫 RegisterHotKey 註冊快速鍵 ALT + TAB 鍵和 ALT + ESC 鍵組合。

其他相關資訊

較舊的開發工具例如 Microsoft Visual C++ 版本 5.0 或更早版本,可能不包含建置使用低階鍵盤攔截程序的應用程式所需的標頭檔。若要取得最新的標頭檔,下載最新的平台 SDK 從下列 Microsoft 網站:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
因為低階鍵盤攔截程序是一項功能特定的 Windows NT 4.0 Service Pack 3 和更新版本,定義 _WIN32_WINNT > = 0x0400 之前要包括 winuser.h (或 windows.h)。

屬性

文章編號: 226359 - 上次校閱: 2006年11月21日 - 版次: 4.3
這篇文章中的資訊適用於:
  • Microsoft Win32 Application Programming Interface?應用於:
    • the operating system: Microsoft Windows XP
    • the operating system: Microsoft Windows 2000
    • Microsoft Windows NT 4.0
    • Microsoft Windows NT 3.51 Service Pack 5
    • Microsoft Windows Millennium Edition
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows 95
關鍵字:?
kbmt kbhook kbhowto kbinput KB226359 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:226359
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com