|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Добрый вечер, стоит такая задача: Необходимо чтобы служба могла отобразить окно с информацией пользователю который в данный момент залогинен в системе. Знаю как это сделать с помощью id сессии полученного от службы терминалов. Есть ли еще каккие-то способы? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 15:07 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Dmitrixz, есть... в пользовательской сессии крутится процесс он взаимодействует с вашим сервисом... как - да как придумаете... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 15:37 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Штатно в .Net не реализована поддержка интерактивных служб. Только ручками через ВинАПИ Из МСДН: Код: plaintext
Вам уже посоветовали. Пишите обычный сервис, и обычное приложение, которое запускается при старте пользовательской сессии. Приложение и сервис общаются между собой, например, через WCF ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 18:50 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
DmitrixzДобрый вечер, стоит такая задача: Необходимо чтобы служба могла отобразить окно с информацией пользователю который в данный момент залогинен в системе. Знаю как это сделать с помощью id сессии полученного от службы терминалов. Есть ли еще каккие-то способы? GetCurrentProcess-OpenProcessToken-DuplicateToken-SetTokenInformation-ImpersonateLoggedOnUser попробуй. http://www.developerfusion.com/community/blog-entry/8389765/creating-a-process-in-another-user-session/ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2017, 00:58 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Dmitrixz, Я бы просто запустил стандартную программу msg , которая может отображать сообщение всем пользователям машины ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2017, 10:27 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Cat2, ваша идея мне очень даже подойдёт, спасибо огромное за совет, сам как-то не догадался. Только у меня к вам один вопрос: пробую реализовать это в приложении, запускаю cmd и передаю туда сообщение, так вот командная строка отображается, а само сообщение нет. В чем может быть проблема? Делаю это так: process. Start ("cmd", "mag */127.0.0.1 test"); Причём если это выполняю в командной строке, то все ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 09:22 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Разобрался, спасибо огромное) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 09:28 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Dmitrixz, Зачем cmd и адрес? Process.Start ("msg", " * \"Собщение всем\"") ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 09:29 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
А если отключена служба терминалов (windows xp) есть возможность использовать msg? Есть ли какая-то альтернатива для такого случая? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 09:58 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Сообщения от msg принимает отдельная служба, никак не связанная с терминалом. Как называется - не помню. Если эта служба запущена на получателе, то сообщение он получит. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 10:17 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Dmitrixz, Служба терминалов тут почти не причем. Просто msg может послать сообщение и терминальной сессии ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 10:32 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Хм, а почему тогда при отключеной службе терминов, сне выдаёт ошибку: 1702 при получении имён сеанса ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 11:28 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Читай что ошибка означает https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms681381(v=vs.85).aspx RPC_S_INVALID_BINDING 1702 (0x6A6) The binding handle is invalid. Нет доступа к RPC, ссылку Cat2 внимательно читай, там написано как включать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 11:34 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Так все по ссылке сделал, не спрашивал бы лишний раз. Порт открыт, рпц разрешен. Если служба терминалов включена, все работает, как только отключаю, то ошибка вылазит ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 13:24 |
|
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
|
|||
---|---|---|---|
#18+
Dmitrixz, по-подробнее задачу расскажите. 0. Сервис и комп - одна машина 1. Сервис и комп в одной сети домена. Между ними нет маршрутизаторов 2. Сервис и комп в одной сети домена. Между ними есть маршрутизаторы 3. Сервис и комп в разных сетях домена. 4. Сервис и комп в одном лесу. Легко и просто msg решает проблему только в варианте 0. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 20:24 |
|
|
start [/forum/topic.php?fid=20&msg=39388539&tid=1400100]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 274ms |
total: | 425ms |
0 / 0 |