> 백엔드 개발 > C++ > Win32 API는 프로그래밍 방식으로 모든 장치를 활성화하거나 비활성화할 수 있습니까?

Win32 API는 프로그래밍 방식으로 모든 장치를 활성화하거나 비활성화할 수 있습니까?

Barbara Streisand
풀어 주다: 2025-01-06 02:04:40
원래의
611명이 탐색했습니다.

Can Win32 APIs Programmatically Enable or Disable All Devices?

Win32 API를 통해 장치 상태 제어

문제:
Win32를 사용하여 프로그래밍 방식으로 장치 활성화 또는 비활성화 API.

토론:

SetupDi API를 통해 모든 장치를 비활성화하거나 활성화할 수 있는 것은 아닙니다. 기본 마우스 드라이버는 이 기능을 지원하지 않습니다. 이 제한은 하드웨어 문제 없이 PS/2 연결 마우스를 핫 분리할 수 없기 때문에 발생합니다.

Win32 API를 통해 장치를 비활성화할 수 있는지 확인하려면 장치 관리자에서 "비활성화" 옵션을 확인하세요. 없으면 장치를 이 방법으로 비활성화할 수 없습니다.

비활성화 옵션이 있는 경우 다음 단계를 따르십시오.

  1. 장치 클래스 GUID 가져오기: 장치 관리자의 "속성"에서 찾으세요. " 대화 상자.
  2. 장치 인스턴스 경로 가져오기: 장치 관리자의 "속성"에서 검색합니다. 대화 상자.
  3. 제공된 코드를 사용하여 장치를 활성화하거나 비활성화합니다.
public static void EnableMouse(bool enable)
{
    // mouse class GUID
    Guid mouseGuid = new Guid("{4d36e96f-e325-11ce-bfc1-08002be10318}");
    
    // example instance path: @"\ACPI\PNP0F03&3688D3F&0"
    string instancePath = @"\ACPI\PNP0F03&3688D3F&0";
    
    DeviceHelper.SetDeviceEnabled(mouseGuid, instancePath, enable);
}
로그인 후 복사

코드:

제공된 코드를 참조하세요. DeviceHelper에서 class.

제한 사항:

SetupDi API를 통해 비활성화할 수 없는 장치의 경우 이 방법이 실패할 수 있습니다.

위 내용은 Win32 API는 프로그래밍 방식으로 모든 장치를 활성화하거나 비활성화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿