Arslan Elahi Ответов: 1

Создание всплывающего окна с помощью службы windows


Привет,

Я хочу создать всплывающее окно в качестве напоминания с помощью службы окон, когда пользовательская мышь/клавиатура не реагирует,

я знаю, что мы не можем взаимодействовать с пользователем с помощью оконных служб
я знаю, что нам нужно использовать ссылку на форму win в оконном сервисе

я просто хочу знать, как я могу получить ответ на событие мыши/клавиатуры с помощью службы windows

Спасибо заранее

[no name]

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

Sandeep Mewara

:)

[no name]

opps sory...it должно быть не может... это по ошибке...сори

Sandeep Mewara

Звучит так, как будто вы путаете с веб-служба и служба windows Можете ли вы сделать паузу на мгновение и подумать над тем, над чем вы работаете, и соответственно задать вопрос.

[no name]

нет..... мне нужен оконный сервис.... я также разрабатываю приложение для windows

[no name]

Нет... ты запутался. Перечитайте свой "вопрос" еще раз и притворись на мгновение, что вы ничего не знаете о том, что вы пытаетесь сделать и посмотреть, если это имеет какой-либо смысл вообще. Например... если мышь и клавиатура не реагируют, как вы собираетесь получить ответ от компьютера? веб-служба как вы указали? Тем более служба windows. Оно почти похоже, вы хотите реализовать глобальный крючок для ключей, но опять же, клавиатура и мышь должны быть отзывчивыми, чтобы это работало.

[no name]

это была просто ошибка... я исправил вот это. спасибо

[no name]

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

Sandeep Mewara

Звучит как ключ-регистратор для меня! Ну, не очень хороший район, я бы сказал!

Richard C Bishop

Ключ регистрации, и микро-управление эксплуатацией? Плохая бизнес-модель.

1 Ответов

Рейтинг:
12

Sergey Alexandrovich Kryukov

Вам нужно будет иметь отдельное приложение пользовательского интерфейса, которое работает скрыто. Помните, что вы можете запустить такое приложение только при наличии рабочего стола, когда какой-то пользователь входит в систему, но служба Windows работает даже тогда, когда пользователи выходят и входят в систему. Эти два процесса могут использовать некоторые IPC (self-hosted WCF или классические .Сетевое удаленное взаимодействие может сделать трюк; существуют каналы, основанные на именованном канале, поэтому нет необходимости использовать сеть; эти каналы также называются "IPC") для связи.

Когда требуется всплывающее окно пользовательского интерфейса, служба Windows может инициировать его отправку соответствующего сообщения через IPC. Следует помнить, что служебная часть должна отслеживать состояние системы, так как такое сообщение необходимо только при наличии рабочего стола какого-либо пользователя. Вы можете сделать это с помощью класса Microsoft.Win32.SystemEvents:
http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.aspx[^].

Вам нужно будет обработать одно или оба из этих двух статических событий:
http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.sessionended.aspx[^],
http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.sessionending.aspx[^].

Чтобы запустить приложение пользовательского интерфейса при входе пользователя в систему, см.:
http://support.microsoft.com/kb/240791[^].

—СА


[no name]

Спасибо за ваш ответ.... я завершил подключение клавиатуры/мыши в простом приложении windows, но еще не в службе окон...хорошо
теперь я хочу знать, как я могу установить таймер в нем..если функции mouse/keboard hook не вызывают 15 минут, то таймер должен запуститься... плз помогите

Sergey Alexandrovich Kryukov

Я понятия не имею, чего вы пытаетесь достичь и в чем проблема. Вы использовали Windows Hook? Глобальный или в процессе?
Почему таймер? Какой именно класс таймера? Это звучит как отдельный вопрос. Если вы разместите его, пожалуйста, предоставьте исчерпывающую информацию.
Если вы хотите уведомить меня о своем новом вопросе, вы можете дать мне ссылку в ответ на этот комментарий...
—СА

[no name]

Спасибо за Ваш ответ, Сергей.. я добился того, чего хотел.. я использовал глобальный крюк и пользовательский таймер, если нет ответа клавиатуры/мыши до нескольких минут, а затем отобразил messageBox или вышел из системы.
Еще раз спасибо за вашу помощь

Sergey Alexandrovich Kryukov

Отличный. Добро пожаловать.
Удачи, звоните еще раз.
—СА

Himanshu_Gautam

можете ли вы, пожалуйста, прислать мне код just show messagebox из службы windows?
я перепробовал много кодов и этот тоже но не работал https://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.aspx
мой электронный идентификатор таков himanshugautam9@gmail.com