Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Как скрыть иконку в системном трее?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Для начинающих] >> Как скрыть иконку в системном трее?
Имя
Сообщение << Старые топики   Новые топики >>
Как скрыть иконку в системном трее? - 2009-03-23 18:29:42.520000   
FENTAZY

Сообщений: 242
Оценки: 0
Присоединился: 2007-02-25 18:37:53.900000
В общем нужна как то скрыть иконку чтоб невидно было окна как в HiP то есть через bat, js, vbs и тд
вот нашол какойта ahk скрипт  тока не знаю как его съесть
Post #: 1
RE: Как скрыть иконку в системном трее? - 2009-03-24 12:51:41.250000   
Alex 111

Сообщений: 124
Оценки: 0
Присоединился: 2008-11-05 05:02:05.753333
Ссылка не работает. Кинь код сюда на форум посмотрим.
Post #: 2
RE: Как скрыть иконку в системном трее? - 2009-03-24 13:03:07.103333   
Sрam

Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
FENTAZY ссыль ты битую дал, скрипт здесь выложи, а там уже и есть его будим!
Post #: 3
RE: Как скрыть иконку в системном трее? - 2009-03-24 13:14:17.590000   
FENTAZY

Сообщений: 242
Оценки: 0
Присоединился: 2007-02-25 18:37:53.900000
вот скрипт

#NoTrayIcon
DetectHiddenWindows, On

^f12::RegExMatch(TrayIcons("punto.exe"), "(?&lt;=idn: )\d+", idn), HideTrayIcon(idn, bHide:=!bHide) ; скрыть/показать значок Punto Switcher
; ^f12::RegExMatch(TrayIcons(708), "(?&lt;=idn: )\d+", idn), HideTrayIcon(idn, bHide:=!bHide) ; скрыть/показать значок (вариант с PID'ом)
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", &amp;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", &amp;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", &amp;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", &amp;ni)
}

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
}
и еще
IconDetails := TrayIcons("Bitmeter.exe") ;
RegExMatch(IconDetails, "(?&lt;=idn: )\d+", idn) ;
HideTrayIcon(idn) ;

Вроде все сделал вписал свое приложение а оно не изчезает с панели може ктото знает другой способ
для Remote Administrator Control v3.3.1

ЗЫ по дефолту после стандартной установки регистрации приложение просто висит в процесах но когда переименуешь фаил чтоб поменять название процеса после перезагруски приложение запускается в панеле задач
Post #: 4
RE: Как скрыть иконку в системном трее? - 2009-03-24 13:27:20.940000   
Sрam

Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
quote:

HideTrayIcon(idn, bHide:=!bHide)

попробуй !bHide на bHide исправить, вроде должно помочь.8|
Post #: 5
RE: Как скрыть иконку в системном трее? - 2009-03-24 13:41:39.516666   
FENTAZY

Сообщений: 242
Оценки: 0
Присоединился: 2007-02-25 18:37:53.900000
Sрam
не помогло но спосибо за помощь
Post #: 6
RE: Как скрыть иконку в системном трее? - 2009-03-24 14:12:23.193333   
Zmaster

Сообщений: 930
Оценки: 0
Присоединился: 2007-02-09 19:02:43.500000
Можно накодить прогу, которая просто делает иконку невидимой. Я не буду пробовать писать код (нету времени), но дам ссылку на API для работы с иконками трея. Там есть функция, которая скрывает/показывает иконку:
http://www.rsdn.ru/article/winshell/shellicons.xml
Post #: 7
RE: Как скрыть иконку в системном трее? - 2009-03-24 17:21:29.250000   
FENTAZY

Сообщений: 242
Оценки: 0
Присоединился: 2007-02-25 18:37:53.900000
Zmaster
спосибо за помощь
Post #: 8
RE: Как скрыть иконку в системном трее? - 2009-03-24 17:28:00.923333   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
есть мысль, порыться в реестре, по аналогии с радмином:

quote:


Вот список ключей в реестре:
[HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\Param eters]


"DisableTrayIcon" - 0 - без иконки в трее





попробовать найти такой параметр у проги, если нет такого - попробовать создать

ЗЫЖ эксперименты, конечно, сначала надо проводить локально, если прокатит - скрипт пишется за 5 минут
Post #: 9
RE: Как скрыть иконку в системном трее? - 2009-03-24 20:15:44.766666   
FENTAZY

Сообщений: 242
Оценки: 0
Присоединился: 2007-02-25 18:37:53.900000
к сожалению там такова нет ) 
Post #: 10
Страниц:  [1]
Все форумы >> [Для начинающих] >> Как скрыть иконку в системном трее?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.