![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
InvalidProperty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: 1 Всего: 9 |
Хай,
пишу Windows service. Требуется, чтобы этот service создавал окно, которое будет принимать сообщения. Кто-нибудь сталкивался с такой проблемой? В сервисе пишу MessageBox, либо CreateWindow, либо DialogBox, вроде бы функция завершается успешно, однако я ничего не вижу на экране. Все это нужно для того, чтобы окно сервиса получало сообщения от другой аппликации. -------------------- dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null echo $0 >> $0 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
InvalidProperty, вообще это крайне нерекомендуется. В настройках запуска сервиса есть галка "разрешить взаимодействие с рабочим столом".
Лучше сделайте отдельную програмку-клиента и на сервисереализуйте сервер собственно.. например используйте именованые папы или TCP ... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Начиная с Висты даже
![]() |
|||
|
||||
DrHex |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 2.5.2009 Репутация: нет Всего: нет |
InvalidProperty вдумайся в название СЕРВИС а не процесс.......
--------------------
google.com и это все. |
|||
|
||||
InvalidProperty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: 1 Всего: 9 |
DrHex, а ты вежливый.
В общем, сделал следующим образом: в ответ на определенную команду сервис создает поток, в котором создается окно
пробовал запустить сей код под XP и под Вистой. На обеих операционках в лог пишется строка "Yuppiiiii!!!!!!", что говорит о том, что окно создается и получает сообщение WM_USER + 1. -------------------- dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null echo $0 >> $0 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Оно создается и получает все сообщения, только его невидно. Винда его создает на невидимом десктопе и на неинтерактивной WindowsStation ![]() |
|||
|
||||
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
а поменять Desktop и WindowsStation - не реально?
![]() кликаем SetProcessWindowStation и SetThreadDesktop Думаю как открыть декстоп и стайшн найдете --------------------
здесь хреновые модераторы... |
|||
|
||||
InvalidProperty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: 1 Всего: 9 |
не заморачивайтесь, мне нужно было создать именно невидимое окно, главное, чтобы оно принимало сообщения, чтобы сервис их мог обрабатывать
-------------------- dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null echo $0 >> $0 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
InvalidProperty, ежели оно будет на другом рабочем столе, то оно не примент сообщения от юзера например.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Нереально
![]() |
||||
|
|||||
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
зависит с какими привилегиями вы работаете, вот если у тебя SYSTEM - тебе все дают ![]() --------------------
здесь хреновые модераторы... |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
InvalidProperty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: 1 Всего: 9 |
мне не нужно получать от юзера. Ежу понятно, что ничего от юзера не будет приниматься, если юзер даже окна не видит. Мне нужно, чтобы по созданному хэндлу можно было посылать сообщения. -------------------- dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null echo $0 >> $0 |
|||
|
||||
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
xvr, тогда моя программа не должна была работать... проверено от ХР до 7. Может вы что не так пишете?
--------------------
здесь хреновые модераторы... |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Запусти свою программу (надеюсь это сервис) без галки 'Разрешить взаимодействовать с десктопом', все увидишь. Смотри Интерактивные Сервисы И еще -
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |