Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Консультации по функциям WinAPI


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Орловский Дмитрий
Статус: Советник
Рейтинг: 6986
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Профессор
Рейтинг: 3778
∙ повысить рейтинг »
CradleA
Статус: Бакалавр
Рейтинг: 2623
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / WinAPI

Номер выпуска:598
Дата выхода:26.01.2012, 18:00
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:173 / 66
Вопросов / ответов:3 / 6

Консультация # 15529: Здравствуйте, уважаемые эксперты. Возникло у меня сразу несколько вопросов: 1. Просмотрел много всяких сайтов, но так и не нашел простейшего примера, как на WinAPI добавить/удалить/изменить ключ реестра. 2. Есть следующая задача: в SysTray есть иконка некой программы, при нажатии на которую правой кнопкой мыши появляется popupmenu. ...


Консультация # 58426: Как через CreateWindowEx создать модальное окно (не диалоговое)? Т.е. чтобы в то время когда окно открыто, другие окна программы не получали фокус. .
Консультация # 60584: Что такое «callback functions». Спасибо. (Обясните, пожалуйста, с помощью примерами)....

Консультация # 15529:

Здравствуйте, уважаемые эксперты.
Возникло у меня сразу несколько вопросов:
1. Просмотрел много всяких сайтов, но так и не нашел простейшего примера, как на WinAPI добавить/удалить/изменить ключ реестра.
2. Есть следующая задача: в SysTray есть иконка некой программы, при нажатии на которую правой кнопкой мыши появляется popupmenu. мне нужно программно открыть это меню, нажать определенный пункт этого меню, внести изменения в открывшемся окне, закрыть окно нажатием кнопки "ОК". в общем хотелось бы узнать, как программно управлять чужим окном и иконками из sysTray.
3. как перезагрузить компьютер из моей программы.
Предпочтительно решать все вопросы на WinAPI, поскольку приложение которое мне необходимо написать должно быть консольным.
Как вариант ответа на такой обширный вопрос, прошу присылать ссылки на какие-либо ресурсы содержащие информацию подобного характера.
Заранее спасибо за ответы.

Дата отправки: 22.12.2004, 15:06
Вопрос задал: Вадим
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Gibbel (Мастер-Эксперт):

Здравствуйте, Вадим!
1. Все подробнейшим образом описано в MSDN (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/registry.asp)
2. Каждая иконка в System Tray связана с каким-либо окном. Соответственно, для эмуляции событий, связанных с иконкой, вам нужно посылать соответствующие сообщения этому окну. Кстати, для эмуляции нажатия на пункт меню совсем не обязательно отображать это меню, достаточно просто послать сообщение WM_COMMAND с ID этого пункта меню.
Далее, вам необходимо будет найти открывшееся окно функцией FindWindow(), а затем занести все необходимые данные функцией SetDlgItemText() или аналогичными. Для эмуляции клика на кнопку посылаем то же сообщение WM_COMMAND.
Скорее всего, вам потребуются дополнительные данные о приложении, с которым вы работаете. Для этого рекомендую воспользоваться Spy++ от Microsoft или же WinSight от Borland (последняя мне кажется более удобная, но, как говорится, на вкус и цвет...).
3. Посмотри пример на www.sysinternals.com.

Консультировал: Gibbel (Мастер-Эксперт)
Дата отправки: 22.12.2004, 16:04
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 58426:

Как через CreateWindowEx создать модальное окно (не диалоговое)?
Т.е. чтобы в то время когда окно открыто, другие окна программы не получали фокус.

Дата отправки: 10.10.2006, 19:17
Вопрос задал: Bcd
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Bob Johnson (Мастер-Эксперт):

Здравствуйте, Bcd!
модальное окно - это заслуга не функции CreateWindowEx.
модальное окно создается совершенно аналогично обычному, но перед тем как вывести его на экран, родительское окно disable\'ится функцией EnableWindow. После исчезновения модального окна с экрана, родительское окно enable\'ится с помощью той же функции.

если ты пишешь на С++ и используешь классы, можно включить дополнительный цикл сообщений внутрь процедуры, выводящей модальное окно. тогда завершение выполнения этой процедуры будет происходить только после закрытия модального окна, т.е. вызов будет синхронным.

Консультировал: Bob Johnson (Мастер-Эксперт)
Дата отправки: 10.10.2006, 19:42
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Sergey A. Wedensky:

Здравствуйте, Bcd!

Через CreateWindowEx его создать нельзя. Единственное, чем отличается CreateWindowEx от CreateWindow - это возможность задания расширенных стилей.

Соглашусь с мр. Bob Johnson - чтобы окно было модальным, можно заблокировать остальные окна процесса или на время его жизни организовать "местную" очередь сообщений.

Но чем Вам не нравится диалоговое окно?
Если невозможностью изменения размеров, то это не так, с помощью опять же стилей можно добиться. А в остальном - все то же самое, та же оконная процедура, и т.д.

Консультировал: Sergey A. Wedensky
Дата отправки: 10.10.2006, 19:52
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Николай Орлов:

Здравствуйте, Bcd!
Модальное окно нельзы создать функцией CreateWindiwEx. Надо выключить остальныек окна EnableWindow.
BOOL EnableWindow( HWND hWnd,
BOOL bEnable
);

Консультировал: Николай Орлов
Дата отправки: 11.10.2006, 14:14
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 60584:

Что такое «callback functions». Спасибо. (Обясните, пожалуйста, с помощью примерами).

Дата отправки: 29.10.2006, 18:27
Вопрос задал: Tebriz
Всего ответов: 2
Страница онлайн-консультации »


Консультирует John Paramol (Студент):

Здравствуйте, Tebriz!
Во-первых это функции, которые определены в вашей программе, но вызываются системой.
Во-вторых это функции стандартного вызова (stdcall), когда параметры передаются в функцию через стек.
Удачи!

Консультировал: John Paramol (Студент)
Дата отправки: 29.10.2006, 18:58
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует ENS:

Здравствуйте, Tebriz!
С CALLBACK функциями я встречался в OpenGL, так вот там callback была функция обработки клавиатуры, мыши, таймера. Аналогично и в WINAPI.

Консультировал: ENS
Дата отправки: 31.10.2006, 16:22
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное