다음을 통해 공유


WEKF_Scancode

지원되는 버전
✅ IoT Enterprise LTSC
✅ IoT Enterprise✅
Enterprise LTSC
✅ Enterprise
✅ Education

키를 누르거나 놓을 때마다 생성되는 정수 숫자인 키보드 스캔 코드를 사용하여 키 조합을 차단하거나 차단 해제합니다.

구문

class WEKF_Scancode {
    [Static] uint32 Add(
        [In] string Modifiers,
        [In] uint16 scancode
    );
    [Static] uint32 Remove(
        [In] string Modifiers,
        [In] uint16 Scancode
    );

    [Key] string Modifiers;
    [Key] uint16 Scancode;
    [Read, Write] boolean Enabled;
}

멤버

다음 표에는 이 클래스에 속하는 모든 생성자, 메서드, 필드 및 속성이 나열되어 있습니다.

메서드

메서드 설명
WEKF_Scancode.추가 새 사용자 지정 검사 코드 조합을 추가하고 키보드 필터를 사용하여 새 검사 코드 조합을 차단할 수 있습니다.
WEKF_Scancode.Remove 지정된 사용자 지정 검사 코드 조합을 제거합니다. 키보드 필터가 제거된 검사 코드 조합 차단을 중지합니다.

특성

속성 데이터 형식 한정자 설명
한정자 string [키] 차단할 키 조합의 일부인 한정자 키입니다.
스캔 코드 uint16 [키] 차단할 키 조합의 코드 검사 부분입니다.
활성화 부울 [읽기, 쓰기] 검사 코드가 차단 또는 차단 해제되었는지 여부를 나타냅니다. 이 속성은 다음 값 중 하나일 수 있습니다.
- true 검사 코드가 차단되었음을 나타냅니다.
- false 검사 코드가 차단되지 않음을 나타냅니다.

설명

스캔 코드는 키를 누를 때마다 키보드에서 생성됩니다. 동일한 물리적 키는 현재 시스템에서 사용 중인 키보드 레이아웃에 관계없이 항상 동일한 검사 코드를 생성합니다.

Add 메서드의 한정자 매개 변수에 한정 키를 포함하거나 한정자 속성을 수정하여 키 조합을 지정할 수 있습니다. 가장 일반적인 한정자 이름은 Ctrl, Shift,>>Alt>Win입니다>.

예제

다음 코드에서는 키보드 필터에 WMI(Windows Management Instrumentation) 공급자를 사용하여 키보드 필터가 차단할 키보드 스캔 코드를 추가하거나 사용하도록 설정하는 방법을 보여 줍니다. 이 예제에서는 속성을 직접 수정하고 WEKF_Scancode 정의된 메서드를 호출하지 않습니다.

<#
.Synopsis
    This script shows how to use the WMI provider to enable and add
    Keyboard Filter rules through Windows Powershell on the local computer.
.Parameter ComputerName
    Optional parameter to specify a remote machine that this script should
    manage.  If not specified, the script will execute all WMI operations
    locally.
#>
param (
    [String] $ComputerName
)

$CommonParams = @{"namespace"="root\standardcimv2\embedded"}
$CommonParams += $PSBoundParameters


function Enable-Scancode($Modifiers, [int]$Code) {
    <#
    .Synopsis
        Toggle on a Scancode Keyboard Filter Rule
    .Description
        Use Get-WMIObject to enumerate all WEKF_Scancode instances,
        filter against key values of "Modifiers" and "Scancode", and set
        that instance's "Enabled" property to 1/true.

        In the case that the Scancode instance does not exist, add a new
        instance of WEKF_Scancode using Set-WMIInstance.
    .Example
        Enable-Predefined-Key "Ctrl+V"

        Enable filtering of the Ctrl + V sequence.
#>

    $scancode =
        Get-WMIObject -class WEKF_Scancode @CommonParams |
            where {
                ($_.Modifiers -eq $Modifiers) -and ($_.Scancode -eq $Code)
            }

    if($scancode) {
        $scancode.Enabled = 1
        $scancode.Put() | Out-Null
        "Enabled Custom Scancode {0}+{1:X4}" -f $Modifiers, $Code
    } else {
        Set-WMIInstance `
            -class WEKF_Scancode `
            -argument @{Modifiers="$Modifiers"; Scancode=$Code} `
            @CommonParams | Out-Null

        "Added Custom Scancode {0}+{1:X4}" -f $Modifiers, $Code
    }
}

# Some example uses of the function defined above.

Enable-Scancode "Ctrl" 37

키보드 필터 WMI 공급자 참조

키보드 필터