วิธีการปิดใช้งานการสลับบนแพลตฟอร์ม Win32

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 226359 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้อธิบายถึงวิธีการปิดใช้งานสลับและฟังก์ชันระบบอื่น ๆ เข้าถึงผ่านทางแป้นผสมเช่น CTRL + ESC และ ALT + TAB บนแพลตฟอร์ม Win32

Windows 95 และ Windows 98

โปรแกรมประยุกต์ที่สามารถเปิดใช้งาน และปิดใช้งานแป้น ALT + TAB และ CTRL + ESC ตัวอย่างเช่น การเรียก SystemParametersInfo (SPI_SETSCREENSAVERRUNNING) เมื่อต้องการปิดการใช้งานแป้น ALT + TAB และ CTRL + ESC ตั้งค่าพารามิเตอร์ uiParam ไปจริง; เมื่อต้องการเปิดใช้งานคีย์ผสม ตั้งค่าพารามิเตอร์เพื่อFALSE:
UINT nPreviousState;

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

// Enables task switching
SystemParametersInfo (SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
				
หมายเหตุโปรแกรมประยุกต์ที่ใช้ SystemParametersInfo (SPI_SETSCREENSAVERRUNNING) เพื่อปิดใช้งานการสลับงาน ต้องเปิดใช้งานการสลับก่อนที่จะจบการทำงานหรืองานที่สลับยังคงเป็นการปิดการใช้งานหลังจากกระบวนการสิ้นสุดลง

Windows NT 4.0 Service Pack 3 และรุ่นที่ใหม่กว่าและ Windows 2000

โปรแกรมประยุกต์ที่สามารถปิดใช้งานแป้น ALT + TAB หรือ CTRL + ESC ด้วยการติดตั้ง hook ของบันทึกของแป้นพิมพ์ระดับต่ำ มีการติดตั้ง hook ของแป้นพิมพ์ระดับต่ำ (WH_KEYBOARD_LL) โดยการเรียก SetWindowsHookEx สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ hooks หน้าต่างดูภาพรวม "Hooks" ในคู่มือ Platform SDK

ต่อไปนี้คือ ขั้นตอนของ hook แป้นพิมพ์ระดับล่างตัวอย่างปิด 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);
}
				

Windows NT 4.0 Service Pack 2 และก่อนหน้า Windows NT 3.51 และก่อนหน้านี้

โปรแกรมประยุกต์ที่สามารถปิดใช้งาน CTRL + ESC สำหรับทั้งระบบ โดยการแทนที่ตัวจัดการงาน Windows NT แต่นี้ไม่แนะนำ

โปรแกรมประยุกต์ที่สามารถปิดใช้งานแป้น ALT + TAB และ ALT + ESC เมื่อโปรแกรมประยุกต์ทำงาน โดยการลงทะเบียนฮอตคีย์ ALT + TAB และชุด ALT + ESC โดยเรียก RegisterHotKey

ข้อมูลเพิ่มเติม

เครื่องมือพัฒนารุ่นเก่า เช่น Microsoft Visual c ++รุ่น 5.0 และรุ่น ก่อนหน้า อาจไม่ประกอบด้วยแฟ้มหัวข้อที่จำเป็นในการสร้างโปรแกรมประยุกต์ที่ใช้แป้นพิมพ์ที่ระดับต่ำ hooks เมื่อต้องการขอรับแฟ้มหัวข้อล่าสุด ดาวน์โหลด Platform SDK ล่าสุดจากเว็บไซต์ต่อไปนี้ของ Microsoft:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
เนื่องจากแป้นพิมพ์ระดับต่ำ hooks คุณลักษณะเฉพาะสำหรับ Windows NT 4.0 Service Pack 3 และรุ่นที่ใหม่กว่า กำหนด _WIN32_WINNT > = 0x0400 ก่อนที่จะรวมถึง winuser.h (หรือ windows.h)

คุณสมบัติ

หมายเลขบทความ (Article ID): 226359 - รีวิวครั้งสุดท้าย: 28 มกราคม 2554 - Revision: 5.0
ใช้กับ
  • Microsoft Win32 Application Programming Interface เมื่อใช้กับ:
    • Microsoft Windows Millennium Edition
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows 95
Keywords: 
kbhook kbhowto kbinput kbmt KB226359 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:226359

ให้ข้อเสนอแนะ

 

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