OSD는 On Screen Display의 약자로 디스플레이 위에 글자를 띄우는 것을 의미합니다
아래 사진처럼 화면에 흰색 글씨로 띄우는 것이 바로 OSD입니다
-이미지 출처 구글 이미지
OSD를 오토핫키로 구현하는 원리는 다음과 같습니다
1. GUI를 이용하여 원하는 텍스트를 띄운다
2. GUI 배경색을 투명화
예시코드를 만들어봤습니다
;배경색코드
CustomColor = FFFFFF
;-Caption +ToolWindow 옵션을 통해 글자와 배경이외에 전부 제거
Gui +LastFound +AlwaysOnTop -Caption +ToolWindow
;첫째줄에 설정한 색으로 GUI 배경색 설정
Gui, Color, %CustomColor%
;폰트설정
Gui, Font, s18 bold, 굴림
;글자입력
Gui, Add, Text, ,OSD Test Message
;OSD 위치설정
xPos := A_ScreenWidth / 2
yPos := A_ScreenHeight / 2
Gui, Show, x%xPos% y%yPos% AutoSize NoActivate, OSD
;GUI를 투명화(0에 가까울수록 투명해짐)
WinSet, Trans, 255, OSD
;배경색을 투명하게 만듦
WinSet, TransColor, %CustomColor% 250
;GUI 클릭이 불가능하게 설정
WinSet, exstyle, +0x20, OSD
주의할 점은 위 코드처럼 배경색과 글자색의 갭이 클 경우 아래처럼 배경색의 흔적이 남을 수 있습니다
따라서 배경색을 가능한한 글자색과 갭이 적도록 설정하는 것이 중요합니다
위 코드의 경우 글자색이 검정색이므로 000001 정도로 설정하면 좋겠네요