2-in-1 노트북의 palm rejection 은 보통 펜을 인식하는 경우에만 동작하기 때문에,
계속 펜을 화면에 근처에 적당히 인식시켜야 하는게 좀 불편해서 대강 만들어보았습니다.
우선 터치스크린은 '장치관리자' 에서 터치스크린을 '사용안함'으로 하면 끌 수 있습니다.
매 번 이렇게 끄고 켜면 불편하니, 간단히 장치관리자를 command line 에서 건드릴 수 있는
devcon 이라는 프로그램을 활용하면 됩니다.
다만, devcon은 WDK (Window driver kit) 이라는 개발도구 안에 포함되어 있는데, WDK의 용량이 좀 큽니다.
필요한 devcon 은 kb 단위이기 때문에, 'devcon extract' 라 검색하면 여러 경로를 통해 얻을 수 있습니다.
제가 찾은 곳은 이 곳입니다.
https://superuser.com/questions/1002950/quick-method-to-install-devcon-exe
받아서 Windows\System32 폴더에 넣으면 됩니다.
devcon 에서 장치를 컨트롤하려면, 해당 ID 를 알아야하는데
ID 는 '장치 관리자'의 해당 장치 '속성'에서, '자세히'에 가면 찾을 수 있습니다.
*PID0303* / *DEV_0303* 등으로 사용하면 됩니다.
devcon 프로그램에서 장치를 잘 인식하고 있는지는, find 를 통해 확인할 수 있습니다.
devcon find *PNP0303*
devcon find *DEV_0303*
devcon disable HWID
devcon enable HWID
을 통해 할 수 있습니다. (관리자 권한 필요)
이 명령어를 기반으로, 배치파일을 만들었습니다.
배치 파일 내용은,
touch_en 이라는 환경변수를 검사해서, 이것에 따라 devcon 으로 터치스크린이 켜지거나 꺼지는 형식입니다.
touch_en 환경 변수가 없으면, setx 라는 명령어가 알아서 이를 만들게 됩니다.
'msg' 는 메시지 상자를 띄우는 windows 내장 프로그램인데,
1초 동안 Touch on / Touch off 라는 메시지를 본인(%username%) 에게 띄우게 해놓았습니다.
배치파일을 Bat to exe convert 를 이용해 exe 로 바꾸면서,
실행 시 관리자권한을 확인하도록 하면 편합니다.
저는 exe 로 만들고, 작업표시줄 밑에 고정시켜놓은 뒤 펜으로 필요할때 눌러서 사용 중입니다.
HWID 는 자신의 터치스크린 장치의 ID 를 넣어서 사용하시면 됩니다.
@echo off
if "%touch_en%"=="1" (
goto :touch_off )
) else (
goto :touch_on
)
:touch_off
echo "Touch Off"
devcon disable HWID
msg /time:1 "%username%" Touch off
setx touch_en 0
exit
:touch_on
echo "Touch On"
devcon enable HWID
msg /time:1 "%username%" Touch on
setx touch_en 1
exit