LightWeight HotKeyRecommended
LightWeight HotKey 는 윈도우용 단축키 프로그램입니다.
AutoHotKey 보다는 단순한 기능만을 제공하지만, GUI를 통해 간단하게 설정할 수 있습니다.
LightWeight HotKey 는 윈도우용 단축키 프로그램입니다.
AutoHotKey 보다는 단순한 기능만을 제공하지만, GUI를 통해 간단하게 설정할 수 있습니다.
AutoHotKey 를 사용하여 여러가지 단축키를 등록하여 사용하였으나, 새 단축키 등록이나 기능 변경시 매번 스크립트를 작성해야하는 번거로움이 있어서 제작하게 되었습니다.
스크립트 작성 후 Ahk2Exe 를 이용하여 Binary로 제작 후에는, Anti-Virus 프로그램에서 오탐을 하는 경우도 있었습니다.
| LightWeight HotKey | AutoHotKey | |
|---|---|---|
| 설정 난이도 | 보통 | 어려움 (스크립트 작성) |
| 다양한 기능 지원 | X (일부 단축키 기능만 지원) | O |
| GUI | O | X |
| 정규표현식 지원 | O | O |
| 실행 대상 Integrity Level 지정 | O | X |
| Anti-Virus 탐지 | X (안전) | O |
| 윈도우 시작 시 스케쥴 등록 | O | X |
| 구동 방식 | Hook | Hook |
| DLL Injection | X | X |
| 이름 | 설명 |
|---|---|
| RCT_Always | 항상 실행 |
| RCT_ActiveWindow_FullScreen | 현재 창이 FullScreen |
| RCT_ActiveWindow_TitleMatch | (찾을 창의) 제목 일치 |
| RCT_ActiveWindow_TitleBegin | (찾을 창의) 제목 시작 |
| RCT_ActiveWindow_TitleEnd | (찾을 창의) 제목 종료 |
| RCT_ActiveWindow_TitleContains | (찾을 창의) 제목 포함 |
| RCT_ActiveWindow_TitleRegexMatch | (찾을 창의) 제목 정규표현식 |
| RCT_ActiveWindow_ClassNameMatch | (찾을 창의) 클래스 이름 일치 |
| RCT_ActiveWindow_ClassNameBegin | (찾을 창의) 클래스 이름 시작 |
| RCT_ActiveWindow_ClassNameEnd | (찾을 창의) 클래스 이름 종료 |
| RCT_ActiveWindow_ClassNameContains | (찾을 창의) 클래스 이름 포함 |
| RCT_ActiveWindow_ClassNameRegexMatch | (찾을 창의) 클래스 이름 정규표현식 |
| RCT_ActiveWindow_ProcessNameMatch | (찾을 창의) 프로세스 이름 일치 |
| RCT_ActiveWindow_ProcessNameBegin | (찾을 창의) 프로세스 이름 시작 |
| RCT_ActiveWindow_ProcessNameEnd | (찾을 창의) 프로세스 이름 종료 |
| RCT_ActiveWindow_ProcessNameContains | (찾을 창의) 프로세스 이름 포함 |
| RCT_ActiveWindow_ProcessNameRegexMatch | (찾을 창의) 프로세스 이름 정규표현식 |
| RCT_ActiveWindow_ProcessPathMatch | (찾을 창의) 프로세스 경로 일치 |
| RCT_MouseCursorChildWindow_TitleMatch | (찾을 창의) 제목 일치 |
| RCT_MouseCursorChildWindow_TitleBegin | (찾을 창의) 제목 시작 |
| RCT_MouseCursorChildWindow_TitleEnd | (찾을 창의) 제목 종료 |
| RCT_MouseCursorChildWindow_TitleContains | (찾을 창의) 제목 포함 |
| RCT_MouseCursorChildWindow_TitleRegexMatch | (찾을 창의) 제목 정규표현식 |
| RCT_MouseCursorChildWindow_ClassNameMatch | (찾을 창의) 클래스 이름 일치 |
| RCT_MouseCursorChildWindow_ClassNameBegin | (찾을 창의) 클래스 이름 시작 |
| RCT_MouseCursorChildWindow_ClassNameEnd | (찾을 창의) 클래스 이름 종료 |
| RCT_MouseCursorChildWindow_ClassNameContains | (찾을 창의) 클래스 이름 포함 |
| RCT_MouseCursorChildWindow_ClassNameRegexMatch | (찾을 창의) 클래스 이름 정규표현식 |
| RCT_MouseCursorChildWindow_ProcessNameMatch | (찾을 창의) 프로세스 이름 일치 |
| RCT_MouseCursorChildWindow_ProcessNameBegin | (찾을 창의) 프로세스 이름 시작 |
| RCT_MouseCursorChildWindow_ProcessNameEnd | (찾을 창의) 프로세스 이름 종료 |
| RCT_MouseCursorChildWindow_ProcessNameContains | (찾을 창의) 프로세스 이름 포함 |
| RCT_MouseCursorChildWindow_ProcessNameRegexMatch | (찾을 창의) 프로세스 이름 정규표현식 |
| RCT_MouseCursorChildWindow_ProcessPathMatch | (찾을 창의) 프로세스 경로 일치 |
| RCT_FindWindow_TitleMatch | (찾을 창의) 제목 일치 |
| RCT_FindWindow_TitleBegin | (찾을 창의) 제목 시작 |
| RCT_FindWindow_TitleEnd | (찾을 창의) 제목 종료 |
| RCT_FindWindow_TitleContains | (찾을 창의) 제목 포함 |
| RCT_FindWindow_TitleRegexMatch | (찾을 창의) 제목 정규표현식 |
| RCT_FindWindow_ClassNameMatch | (찾을 창의) 클래스 이름 일치 |
| RCT_FindWindow_ClassNameBegin | (찾을 창의) 클래스 이름 시작 |
| RCT_FindWindow_ClassNameEnd | (찾을 창의) 클래스 이름 종료 |
| RCT_FindWindow_ClassNameContains | (찾을 창의) 클래스 이름 포함 |
| RCT_FindWindow_ClassNameRegexMatch | (찾을 창의) 클래스 이름 정규표현식 |
| RCT_FindWindow_ProcessNameMatch | (찾을 창의) 프로세스 이름 일치 |
| RCT_FindWindow_ProcessNameBegin | (찾을 창의) 프로세스 이름 시작 |
| RCT_FindWindow_ProcessNameEnd | (찾을 창의) 프로세스 이름 종료 |
| RCT_FindWindow_ProcessNameContains | (찾을 창의) 프로세스 이름 포함 |
| RCT_FindWindow_ProcessNameRegexMatch | (찾을 창의) 프로세스 이름 정규표현식 |
| RCT_FindWindow_ProcessPathMatch | (찾을 창의) 프로세스 경로 일치 |
| RCT_Global_FindWindow_TitleMatch | (찾을 창의) 제목 일치 |
| RCT_Global_FindWindow_TitleBegin | (찾을 창의) 제목 시작 |
| RCT_Global_FindWindow_TitleEnd | (찾을 창의) 제목 종료 |
| RCT_Global_FindWindow_TitleContains | (찾을 창의) 제목 포함 |
| RCT_Global_FindWindow_TitleRegexMatch | (찾을 창의) 제목 정규표현식 |
| RCT_Global_FindWindow_ClassNameMatch | (찾을 창의) 클래스 이름 일치 |
| RCT_Global_FindWindow_ClassNameBegin | (찾을 창의) 클래스 이름 시작 |
| RCT_Global_FindWindow_ClassNameEnd | (찾을 창의) 클래스 이름 종료 |
| RCT_Global_FindWindow_ClassNameContains | (찾을 창의) 클래스 이름 포함 |
| RCT_Global_FindWindow_ClassNameRegexMatch | (찾을 창의) 클래스 이름 정규표현식 |
| RCT_Global_FindWindow_ProcessNameMatch | (찾을 창의) 프로세스 이름 일치 |
| RCT_Global_FindWindow_ProcessNameBegin | (찾을 창의) 프로세스 이름 시작 |
| RCT_Global_FindWindow_ProcessNameEnd | (찾을 창의) 프로세스 이름 종료 |
| RCT_Global_FindWindow_ProcessNameContains | (찾을 창의) 프로세스 이름 포함 |
| RCT_Global_FindWindow_ProcessNameRegexMatch | (찾을 창의) 프로세스 이름 정규표현식 |
| RCT_Global_FindWindow_ProcessPathMatch | (찾을 창의) 프로세스 경로 일치 |
| RCT_IME_English | IME 상태가 영문인 경우 (Negative 옵션으로, 영문이 아닌 경우도 가능) |
| RCT_TrayIconProcessNameMatchForWin10OrLower | (윈 10 전용) TrayIcon 프로세스 찾기 |
| RCT_TrayIconTitleMatch | (윈 11 전용) TrayIcon 텍스트 찾기 |
| RCT_TrayIconTitleRegexMatch | (윈 11 전용) TrayIcon 텍스트 찾기 |
| RCT_Desktop_ImageMatch | 바탕화면과 Image와 비교하기 |
| RCT_ActiveWindow_ImageMatch | 현재 활성 윈도우를 Image와 비교하기 |
| RCT_IsScale_100_Percent_Ratio_96 | DPI is 100% (Ratio: 96) |
| RCT_IsScale_125_Percent_Ratio_120 | DPI is 125% (Ratio: 120) |
| RCT_IsScale_150_Percent_Ratio_144 | DPI is 150% (Ratio: 144) |
| RCT_IsScale_175_Percent_Ratio_168 | DPI is 175% (Ratio: 168) |
| RCT_IsScale_200_Percent_Ratio_192 | DPI is 200% (Ratio: 192) |
| 이름 | 설명 |
|---|---|
| RET_Activate | 창 활상화 하기 |
| RET_Activate_Next_Window | 창 활상화 하기 (그냥 Z-Order 상 다음 윈도우) |
| RET_Activate_Last_Window | 창 활상화 하기 (그냥 Z-Order 상 이전 윈도우) |
| RET_Activate_Same_ProcessName_Next_Window | 창 활상화 하기 (같은 프로세스의 윈도우 다음 창) |
| RET_Activate_Same_ProcessName_Last_Window | 창 활상화 하기 (같은 프로세스의 윈도우 마지막 창, 다음 창 하면 Z-Order 가 꼬여서 2번했을 때 서로 번갈아서 활성화 되기 때문에 이것도 추가함) |
| RET_Activate_Same_ProcessPath_Next_Window | 창 활상화 하기 (같은경로 프로세스의 윈도우 다음 창) |
| RET_Activate_Same_ProcessPath_Last_Window | 창 활상화 하기 (같은경로 프로세스의 윈도우 마지막 창, 다음 창 하면 Z-Order 가 꼬여서 2번했을 때 서로 번갈아서 활성화 되기 때문에 이것도 추가함) |
| RET_Activate_Or_Same_ProcessName_Next_Window | (활성화 되지 않았음) 창 활상화 하기 | 아니면 이전/다음 창 (같은 프로세스의 윈도우 다음 창) |
| RET_Activate_Or_Same_ProcessName_Last_Window | (활성화 되지 않았음) 창 활상화 하기 | 아니면 이전/다음 창 (같은 프로세스의 윈도우 마지막 창, 다음 창 하면 Z-Order 가 꼬여서 2번했을 때 서로 번갈아서 활성화 되기 때문에 이것도 추가함) |
| RET_Activate_Or_Same_ProcessPath_Next_Window | (활성화 되지 않았음) 창 활상화 하기 | 아니면 이전/다음 창 (같은경로 프로세스의 윈도우 다음 창) |
| RET_Activate_Or_Same_ProcessPath_Last_Window | (활성화 되지 않았음) 창 활상화 하기 | 아니면 이전/다음 창 (같은경로 프로세스의 윈도우 마지막 창, 다음 창 하면 Z-Order 가 꼬여서 2번했을 때 서로 번갈아서 활성화 되기 때문에 이것도 추가함) |
| RET_Activate_All_Same_ProcessName_Window_Tile | 창 활상화 하기 (같은 프로세스의 모든 윈도우 가로 바둑판식) |
| RET_Activate_All_Same_Class_Window_Tile | 창 활상화 하기 (같은 클래스의 모든 윈도우 가로 바둑판식) |
| RET_Activate_All_Same_ProcessId_Class_Window_Tile | 창 활상화 하기 (같은 프로세스 클래스의 모든 윈도우 가로 바둑판식) |
| RET_Show_All_Same_ProcessName | 창 보이기 (같은 프로세스 이름) |
| RET_Show_All_Same_Class | 창 보이기 (같은 클래스) |
| RET_Show_All_Same_ProcessId | 창 보이기 (같은 프로세스) |
| RET_ExecuteApp | 앱 실행하기 |
| RET_ExecuteApp_HighIntegrity | 앱 실행하기 (High Integrity Level) |
| RET_ExecuteApp_MediumIntegrity | 앱 실행하기 (Normal Integrity Level) |
| RET_ExecuteApp_LowIntegrity | 앱 실행하기 (Low Integrity Level) |
| RET_Size_Fixed | 창 크기 변경 (지정) |
| RET_Size_Percent | 창 크기 변경 (지정) |
| RET_SizeUp | 창 크기 변경 (키우기) |
| RET_SizeDown | 창 크기 변경 (줄이기) |
| RET_Move | 창 이동 (지정) |
| RET_MoveTo | 창 이동 (지정 만큼 이동) |
| RET_MoveToCurrentMonitor_Left | 창 이동 (현재 모니터 왼쪽) |
| RET_MoveToCurrentMonitor_Right | 창 이동 (현재 모니터 오른쪽 위) |
| RET_MoveToCurrentMonitor_Top | 창 이동 (현재 모니터 왼쪽) |
| RET_MoveToCurrentMonitor_Bottom | 창 이동 (현재 모니터 왼쪽) |
| RET_MoveToCurrentMonitor_LeftTop | 창 이동 (현재 모니터 왼쪽 위) |
| RET_MoveToCurrentMonitor_LeftBottom | 창 이동 (현재 모니터 왼쪽 아래) |
| RET_MoveToCurrentMonitor_RightTop | 창 이동 (현재 모니터 오른쪽 위) |
| RET_MoveToCurrentMonitor_RightBottom | 창 이동 (현재 모니터 오른쪽 아래) |
| RET_MoveToCurrentMonitor_Center | 창 이동 (현재 모니터 중앙) |
| RET_MoveToCurrentMonitor_Horizontal_Center | 창 이동 (현재 모니터 가로 중앙) |
| RET_MoveToCurrentMonitor_Vertical_Center | 창 이동 (현재 모니터 세로 중앙) |
| RET_MoveToCurrentMonitor_Left_Percent | 창 이동 (현재 모니터 위에서 Percent) |
| RET_MoveToCurrentMonitor_Top_Percent | 창 이동 (현재 모니터 왼쪽에서 Percent) |
| RET_MoveToCurrentMonitor_Right_Percent | 창 이동 (현재 모니터 오른쪽에서 Percent) |
| RET_MoveToCurrentMonitor_Bottom_Percent | 창 이동 (현재 모니터 아래에서 Percent) |
| RET_MoveToCurrentMonitor_LeftTop_Percent | 창 이동 (현재 모니터 LeftTop 에서 Percent) |
| RET_MoveToCurrentMonitor_LeftBottom_Percent | 창 이동 (현재 모니터 LeftBottom 에서 Percent) |
| RET_MoveToCurrentMonitor_RightTop_Percent | 창 이동 (현재 모니터 RightTop 에서 Percent) |
| RET_MoveToCurrentMonitor_RightBottom_Percent | 창 이동 (현재 모니터 RightBottom 에서 Percent) |
| RET_Window_Maximize | 창 최대화 |
| RET_Window_Minimize | 창 최소화 |
| RET_Window_Restore | (창 최대화, 최소화 상태에서...) 복원 |
| RET_Window_Restore_And_Minimize | 창 최소화 |
| RET_Sleep | 실행 지연 (1/1000 초 milliseconds) |
| RET_KeyInput_ReplaceAndRollback | 키 변경하여 실행 (기존 Modifier 상태에: 취소 -> 입력 -> 복원) |
| RET_KeyInput_AppendAndRollback | 키 변경하여 실행 (기존 Modifier 상태에: 덮덮 -> 복원) |
| RET_KeyDown | 키 누름 |
| RET_KeyUp | 키 뗌 |
| RET_KeyInput_CapsLock_On | 캡스락 끄기 |
| RET_KeyInput_CapsLock_Off | 캡스락 끄기 |
| RET_TextInput | 텍스트 입력하기 (keybd_event) |
| RET_TextInput_UsingClipBoard | 텍스트 입력하기 (ClipBoard 로 복붙하기) |
| RET_MouseMove_Absolute | 마우스 이동 (지정) |
| RET_MouseMove_Relative | 마우스 이동 (상대) |
| RET_MouseMove_FromTarget_TopLeft | 마우스 이동 (From Target) |
| RET_MouseMove_FromTarget_TopRight | 마우스 이동 (From Target) |
| RET_MouseMove_FromTarget_BottomLeft | 마우스 이동 (From Target) |
| RET_MouseMove_FromTarget_BottomRight | 마우스 이동 (From Target) |
| RET_MouseMove_FromTarget_Center | 마우스 이동 (From Target) |
| RET_MouseMove_PrevMonitor_Center | 마우스 이동 (이전 모니터) |
| RET_MouseMove_NextMonitor_Center | 마우스 이동 (다음 모니터) |
| RET_MouseMove_From_Desktop_ImageMatch_TopLeft | 마우스 이동 (Desktop 이미지 매칭) |
| RET_MouseMove_From_Desktop_ImageMatch_TopRight | 마우스 이동 (Desktop 이미지 매칭) |
| RET_MouseMove_From_Desktop_ImageMatch_BottomLeft | 마우스 이동 (Desktop 이미지 매칭) |
| RET_MouseMove_From_Desktop_ImageMatch_BottomRight | 마우스 이동 (Desktop 이미지 매칭) |
| RET_MouseMove_From_ActiveWindow_ImageMatch_TopLeft | 마우스 이동 (ActiveWindow 이미지 매칭) |
| RET_MouseMove_From_ActiveWindow_ImageMatch_TopRight | 마우스 이동 (ActiveWindow 이미지 매칭) |
| RET_MouseMove_From_ActiveWindow_ImageMatch_BottomLeft | 마우스 이동 (ActiveWindow 이미지 매칭) |
| RET_MouseMove_From_ActiveWindow_ImageMatch_BottomRight | 마우스 이동 (ActiveWindow 이미지 매칭) |
| RET_MouseClick | 마우스 입력 |
| RET_MouseDoubleClick | 마우스 입력 |
| RET_MousePositionSave_ExecutionContext | 마우스 좌표 저장 - 이번 실행 컨텍스트에 한함 |
| RET_MousePositionLoad_ExecutionContext | 마우스 좌표 로드 - 이번 실행 컨텍스트에 한함 |
| RET_MatchTrayIcon_Click | RCT_TrayIconProcessNameMatch 에서 매칭된 TrayIcon 클릭! |
| RET_MatchTrayIcon_DoubleClick | RCT_TrayIconProcessNameMatch 에서 매칭된 TrayIcon 더블클릭! |
| RET_MatchTrayIcon_EmulateClick | RCT_TrayIconProcessNameMatch 에서 매칭된 TrayIcon 클릭! |
| RET_MatchTrayIcon_EmulateDoubleClick | RCT_TrayIconProcessNameMatch 에서 매칭된 TrayIcon 더블클릭! |
| RET_MatchTrayIcon_MouseMove_FromTarget_TopLeft | RCT_TrayIconProcessNameMatch 에서 매칭된 TrayIcon 위치 기준으로 이동 |
| RET_MatchTrayIcon_MouseMove_FromTarget_Center | RCT_TrayIconProcessNameMatch 에서 매칭된 TrayIcon 위치 기준으로 이동 |
| RET_CopyCurrentMousePointerSelItem_SysListView | 현재 마우스 포인터 SysListView32의 선택된 아이템 복사 |
| RET_CopyCurrentMousePointerAllItem_SysListView | 현재 마우스 포인터 SysListView32의 모든 아이템 복사 |
| RET_CopyCurrentMousePointerCursorItemText_SysListView | 현재 마우스 포인터 SysListView32의 모든 아이템 복사 |
| RET_Reset_Keyboard_Modifier_Context | Context 초기화 (이상 동작할때 사용) |
| RET_Pause_LightWeightHotKey | LWHK 비활성화 |
| RET_ChainRule_With_CheckCondition | Chain Rule (조건 실행) |
| RET_ChainRule_Skip_Condition_AlwaysExecute | Chain Rule (조건 없이 실행) |