Страница: 1 |
Не могу найти Как можно запихнуть ярлык (любой) в system tray (около часов)? Помогите пожалуйста
Иконку что-ли? Ну ты в библиотеке кодов смотрел? Я имел ввиду другой программы (например блокнота Notepad).Можно или нет? Где то в разделе Примеры, был примерчик по запихиванию туды всякой фигни, вплоть до текстового окна. Может поможет? Покопайся там... Дык по-ходу так и делается... Берется узнается процесс, узнаем путь, забираем первую иконку из exe файла, а если нет, то можно свою назначить, добавляем иконку, запоминаем это (например в массив добавляем данные о окне, пути, и т.д.) Далее попросту посылаем окну мессадж свернуть/скрыть/развернуть (можно много напридумывать) И уже далее попросту сидим и следим за кликами на иконке. Вот такой код добавления иконки в трей: Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Integer Public Function SetTrayIcon(Mode As Long, hWnd As Long, Icon As Long, tip As String) As Long Использование: SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "TEST" Я так понял мне вместо Me.hWnd нужно запихнуть туда например - hWnd Блокнота (Notepad.ехе ).А как получить этот hWnd?? Я работаю в том направлении или нет?Может я в чем то ошибаюсь? На dklab.ru гдето валялась прога для этого на асме... Где точно сказать не могу... Но если хочешь могу скинуть на мыло программу... Искходников нет...(у меня Дык, блин, FindWindow даст тебе этот хэндл! >Но если хочешь могу скинуть на мыло программу... Нет спасибо. >Дык, блин, FindWindow даст тебе этот хэндл! Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Да? А что мне писать в lpWindowName? Страница: 1 |
Вопрос: Вопрос???
Добавлено: 06.01.04 22:42
Автор вопроса:
sir_Alex
ответ на такой вопрос
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа: Иван
Администратор
ICQ: 147688925
Вопросов: 24
Ответов: 708
Web-сайт:
Профиль | | #1
Добавлено: 06.01.04 23:57
Номер ответа: 2
Автор ответа: sir_Alex
Вопросов: 7
Ответов: 8
Профиль | | #2
Добавлено: 07.01.04 00:43
Номер ответа: 3
Автор ответа: Иван
Администратор
ICQ: 147688925
Вопросов: 24
Ответов: 708
Web-сайт:
Профиль | | #3
Добавлено: 07.01.04 00:56
Номер ответа: 4
Автор ответа: Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #4
Добавлено: 07.01.04 12:13
В пинципе, можно попробовать... Просто запихать иконку в трэй, а при
даблклике вместо открытия своей формы сделать вызов этой чужой
прораммы.
Номер ответа: 5
Автор ответа: sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 07.01.04 12:56
Как только клик происходит, отсчитываем из массива данные и применяем действие на опр. окошке...
Номер ответа: 6
Автор ответа: sir_Alex
Вопросов: 7
Ответов: 8
Профиль | | #6
Добавлено: 07.01.04 13:50
Public Const NIM_ADD = 0
Public Const NIM_MODIFY = 1
Public Const NIM_DELETE = 2
Public Const NIF_MESSAGE = 1
Public Const NIF_ICON = 2
Public Const NIF_TIP = 4
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
Dim nidTemp As NOTIFYICONDATA
nidTemp.cbSize = Len(nidTemp)
nidTemp.hWnd = hWnd
nidTemp.uID = 0&
nidTemp.uFlags = NIF_ICON Or NIF_TIP
nidTemp.uCallbackMessage = 0&
nidTemp.hIcon = Icon
nidTemp.szTip = tip & Chr$(0)
SetTrayIcon = Shell_NotifyIconA(Mode, nidTemp)
End FunctionПрограмму (для добавления в трей) собираюсь выбирать с помощью стандартного диалога - открыть файл.
Помогите решить
задачку!
Номер ответа: 7
Автор ответа: Doomsday
Вопросов: 30
Ответов: 54
Профиль | | #7
Добавлено: 09.01.04 01:39
)
Номер ответа: 8
Автор ответа: Dima22
Вопросов: 5
Ответов: 57
Профиль | | #8
Добавлено: 09.01.04 19:12
Номер ответа: 9
Автор ответа: sir_Alex
Вопросов: 7
Ответов: 8
Профиль | | #9
Добавлено: 10.01.04 14:34
Номер ответа: 10
Автор ответа: shuffle
Администратор
ICQ: 201502381
Вопросов: 15
Ответов: 737
Профиль | | #10
Добавлено: 10.01.04 21:38
>Да? А что мне писать в lpWindowName?
vbNullString