Конференция "WinAPI" » убрать иконку приложения... [D7, WinXP]
 
  • guest (12.01.14 19:21) [0]
    можно ли (если да, то как) программно убрать иконку стороннего приложения из панели задач рядом с часиками в windows xp\7 ? т.е. чтобы приложение работало, но иконочку рядом с часиками windwos не показывало.
  • guest (13.01.14 05:35) [1]
    речь о систем трее,

    видел этот пример:
    ShowWindow(FindWindowEx(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'TrayNotifyWnd', nil), 0, 'TrayClockWClass', nil), SW_HIDE);

    но проблемка осложняется тем, что судя по process explorer, у этого процесса нет окон, т.е. у меня есть только его pid, filename.
  • sniknik © (13.01.14 08:12) [2]
    > у этого процесса нет окон
    тогда просто проведи мышкой поверх иконки... раз она "сломана" отсутствием родительского окна(хендла) система сама ее уберет. так всегда бывает, любой кто хоть раз "пихал в трей" знает ... не задашь TNotifyIconData.Wnd - иконка "слетит".
  • sniknik © (13.01.14 08:23) [3]
    http://rouse.drkb.ru/winapi.php#fwsystrayinfo
    для xp подойдет (на 7ке, там где иконки прячутся в отдельное оно возможно не работает... запустил, получил не совсем адекватные результаты, разбираться в причинах не стал).
  • Dimka Maslov © (14.01.14 10:05) [4]
    Куда катится этот мир. Сначала была проблема запудзырить иконку теперь убрать...
  • guest (14.01.14 13:56) [5]
    процесс иконки у меня есть))  но вот почему якобы у процесса нет окон и как таким образом регистрируется иконка - я не понимаю))))

    процесс, собственно, вот это известное в определенных кругах заброшенное приложение... автор не отвечает((   http://http-tunnel.sourceforge.net/
  • Dimka Maslov © (14.01.14 14:06) [6]
    Окно - это не квадратик на экране, а функция взаимодействия приложения с операционной системой посредством приёма сообщений и изменения своего состояния в ответ на полученное сообщение. Так что окна может и не видно, но оно есть. Как суслик.  В дельфи такие окна создаются при помощи функции AllocateHandle.
  • istok20 © (14.01.14 14:30) [7]

    > Dimka Maslov ©   (14.01.14 14:06) [6]


    это я понял, но как мне это окно найти?) process explorer его окон не показывает(  писать свою прогу для энумирации всех окон системы и выцепить окна этого процесса?
  • Dimka Maslov © (14.01.14 15:14) [8]
    Spy++ это называется. Идёт вместе с утилитами для вижуал-студии. Ищет все окна в системе всех процессов и даже может перехватывать сообщения.
  • Rouse_ © (17.02.14 14:02) [9]

    > sniknik ©   (13.01.14 08:23) [3]
    > http://rouse.drkb.ru/winapi.php#fwsystrayinfo
    > для xp подойдет (на 7ке, там где иконки прячутся в отдельное
    > оно возможно не работает... запустил, получил не совсем
    > адекватные результаты, разбираться в причинах не стал).

    на 32 битной должно работать, на 64 битной ОС, конечно нет, бо там размеры структур другие.
 
Конференция "WinAPI" » убрать иконку приложения... [D7, WinXP]
Есть новые Нет новых   [118463   +19][b:0][p:0]