powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
15 сообщений из 15, страница 1 из 1
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39388509
Dmitrixz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер, стоит такая задача: Необходимо чтобы служба могла отобразить окно с информацией пользователю который в данный момент залогинен в системе. Знаю как это сделать с помощью id сессии полученного от службы терминалов. Есть ли еще каккие-то способы?
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39388539
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitrixz, есть... в пользовательской сессии крутится процесс он взаимодействует с вашим сервисом... как - да как придумаете...
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39388662
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Штатно в .Net не реализована поддержка интерактивных служб. Только ручками через ВинАПИ

Из МСДН:
Код: plaintext
Классы служб Windows, поддерживаемые .NET Framework, не поддерживают взаимодействие с интерактивными станциями, то есть станциями текущего пользователя. В NET Framework также отсутствуют классы, представляющие станции и рабочие столы. При необходимости организовать взаимодействие службы Windows с другими станциями следует использовать неуправляемый интерфейс API Windows. Дополнительные сведения см. в документации по Windows SDK. 

Вам уже посоветовали. Пишите обычный сервис, и обычное приложение, которое запускается при старте пользовательской сессии. Приложение и сервис общаются между собой, например, через WCF
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39388806
Т-Миронов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitrixzДобрый вечер, стоит такая задача: Необходимо чтобы служба могла отобразить окно с информацией пользователю который в данный момент залогинен в системе. Знаю как это сделать с помощью id сессии полученного от службы терминалов. Есть ли еще каккие-то способы?

GetCurrentProcess-OpenProcessToken-DuplicateToken-SetTokenInformation-ImpersonateLoggedOnUser

попробуй.

http://www.developerfusion.com/community/blog-entry/8389765/creating-a-process-in-another-user-session/
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39388851
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dmitrixz,

Я бы просто запустил стандартную программу msg , которая может отображать сообщение всем пользователям машины
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39389289
Dmitrixz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2, ваша идея мне очень даже подойдёт, спасибо огромное за совет, сам как-то не догадался. Только у меня к вам один вопрос: пробую реализовать это в приложении, запускаю cmd и передаю туда сообщение, так вот командная строка отображается, а само сообщение нет. В чем может быть проблема? Делаю это так: process. Start ("cmd", "mag */127.0.0.1 test");
Причём если это выполняю в командной строке, то все ок.
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39389293
Dmitrixz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался, спасибо огромное)
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39389295
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dmitrixz,

Зачем cmd и адрес?

Process.Start ("msg", " * \"Собщение всем\"")
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39389317
Dmitrixz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если отключена служба терминалов (windows xp) есть возможность использовать msg? Есть ли какая-то альтернатива для такого случая?
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39389334
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сообщения от msg принимает отдельная служба, никак не связанная с терминалом. Как называется - не помню. Если эта служба запущена на получателе, то сообщение он получит.
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39389344
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dmitrixz,

Служба терминалов тут почти не причем. Просто msg может послать сообщение и терминальной сессии
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39389392
Dmitrixz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм, а почему тогда при отключеной службе терминов, сне выдаёт ошибку: 1702 при получении имён сеанса
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39389398
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читай что ошибка означает
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 внимательно читай, там написано как включать.
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39389470
Dmitrixz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так все по ссылке сделал, не спрашивал бы лишний раз. Порт открыт, рпц разрешен. Если служба терминалов включена, все работает, как только отключаю, то ошибка вылазит
...
Рейтинг: 0 / 0
Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
    #39389838
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dmitrixz,
по-подробнее задачу расскажите.
0. Сервис и комп - одна машина
1. Сервис и комп в одной сети домена. Между ними нет маршрутизаторов
2. Сервис и комп в одной сети домена. Между ними есть маршрутизаторы
3. Сервис и комп в разных сетях домена.
4. Сервис и комп в одном лесу.

Легко и просто msg решает проблему только в варианте 0.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Взаимодействие с рабочим столом пользователя из службы, запущенной под local system
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]