Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
 Аватар для Google_A
1 / 1 / 1
Регистрация: 25.09.2012
Сообщений: 13

Как реализовать выход из системы

30.09.2012, 22:56. Показов 4010. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу службу, которая при получении конкретных значений по сети выключает/перезагружает компьютер. Хотелось бы добавить выход из системы. Как это можно реализовать?
C#
1
2
3
4
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/c shutdown -l";
p.Start();
- не выходит, даже с повышением приоритета (скорее всего из за службы, т.к. в формах работает)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.09.2012, 22:56
Ответы с готовыми решениями:

Как отследить включение/выключение компьютера, выход из системы
Как отследить включение/выключение компьютера?

Как реализовать выход при условие=1 из Task.Delay(-1)?
Есть асинхронный таск, который подписывается на ивент, затем идёт бесконечное ожидание. Для наглядности примерная структура кода: ...

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

7
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
01.10.2012, 11:13
Поисковик с вашим ником предлагает сразу 4 способа:
http://stackoverflow.com/quest... om-c-sharp
0
7 / 7 / 0
Регистрация: 14.09.2010
Сообщений: 33
01.10.2012, 15:11
Цитата Сообщение от dondublon Посмотреть сообщение
Поисковик с вашим ником предлагает сразу 4 способа:
http://stackoverflow.com/quest... om-c-sharp
Мне кажется, тут речь идет о завершении сеанса ИЗ сеанса.

В данном случае автор темы хочет завершить ЧУЖОЙ сеанс, выполняясь при этом как служба.

В связи с тем, что винда позволяет входить в систему одновременно нескольким пользователям, нужно перебрать эти сеансы, и завершить их по отдельности (или завершить только указанный сеанс)

http://stackoverflow.com/quest... -a-service Вот тут почитайте, вроде как раз в тему.
1
 Аватар для Google_A
1 / 1 / 1
Регистрация: 25.09.2012
Сообщений: 13
01.10.2012, 15:16  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Поисковик с вашим ником предлагает сразу 4 способа:
http://stackoverflow.com/quest... om-c-sharp
Я спрашиваю конкретно как реализовать "Выход из системы". Все методы предоставляют выключение и/или перезагрузку
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
01.10.2012, 15:44
Цитата Сообщение от Google_A Посмотреть сообщение
Я спрашиваю конкретно как реализовать "Выход из системы". Все методы предоставляют выключение и/или перезагрузку
Прошу прощения, глаз уперся в слово "shutdown" в коде.

Тогда небольшая наводка.
Служба, в отличие от просто запущенного руками exe-шника, выполняется отдельно от сеанса пользователя (это как правило, если не настроено противное).
Поэтому у exe-шника есть "свой" сеанс, который он может завершить, а у службы - обычно нет.
И если нет, служба должна сначала получить список открытых сеансов (которых, в общем случае, больше одного).

Добавлено через 3 минуты
Вот черт, выше уже ответили то же самое.
Ладно, исчезаю.
1
 Аватар для Google_A
1 / 1 / 1
Регистрация: 25.09.2012
Сообщений: 13
06.11.2012, 21:46  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Служба, в отличие от просто запущенного руками exe-шника, выполняется отдельно от сеанса пользователя (это как правило, если не настроено противное).
Поэтому у exe-шника есть "свой" сеанс, который он может завершить, а у службы - обычно нет.
И если нет, служба должна сначала получить список открытых сеансов (которых, в общем случае, больше одного).
Можно по-подробнее об этом? Как можно настроить "противное" т.е. чтобы служба выполнялась от пользователя, который был запущен?
Читал о ServiceAccount и его перечислениях (User, LocalSystem, NetworkService, LocalService), это настраивается посредством этого свойства?
И если настроить службу, работающую в сеансе, каким образом можно его (сеанс) завершить?
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
07.11.2012, 07:13
Цитата Сообщение от Google_A Посмотреть сообщение
Можно по-подробнее об этом? Как можно настроить "противное" т.е. чтобы служба выполнялась от пользователя, который был запущен?
Увы, настолько я не спец.
Просто напомню, что службы запускаются до того, как пользователь залогинился.
0
7 / 7 / 0
Регистрация: 14.09.2010
Сообщений: 33
07.11.2012, 10:06
Приветствую

По-хорошему, это не Ваше дело, от чьего имени выполняется служба. Это решает системный администратор, который будет эксплуатировать Ваш продукт.

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

Это настраивается в оснастке services.msc (пуск, выполнить, services.msc).

Для большинства случаев хватает прав System / Local Service / Network Service, но в некоторых случаях требуется прописать конкретного пользователя (например, доменную учетку, если Ваша служба должна получать доступ к сетевым папкам, или совершать какие-либо другие действия с аутентификацией через ActiveDirectory).

Если Вам необходимо только взаимодействовать с пользовательским интерфейсом (не забывайте, пользователя может вообще не быть в системе, или их может быть залогинено несколько, как в случае терминального сервера, или смены текущего пользователя, не выходя из системы, в семерке), лучше разработать дополнительное клиентское приложение, которое будет связываться со службой из каждого пользовательского сеанса, и сворачиваться в трей, и взаимодействовать со службой, например, через TCP/IP.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2012, 10:06
Помогаю со студенческими работами здесь

Как реализовать мониторинг файловой системы в папке
Добрый день.У меня такой вопрос.Я написал приложение копирование файлов из папки в папку(также директорий). Есть функция мониторинга...

Как реализовать выход с сайта?
У меня есть админка, как ставить там кнопку, чтобы по нажатии вышли с админки (сессия остановилась) Заранее спасибо.

Как реализовать досрочный выход из функции?
Как можно досрочно выйти из функции? При вводе 99 вывод должен быть "9 2". Но из-за рекурсивного алгоритма функция выводит и значения,...

Как отследить выход системы из спящего режима
Добрый день уважаемые! Подскажите, можно ли отследить выход компа из спячки. Если можно, то как. Хотелось бы пример. За ранее благодарю.

Как программно отключить пользователей(Выход из системы)?
Здравствуйте! На сервере терминалов постоянно висят пользователи(некорректно выходят с терминала),мешает делать архивы баз Как можно (и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru