스크립트에 대한 설명:
Tooltip을 이용해서 현재 시스템에 실행중인 응용 프로그램을 보여주고
특정 프로그램 윈도우를 활성하거나 윈도우를 닫는 Script 입니다.
제 시스템이 조금 느려서 BlockInput Command를 통해서 User Input이
다른 응용 프로그램으로 가는 것을 방지했습니다.
혹시 불편하시면 BlockInput Command를 지우시면 됩니다.
언젠가 ImMBR님이 질문과 답변 게시판에 올려주신 답변 글을 보고
힌트를 얻어서 한번 만들어 보았습니다.
2주 전쯤 연습 삼아 만들어본 Script 인데
많이 허접하지만 가입 기념으로 하나 올려봅니다.
너그럽게 봐주십시오.
<--------------------------------------------- AHK 스크립트 내용 --------------------------------------------->
/*
Tooltip을 이용해서 현재 시스템에 실행중인 응용 프로그램 정보를 보여주고
특정 프로그램 윈도우를 활성하거나 윈도우를 닫는 Script입니다.
제 시스템이 조금 느려서 BlockInput Command를 통해서 User Input이
다른 응용 프로그램으로 가는 것을 방지했습니다.
혹시 불편하시면 BlockInput Command를 지우시면 됩니다.
Script By NewJung
*/
CoordMode, Tooltip, Screen
CoordMode, Mouse, Screen
F12:: ;;;;;;;;;;;;;;;;;;;;;;;; 윈도우 할성 Hotkey
TipHead = 윈도우 활성 : `n활성을
Gosub, WinInfo
If Line is Not Space
WinActivate, %Line%
Return
^F12:: ;;;;;;;;;;;;;;;;;;;;;;;; 윈도우 종료 Hotkey
TipHead = 윈도우 종료 :`n종료를
Gosub, WinInfo
Send {Ctrl Up}
If Line is Not Space
WinClose, %Line%
Return
WinInfo: ;;;;;;;;;;;;;;;;;;;;;;;; Tooltip Function Begins
List =
VisibleWin =
Num =
SelLine =
Line =
WinGet, TotalWin , List ;;;;;;;;;;;;;;;;;;;;;;;; Get Active Program Info
Loop,%TotalWin%
{
TempWin:=TotalWin%A_Index%
WinGetTitle, Title, ahk_id %TempWin%
If Title is Space
Continue
Else
{
VisibleWin++
List=%List%%VisibleWin%: %Title%`n
}
}
BLine = ________________________________________________________________________________________________________
Msg = ;;;;;;;;;;;;;;;;;;;;;;;; Result Msg
(
원하시는 프로그램의 번호를 입력한 후 Enter 키를 누르십시오.
Exit을 원하시면 ESC 키를 누르십시오.
%Bline%
%List%
%Bline%
)
StringSplit, ListArray, List, `n, ;;;;;;;;;;;;;;;;;;;;;;;; Save Program List
MouseMove, 0, 0, 0
BlockInput, On
Tooltip, %TipHead% %Msg%선택한 번호 : %Num% 선택한 프로그램 : %SelLine%, 0, 0
WinGetPos, TTX,TTY,TW,TH, ahk_class tooltips_class32
Tooltip,
TX := ( A_ScreenWidth / 2 ) - ( TW / 2 ) ;;;;;;;;;;;;;;;;;;;;;;;; Center Align Tooltip
TY := ( A_ScreenHeight / 2 ) - ( TH / 2 )
Loop ;;;;;;;;;;;;;;;;;;;;;;;; Display Program List and Get User Input
{
Tooltip, %TipHead% %Msg%선택한 번호 : %Num% 선택한 프로그램 : %SelLine%, %TX%, %TY%
Input, NumTemp, L1, {Enter}{BS}{Escape}
If NumTemp is Not Number
SelLine = 입력하신 키는 숫자가 아닙니다.
If NumTemp is Number
Num = %Num%%NumTemp%
If ErrorLevel = EndKey:Enter ;;;;;;;;;;;;;;;;;;;;;;;; Error Trapping
Break
Else If ErrorLevel = EndKey:BackSpace
StringTrimRight, Num, Num, 1
Else If ErrorLevel = EndKey:Escape
{
BlockInput, Off
Tooltip,
Return
}
If Num is Number
{
Line := ListArray%Num%
StringTrimLeft, SelLine, Line, 3
}
If (Num > VisibleWin)
SelLine = 입력하신 번호는 프로그램 리스트에 존재하지 않습니다.
}
Tooltip,
BlockInput, Off
NumLen := StrLen(Num) ;;;;;;;;;;;;;;;;;;;;;;;; End Task
If ( NumLen = 0 )
{
Msgbox, 48, 알림, 번호를 입력하지 않았습니다.,3
Return
}
Else If (NumLen = 1)
StringTrimLeft, Line, Line, 3
Else
StringTrimLeft, Line, Line, 4
If (Num > VisibleWin)
If Num is Number
Msgbox, 48, 알림, 입력하신 번호는 프로그램 리스트에 존재하지 않습니다.,3
Return