Skip to content
조회 수 19029 추천 수 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
번호 분류 제목 날짜 조회 수
677 컴퓨터잡담 Mysql 에러메시지 2010.04.27 17550
676 컴퓨터잡담 mysql 재시작, 사용자 추가 명령어 1 2 2009.11.19 32229
675 컴퓨터잡담 mysql 접속불가시 재부팅 2009.11.24 12089
674 컴퓨터잡담 mysql 접속에러시 재부팅 하는 배치파일 2009.11.24 26693
673 컴퓨터잡담 MySQL 조율(튜닝)에 대해 2 2010.04.14 15827
672 컴퓨터잡담 MYSQL 최적화 2 2009.11.13 22447
671 Server mysql 테이블 손상시 #1146 - Table 해결방법 file 2016.07.17 8910
670 Server MYSQL 튜닝 이정도는 해야되지 않겠나? 2 file 2012.07.16 7991
669 컴퓨터잡담 Mysql) mysql mysql-bin.0000x 로그 기록설정방법(사용안함설정등) 2 2012.01.23 7844
668 컴퓨터잡담 mysqladmin 3 2009.11.19 14065
667 AutoHotKey Mysqld 프로세서 실시간 감시 2011.02.06 7611
666 HTMLPHPMSQL mysqli로 DB 검색 조회 2017.11.08 6900
665 컴퓨터잡담 MySQL을 위한 하드웨어 최적화(What one can and should optimize) 2 2010.04.06 13123
664 프로세스 npkcmsvc.exe 서비스 끄기 (엔프로텍트 nProtect) 1 3 2011.02.06 13327
663 컴퓨터잡담 nVIDIA GTX750Ti 드라이버 file 2019.02.19 6824
662 프로세스 NVSvc.exe 프로세스 삭제방법 1 2011.02.13 21652
661 AutoHotKey OnMessage() 3 2011.02.05 20463
660 컴퓨터잡담 PC를 자동으로 부팅시작 1 file 2021.10.10 4106
659 컴퓨터잡담 PC에 안드로이드 설치하기 2015.12.01 992
658 컴퓨터잡담 PC에 안드로이드 설치하기 1 file 2015.07.18 5442
Board Pagination Prev 1 ... 11 12 13 14 15 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소