Làm th? nào ð? vô hi?u hoá công vi?c chuy?n ð?i trên n?n t?ng Win32

ID c?a bài: 226359 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này mô t? làm th? nào ð? vô hi?u hoá nhi?m v? chuy?n m?ch và các ch?c nãng h? th?ng truy c?p thông qua các t? h?p phím CTRL + ESC và ALT + TAB trên n?n t?ng Win32.

Windows 95 và Windows 98

Các ?ng d?ng có th? kích ho?t và vô hi?u hoá ALT + TAB và CTRL + ESC, ví d?, b?ng cách g?i SystemParametersInfo (SPI_SETSCREENSAVERRUNNING). Ð? vô hi?u hoá ALT + TAB và CTRL + ESC, ð?t tham s? uiParam thành S? TH?T; ð? cho phép các t? h?p phím, thi?t l?p các thông s? ð? SAI:
UINT nPreviousState;

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

// Enables task switching
SystemParametersInfo (SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
				
Chuì yì Các ?ng d?ng s? d?ng SystemParametersInfo (SPI_SETSCREENSAVERRUNNING) ð? vô hi?u hoá nhi?m v? chuy?n m?ch ph?i b?t công vi?c chuy?n ð?i trý?c khi thoát ho?c công vi?c chuy?n m?ch v?n b? vô hi?u hoá sau khi ti?n tr?nh ch?m d?t.

Windows NT 4.0 Service Pack 3 và sau ðó và Windows 2000

Các ?ng d?ng có th? vô hi?u hóa ALT + TAB ho?c CTRL + ESC b?ng cách cài ð?t m?t móc ? ð? cao th?p bàn phím. M?t móc ? ð? cao th?p bàn phím (WH_KEYBOARD_LL) ðý?c cài ð?t b?ng cách g?i SetWindowsHookEx. Ð? bi?t thêm thông tin v? c?a s? móc xem t?ng quan "Móc" trong các tài li?u n?n t?ng SDK.

Sau ðây là m?t th? t?c móc ? ð? cao th?p bàn phím m?u ðó vô hi?u hoá CTRL + ESC, ALT + TAB và 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);
}
				

Windows NT 4.0 Service Pack 2 và trý?c ðó, Windows NT 3.51 và trý?c ðó

Các ?ng d?ng có th? vô hi?u hoá CTRL + ESC toàn h? th?ng b?ng cách thay th? Windows NT Task Manager, nhýng ði?u này là không nên.

Các ?ng d?ng có th? t?t ALT + TAB và ALT + ESC khi ?ng d?ng ðang ch?y b?ng cách ðãng k? phím nóng cho ALT + TAB và t? h?p ALT + ESC b?ng cách g?i RegisterHotKey.

THÔNG TIN THÊM

Công c? phát tri?n c? hõn, ch?ng h?n nhý Microsoft Visual C++ Phiên b?n 5.0 và trý?c ðó, có th? ch?a tiêu ð? các t?p tin c?n thi?t ð? xây d?ng m?t ?ng d?ng s? d?ng bàn phím low-level móc. Ð? có ðý?c các t?p tin tiêu ð? m?i nh?t, t?i SDK n?n t?ng m?i nh?t t? Microsoft Web site sau c?a:
http://www.Microsoft.com/msdownload/platformsdk/sdkupdate/psdk-Full.htm
B?i v? t?m th?p bàn phím móc là m?t tính nãng ð?c trýng cho Windows NT 4.0 Service Pack 3 và sau ðó, xác ð?nh _WIN32_WINNT > = 0x0400 trý?c khi ð? bao g?m winuser.h (hay windows.h).

Thu?c tính

ID c?a bài: 226359 - L?n xem xét sau cùng: 21 Thaìng Taìm 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Win32 Application Programming Interface, khi ðý?c dùng v?i:
    • Microsoft Windows Millennium Edition
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows 95
T? khóa: 
kbhook kbhowto kbinput kbmt KB226359 KbMtvi
Máy d?ch
QUAN TROòNG: Bài vi?t này ðý?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngý?i d?ch. Microsoft cung c?p các bài vi?t do con ngý?i d?ch và c? các bài vi?t do máy d?ch ð? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cõ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng nhý m?t ngý?i ný?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t ð?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thý?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào ðây ð? xem b?n ti?ng Anh c?a bài vi?t này:226359

Cung câìp PhaÒn hôÌi