powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Убрать значок из трея
25 сообщений из 113, страница 4 из 5
Убрать значок из трея
    #37294364
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

Да, ты прав!
Лучше поиграть в тупую стрелялку, чем напрячь последнюю извилину.
Твоё будущее - охранник.
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294366
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

моё будущее - инженер... наверно... пока не определился) в vb не силён, так как изучаю как хобби ровно пол года, не по профессии.
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294368
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кста я пытаюсь напрячь, но внедрение в чужой процесс меня убило. неужели нет простой функции для отправки трею сообщения о закрытии ярлыка по хэндлу этого чужого окна....
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294369
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

Получается, что херовое ты себе хобби выбрал:)
На этом откланиваюсь.
Извини если что.
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294370
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

всё норм и так 4 страницы нафлудили на сегодня хватит) приходи завтра поговорим о девушках, играх, может быть даже о программах успеем)
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294509
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero, так и не пойму
1 есть код для установления открытых окон, их количества и названия?
2 открытое окно это строго то что на панели задач имеется?
3 есть код для установления запущеных приложений, их количества и названия?
4 есть код для установления запущенных процессов, их количества и названия?
5 есть код для установления иконок в трее, их количества и названия?
если есть коды выложите пжл
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294552
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,
1 есть код для установления открытых окон их количества и названия
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=855294&msg=10749463
коднаходит и закрывает окно по куску его имени
2 в данном случае да. а вообще Shocker.ProКаждая кнопка - это окно, каждый текстбокс и т.п., у каждого свой хендл. Можешь запустить Spy++ из комплекта VB6 и наглядно все увидеть.
Когда ты запускаешь приложение, ты не создаешь окно. Кучу окон создает само приложение в результате своей работы.
3,4 есть код для установления запущеных процессов, но их затрагивать не нуно, т.к. приложение должно продолжать работать. +и так известно, что нужный процесс чужого притложения сейчас работает.
5 нет. есть для отправки\удаления иконки своего ехе(чуть выше по топику)
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294633
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 прога закидывает иконку в трей... другая должна эту иконку оттуда удалить... этот код, как я думал, должен удалять иконку чужого приложения из трея по имени(Form1). но.... ничего
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Type NOTIFYICONDATA
        cbSize As Long
        hwnd As Long
        uID As Long
        uFlags As Long
        uCallbackMessage As Long
        hIcon As Long
        szTip As String *  64 
    End Type
 Private Const NIM_DELETE = &H2
Private NID As NOTIFYICONDATA
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

 Private g_nidSysTray As NOTIFYICONDATA 'Sys tray user defined data type

Private Sub Form_Load()
NID.hwnd = FindWindow(vbNullString, "Form1")
Shell_NotifyIcon NIM_DELETE, NID
End Sub
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294639
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в инете ещё предложили способ авторВозможно, повесить хук на вызов функции Shell_NotifyIcon и узнать, с какими параметрами иконка кладется в трей?
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294641
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

Код: plaintext
1.
2.
3.
4.
5.
6.
 Dim ret As Long
    ret = FindWindow("Shell_TrayWnd", "")
    ret = FindWindowEx(ret,  0 , "TrayNotifyWnd", vbNullString)
    ret = FindWindowEx(ret,  0 , "SysPager", vbNullString)
    ret = FindWindowEx(ret,  0 , "ToolbarWindow32", vbNullString)
    ret = SendMessage(ret, TB_BUTTONCOUNT,  0 ,  0 )
    MsgBox ret
Получишь количество иконок в трее.
Далее эти иконки надо перебрать и удалить нужную:)
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294652
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

количество иконок в трее 0
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294654
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на других форумах по другим языкам вычитал, что ещё нуно знать id икнки в трее
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=855873&msg=10762816
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294656
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а узнать uID можно только внедрившись в процесс эксплорера
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294659
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,
это у тебя 0 возвращает?
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294662
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

теперь 13... с этим кодом 0
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hWnd As Long, _
     ByVal wMsg As Long, _
     ByVal wParam As Long, _
     ByRef lParam As Any) _
    As Long
Private Sub Form_Load()
Dim ret As Long
    ret = FindWindow("Shell_TrayWnd", "")
    ret = FindWindowEx(ret,  0 , "TrayNotifyWnd", vbNullString)
    ret = FindWindowEx(ret,  0 , "SysPager", vbNullString)
    ret = FindWindowEx(ret,  0 , "ToolbarWindow32", vbNullString)
    ret = SendMessage(ret, TB_BUTTONCOUNT,  0 ,  0 )
    Text1.Text = ret
End Sub
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294666
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

Далее нужно выделить блок памяти нужного размера в контексте процесса-владельца трея.
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294667
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

подожди я с предыдущим не разобрался) как должен выглядеть код?. у мя 0 показывает
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294668
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

эта константа TB_BUTTONCOUNT определена у тебя?
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294669
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

Private Const WM_USER = &H400
Private Const TB_BUTTONCOUNT = (WM_USER + 24)
тепреь работает...
так... выделить блок памяти нужного размера в контексте процесса-владельца трея...
зачем?
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294673
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы внедриться в этот процесс?
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294677
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

что бы получить сведения о иконке и удалить нужную
Код: plaintext
ret = SendMessage(ret, TB_DELETEBUTTON,  1 ,  0 )
это удалит иконку с № 1.
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294678
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

т.к. моя прогам сама запускаетп осторонее приложение то можно просто кикнуть последнюю иконку? или порядок иконок не совпадает с датой их запуска?
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294681
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

можно и на авось понадеятся, но я бы не стал
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294682
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtimBelowZero,

можно и на авось понадеятся, но я бы не стал
тогда просто узнать количество иконок, кикнуть иконку с этим номером... а для надёжности запускать посторонюю прогу в тот момент, когда другие проги не мешают. т.е. не при включении компа, да?
...
Рейтинг: 0 / 0
Убрать значок из трея
    #37294685
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

нет.
Надо надо пребрать все иконки, по id иконки посмотреть какому процессу пренадлежит иконка и если это нужный процесс то убрать иконку.
...
Рейтинг: 0 / 0
25 сообщений из 113, страница 4 из 5
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Убрать значок из трея
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]