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
번호 분류 제목 날짜 조회 수
27 AutoHotKey [AHK_B&AHK_L] 익스플로러 HTML 문서정보 알아내기(IE HTML Element Spy) 2011.08.08 15160
26 AutoHotKey autohotkey) 웹페이지의 프레임 내용보기 & 클릭하기 2011.11.29 15147
25 AutoHotKey autohotkey) 네 코드를 보여, 내가 당신에게서 배우고 싶어요 1 2012.01.08 15114
24 AutoHotKey autohotkey) 맥어드레스 추출 2 2011.12.21 15082
23 AutoHotKey autohotkey) 파일리스트 가져오기 3 2012.11.26 14986
22 AutoHotKey [ahk] 레지스터리 등록여부 확인 후 없으면 추가시키기 2 1 2011.02.14 14977
21 AutoHotKey [ahk]웹페이지가 띄워진 창 내용을 추출하여 로딩이 완료되었는지를 확인할 수 있는 소스 2011.02.25 14748
20 AutoHotKey 클릭해서 새창열리는 페이지에 클릭 또는 값설정 가능한가요? 2011.02.22 14724
19 컴퓨터잡담 IE 훅킹 혹은 가로채기. 강좌 2 2011.12.17 14604
18 AutoHotKey 웹페이지의 내용을 변수에 넣기 2011.02.17 14493
17 컴퓨터잡담 Ahk Standard Library Collection, 2010 Sep (+Gui) ~ Libs: 100 3 2011.10.11 14190
16 컴퓨터잡담 [AHK] COM Standard Library 1 1 2011.07.28 13588
15 컴퓨터잡담 [AHK] AutoHotkey_N, AutoHotkey.dll 1 2011.07.28 13563
14 컴퓨터잡담 AHK & my Address of Pointer and my Offset 2011.10.11 13184
13 AutoHotKey 부팅완료 메시지 프로그램 file 2011.12.17 12720
12 AutoHotKey ahk) autohotkey controlgettext 이름을 마우스커서에 졸졸 따라다니게 하기 file 2014.04.01 12207
11 AutoHotKey Ahk) ip할당 진단프로그램 file 2011.12.26 12122
10 컴퓨터잡담 autohotkey - 변수리스트(Variables and Expressions) 모음 2011.09.30 11830
9 [Docs]스프레드시트 스프레드시트 autohotkey html gmail 스마트폰 이용하여 핑로스 즉시 알림받기 file 2018.01.25 10579
8 컴퓨터잡담 AHK_L) SysListView321 컨트롤 내용 추출하기 2011.10.07 9893
Board Pagination Prev 1 2 3 4 5 Next
/ 5

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소