Skip to content
조회 수 19042 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

[ahk] 다른 프로그램의 트레이 아이콘을 숨기기

;http://www.autohotkey.com/forum/topic36235.html 

Ok here is the solution: 
Download the AHK script TrayIcon.ahk. 
You can find it here: 
http://www.autohotkey.com/forum/topic17314.html 

It has many functions to work with TrayIcons. 
If you want to hide "yourapp.exe" edit that script. 
Cut off this: 
MsgBox % TrayIcons() 

And place this instead of it: 
RegExMatch(TrayIcons("yourapp.exe"), "(?<=idn: )\d+", idn) ; This finds out the ID of the Tray Icon of "yourapp.exe" 
HideTrayIcon(idn) ; This hides that icon :D 

This works to me. 


;http://www.autohotkey.com/forum/topic41097.html



;실전예제

;알약(AYAgent.aye)으로 테스트 완료 
;"AYAgent.aye"대신 해당 트레이 아이콘과 연결되어 있는 프로세스를 넣어주시면 됩니다. 

#NoTrayIcon 
DetectHiddenWindows, On 
RegExMatch(TrayIcons("AYAgent.aye"), "(?<=idn: )\d+", idn) 
HideTrayIcon(idn) 
Return 

TrayIcons(sExeName = "") 

WinGet, pidTaskbar, PID, ahk_class Shell_TrayWnd 
hProc:= DllCall("OpenProcess", "Uint", 0x38, "int", 0, "Uint", pidTaskbar) 
pProc:= DllCall("VirtualAllocEx", "Uint", hProc, "Uint", 0, "Uint", 32, "Uint", 0x1000, "Uint", 0x4) 
idxTB:= GetTrayBar() 
SendMessage, 0x418, 0, 0, ToolbarWindow32%idxTB%, ahk_class Shell_TrayWnd  ; TB_BUTTONCOUNT 
Loop, %ErrorLevel% 

SendMessage, 0x417, A_Index-1, pProc, ToolbarWindow32%idxTB%, ahk_class Shell_TrayWnd  ; TB_GETBUTTON 
VarSetCapacity(btn,32,0), VarSetCapacity(nfo,32,0) 
DllCall("ReadProcessMemory", "Uint", hProc, "Uint", pProc, "Uint", &btn, "Uint", 32, "Uint", 0) 
iBitmap := NumGet(btn, 0) 
idn := NumGet(btn, 4) 
Statyle := NumGet(btn, 8) 
If dwData := NumGet(btn,12) 
iString := NumGet(btn,16) 
Else dwData := NumGet(btn,16,"int64"), iString:=NumGet(btn,24,"int64") 
DllCall("ReadProcessMemory", "Uint", hProc, "Uint", dwData, "Uint", &nfo, "Uint", 32, "Uint", 0) 
If NumGet(btn,12) 
hWnd := NumGet(nfo, 0) 
, uID := NumGet(nfo, 4) 
, nMsg := NumGet(nfo, 8) 
, hIcon := NumGet(nfo,20) 
Else hWnd := NumGet(nfo, 0,"int64"), uID:=NumGet(nfo, 8), nMsg:=NumGet(nfo,12) 
WinGet, pid, PID,              ahk_id %hWnd% 
WinGet, sProcess, ProcessName, ahk_id %hWnd% 
WinGetClass, sClass,          ahk_id %hWnd% 
If !sExeName || (sExeName = sProcess) || (sExeName = pid) 
VarSetCapacity(sTooltip,128), VarSetCapacity(wTooltip,128*2) 
, DllCall("ReadProcessMemory", "Uint", hProc, "Uint", iString, "Uint", &wTooltip, "Uint", 128*2, "Uint", 0) 
, DllCall("WideCharToMultiByte", "Uint", 0, "Uint", 0, "str", wTooltip, "int", -1, "str", sTooltip, "int", 128, "Uint", 0, "Uint", 0) 
, sTrayIcons .= "idx: " . A_Index-1 . " | idn: " . idn . " | Pid: " . pid . " | uID: " . uID . " | MessageID: " . nMsg . " | hWnd: " . hWnd . " | Class: " . sClass . " | Process: " . sProcess . "`n" . "  | Tooltip: " . sTooltip . "`n" 

DllCall("VirtualFreeEx", "Uint", hProc, "Uint", pProc, "Uint", 0, "Uint", 0x8000) 
DllCall("CloseHandle", "Uint", hProc) 
Return sTrayIcons 


RemoveTrayIcon(hWnd, uID, nMsg = 0, hIcon = 0, nRemove = 2) 

NumPut(VarSetCapacity(ni,444,0), ni) 
NumPut(hWnd , ni, 4) 
NumPut(uID  , ni, 8) 
NumPut(1|2|4, ni,12) 
NumPut(nMsg , ni,16) 
NumPut(hIcon, ni,20) 
Return DllCall("shell32\Shell_NotifyIconA", "Uint", nRemove, "Uint", ∋) 


HideTrayIcon(idn, bHide = True) 

idxTB := GetTrayBar() 
SendMessage, 0x404, idn, bHide, ToolbarWindow32%idxTB%, ahk_class Shell_TrayWnd  ; TB_HIDEBUTTON 
SendMessage, 0x1A, 0, 0, , ahk_class Shell_TrayWnd 


DeleteTrayIcon(idx) 

idxTB := GetTrayBar() 
SendMessage, 0x416, idx - 1, 0, ToolbarWindow32%idxTB%, ahk_class Shell_TrayWnd  ; TB_DELETEBUTTON 
SendMessage, 0x1A, 0, 0, , ahk_class Shell_TrayWnd 


MoveTrayIcon(idxOld, idxNew) 

idxTB := GetTrayBar() 
SendMessage, 0x452, idxOld - 1, idxNew - 1, ToolbarWindow32%idxTB%, ahk_class Shell_TrayWnd ; TB_MOVEBUTTON 


GetTrayBar() 

ControlGet, hParent, hWnd,, TrayNotifyWnd1  , ahk_class Shell_TrayWnd 
ControlGet, hChild , hWnd,, ToolbarWindow321, ahk_id %hParent% 
Loop 

ControlGet, hWnd, hWnd,, ToolbarWindow32%A_Index%, ahk_class Shell_TrayWnd 
If  Not hWnd 
Break 
Else If hWnd = %hChild% 

idxTB := A_Index 
Break 


Return idxTB 
}







로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
65 AutoHotKey Autohotkey 브라우저 제어 테스트 file 2015.01.26 8248
64 AutoHotKey ahk) Send an email 메일발송하기 2018.01.17 9528
63 AutoHotKey Autohotkey] 키보드 후킹 테스트 file 2018.07.07 9739
62 AutoHotKey Ahk) ip할당 진단프로그램 file 2011.12.26 12152
61 AutoHotKey ahk) autohotkey controlgettext 이름을 마우스커서에 졸졸 따라다니게 하기 file 2014.04.01 12341
60 AutoHotKey 부팅완료 메시지 프로그램 file 2011.12.17 12740
59 AutoHotKey 웹페이지의 내용을 변수에 넣기 2011.02.17 14506
58 AutoHotKey 클릭해서 새창열리는 페이지에 클릭 또는 값설정 가능한가요? 2011.02.22 14748
57 AutoHotKey [ahk]웹페이지가 띄워진 창 내용을 추출하여 로딩이 완료되었는지를 확인할 수 있는 소스 2011.02.25 14760
56 AutoHotKey [ahk] 레지스터리 등록여부 확인 후 없으면 추가시키기 2 1 2011.02.14 14982
55 AutoHotKey autohotkey) 파일리스트 가져오기 3 2012.11.26 15079
54 AutoHotKey autohotkey) 맥어드레스 추출 2 2011.12.21 15097
53 AutoHotKey autohotkey) 네 코드를 보여, 내가 당신에게서 배우고 싶어요 1 2012.01.08 15149
52 AutoHotKey autohotkey) 웹페이지의 프레임 내용보기 & 클릭하기 2011.11.29 15164
51 AutoHotKey [AHK_B&AHK_L] 익스플로러 HTML 문서정보 알아내기(IE HTML Element Spy) 2011.08.08 15172
50 AutoHotKey autohotkey)매월 1일의 요일 구하기 1 2013.01.27 15303
49 AutoHotKey ahk로 만든 파일을 exe로 컴파일 한 후 실행시킬때 변수를 임의 1 1 2011.02.24 15363
48 AutoHotKey autohotkey_L Object 2011.02.21 15408
47 AutoHotKey UrlDownloadToVar() 1 2011.02.09 15473
46 AutoHotKey Autohotkey + mypeople(마이피플) 메시지 전송 1 2013.03.12 15483
Board Pagination Prev 1 2 3 4 Next
/ 4

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소