Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нескрываемая иконка в области уведомления? 
:(
    Опции темы
DarkDragon
Дата 24.2.2009, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: нет
Всего: 8



Всем добрый день!

Вопрос такой: нужно программным методом задать поведение иконки в области уведомления (системный трей). Бывает три вида поведения: 1 - скрывать, если не активный, 2 - всегда скрывать, 3 - всегда отображать. Так вот как это сделать?

P. S. Метод с обновлением (чтобы иконка не скрывалась) меня не интересует smile
PM MAIL   Вверх
BorisVorontsov
Дата 24.2.2009, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 4
Всего: 10



Думаю, никак. По крайней мере какого-нибудь сообщения или Shell-функции я не нашел. И вообще, что за наглость, посягать на установки пользователя? smile Раз он решил выставить что-то для твоей иконки, значит, ему так надо.


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
DarkDragon
Дата 24.2.2009, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: нет
Всего: 8



Иногда пользователю надо помочь, а то не все пользователи умеют пользоваться настройками уведомлений smile

Цитата(BorisVorontsov @  24.2.2009,  11:30 Найти цитируемый пост)
Думаю, никак.

Нет вы не правы. Microsoft далеко не все открывает в своей системе. К тому же как это их софт: Virtual PC сразу же ставить себя как "всегда отображать"? Еще как можно, просто как то хитро они это реализовали. Может сообщение какое-то нужно отправить TrayNotifyWnd? Или еще чего нибудь. Система же может изменять эти состояния, значить должен быть программный интерфейс.
PM MAIL   Вверх
BorisVorontsov
Дата 24.2.2009, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 4
Всего: 10



Если эта возможность не документирована, то её, можно сказать, нет smile А если ты её каким-то образом нашел и используешь, это уже называется грязным хаком, и MS не гарантирует, что приложения, использующие грязные хаки (недокументированные возможности), будут работать не то, что в других ОС, а даже в этой, но с апдейтами/SP.


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
DarkDragon
Дата 24.2.2009, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: нет
Всего: 8



Да мелкософт, вообще мало что гарантирует smile К тому же есть понятия апдейта софта. Так что мне нужен способ гарантирующий работу на линейках 2000/NT/XP. Остальные не интересуют. Если можно сказать что её нет, значить её вообще не должно быть. К тому же кроме Virtual PC, к примеру еще WinAMP, SoundMAX, TechniSat DVB,  и еще хз сколько другого софта используют данную фишку. Так что не документированность, еще не повод не использовать функции.
PM MAIL   Вверх
BorisVorontsov
Дата 24.2.2009, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 4
Всего: 10



Цитата(DarkDragon @  24.2.2009,  16:07 Найти цитируемый пост)
Если можно сказать что её нет, значить её вообще не должно быть.


Замечательный софизм smile Я его, наверно, запишу

Цитата(DarkDragon @  24.2.2009,  16:07 Найти цитируемый пост)
К тому же кроме Virtual PC, к примеру еще WinAMP, SoundMAX, TechniSat DVB,  и еще хз сколько другого софта используют данную фишку.


Вот только что запустил Winamp и проверил, у его иконки точно такая же настройка, как и у остальных. Может, у тебя какой-то особенный Winamp?


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
DarkDragon
Дата 24.2.2009, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: нет
Всего: 8



Цитата(BorisVorontsov @  24.2.2009,  17:14 Найти цитируемый пост)
Замечательный софизм smile Я его, наверно, запишу

Запишите.

Цитата(BorisVorontsov @  24.2.2009,  17:14 Найти цитируемый пост)
Вот только что запустил Winamp и проверил, у его иконки точно такая же настройка, как и у остальных. Может, у тебя какой-то особенный Winamp? 

Возможно.
PM MAIL   Вверх
jonie
Дата 24.2.2009, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



The dwState and dwStateMask members ...
undocumented    0x20000000    valid only in dwStateMask and only if dwMessage is NIM_ADD; set “always show” for icon if no state persists from registry

взято отсюда: 
http://www.geoffchappell.com/studies/windo...ifyicondata.htm

в кеше гугла найдется)
кеш гугла


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
DarkDragon
Дата 24.2.2009, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: нет
Всего: 8



jonie, 
спасибо! будем проверять smile
PM MAIL   Вверх
Dem_max
Дата 25.2.2009, 05:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 16
Всего: 39



Цитата

undocumented    0x20000000

Что значит недокументирована, очень даже документирована, просто надо читать MSDN
Цитата

dwState
Windows 2000 (Shell32.dll version 5.0) and later. The state of the icon. There are two flags that can be set independently.
NIS_HIDDEN
0x00000001. The icon is hidden.
NIS_SHAREDICON
0x00000002. The icon is shared.
dwStateMask
Windows 2000 (Shell32.dll version 5.0) and later. A value that specifies which bits of the dwState member are retrieved or modified. The possible values are the same as those for dwState. For example, setting this member to NIS_HIDDEN causes only the item's hidden state to be retrieved while the icon sharing bit is ignored regardless of its value.

Пробовал я, только почемуто не работает.


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
jonie
Дата 25.2.2009, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



Dem_max ну никто не читал, пологаясь на автора )


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
BorisVorontsov
Дата 4.3.2009, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 4
Всего: 10



Цитата(jonie @  24.2.2009,  21:38 Найти цитируемый пост)
взято отсюда:


Может, все-таки отсюда?

Цитата(Dem_max @  25.2.2009,  05:23 Найти цитируемый пост)
Что значит недокументирована, очень даже документирована, просто надо читать MSDN


А ты 0x20000000 от 0x00000002 не отличаешь?


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0768 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.