Skip to content
조회 수 19005 추천 수 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
번호 분류 제목 날짜 조회 수
317 컴퓨터잡담 DLL View dll 파일관리 및 정보확인 프로그램 file 2011.10.10 4379
316 컴퓨터잡담 AHK_L) SysListView321 컨트롤 내용 추출하기 2011.10.07 9893
315 컴퓨터잡담 VBA - 시트/셀, 엑셀 값만 복사하기! (VBA을 이용한 복사영역 조절) 2011.10.04 31415
314 컴퓨터잡담 엑셀 VBA 제어문의 종류 3 2011.10.04 10508
313 컴퓨터잡담 autohotkey - 변수리스트(Variables and Expressions) 모음 2011.09.30 11830
312 컴퓨터잡담 Excel VBA) 자료모으기 2011.09.28 11903
311 컴퓨터잡담 ExCEL VBA) 함수만들기 1 2011.09.25 13961
310 컴퓨터잡담 ExCEL VBA) 중복된 데이터 추출하기 4 2011.09.25 20196
309 컴퓨터잡담 ExCEL VBA) 파일을 열지않고 값 읽어오기 23 2011.09.25 20215
308 컴퓨터잡담 EXCEL) 매크로 공부하기 2011.09.25 12280
307 컴퓨터잡담 VBA를 이용한 엑셀 프로그래밍 1 2011.09.23 21508
306 컴퓨터잡담 DLL Injection - SetWindowsHookEx()함수 이용방법 1 2011.09.15 6512
305 컴퓨터잡담 안드로이드 어플 쉽게 만들기 2011.09.15 4101
304 컴퓨터잡담 툴바제작사이트 1 2011.09.15 4055
303 컴퓨터잡담 [윈도우7] 이 컴퓨터는 정품 Windows를 사용하고 있지 않습니다 해결방법 1 2011.09.12 12540
302 컴퓨터잡담 [윈도우proxy server]프록시 서버 구축하기 file 2011.09.06 14201
301 컴퓨터잡담 삼성, LG 여! 스마트폰의 창작기술로 아이폰을 점령하라! 2011.09.03 3642
300 컴퓨터잡담 안드로이드 OS 노트북에 설치하기 1 3 2011.09.03 8610
299 컴퓨터잡담 [php] 배열 순위구하기 2011.09.02 7028
298 컴퓨터잡담 [php] 2011.09.02 6233
Board Pagination Prev 1 ... 29 30 31 32 33 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소