Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 94

Windows service и запуск exe

23.11.2016, 10:15. Показов 3108. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Возникла задача на удаленном компьютере в локальной сети запускать exe файл. Причем, программа которая будет запускать этот файл, должна запускаться вместе с запуском компьютера и постоянно находится в рабочем состоянии.
Проблему думаю решить так:
1. Написать службу, которая на удаленном компьютере будет мониторить подключение по TCP
2. После того как к ней подключится другой компьютер и пошлет команду запуска, служба выполнит запуск EXE

На данный момент реализовал службу и попытался в методе onStart() сделать запуск exe с помощью createProcess. Функция выполняется но на рабочем столе exe не запускается и в диспечере задач его нет.
Ранее со службами не работал. Подскажите правильный ли подход я выбрал и есть ли подход лучше? и как запустить exe из службы?

Добавлено через 12 минут
Забыл добавить, что используемая система Windows 7

Добавлено через 27 минут
С запуском exe разобрался с помощью функции createProcessAsUser()
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2016, 10:15
Ответы с готовыми решениями:

A Windows service with the name MySQL already exists. Please uninstall this service correctly or choose a different name for the new service.
Не знаю что делать дальше

Как создать процесс (MFC application *.exe) из c# Windows Service?
сервис создается, инсталлируется из запускается фактически кнопкой мыши, новый процесс создается также. но это - поотдельности. если мы...

Точка входа в процедуру DeviceEventWorker не найдена в библиотеке DLL C:\ProgramData\Windows\Profile\service.exe
Здравствуйте. Сегодня начало вылазить такое окно: Точка входа в процедуру не найдена DeviceEventWorker не найдена в библиотеке DLL...

5
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 94
12.12.2016, 12:05  [ТС]
Появилась новая проблема.

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

Добавлено через 34 минуты
Поправка, я знаю что можно настроить автоматический вход в систему, но мне нужно сделать это именно с помощью службы, так как вход в систему должен осуществляться по команде с удаленной машины.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
13.12.2016, 01:23
Цитата Сообщение от Ebis Посмотреть сообщение
На данный момент реализовал службу и попытался в методе onStart() сделать запуск exe с помощью createProcess. Функция выполняется но на рабочем столе exe не запускается и в диспечере задач его нет.
Это нормально, так и должно быть.
Поищи похожие темы на форуме: "запуск процесса из службы" и т.п.
0
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 94
13.12.2016, 08:44  [ТС]
Такой вопрос:
Мне нужно при запуске компьютера, внезавимости залогинился пользователь или нет, иметь связь с процессом по TCP. Процесс будет выполнять чтение и запись на диск, и еще ряд задач. Процесс будет получать команды по TCP с удаленной машины. Нужно следить за состоянием работы процесса и, в случае его не корректной работы, перезапускать его.

Вот мое видение решения задачи:
Создать службу, которая при старте системы будет запускать этот процесс и отслеживать его состояние, в случае сбоя в работе процесса она будет отсылать информацию по TCP на удаленную машину, от которой будет получать команду для перезапуска процесса если придет подтверждение.
Важно, чтобы процесс работал вне зависимости от того залогинился пользователь или нет. Потому что удаленная машина может послать команду перезагрузки компьютера, после чего, служба и процесс должны занового запуститься.

Алгоритм я представляю таким:
1. LogonUser() служба логинится под пользователем(пароль и имя мне известны)
2. createProcessAsUser() для запуска exe. Вот тут тонкий момент. Подскажите, будет ли это работать и правильный ли это подход?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
13.12.2016, 09:35
А зачем тебе логиниться под пользователем? Ведь для этого нужно знать
его имя и пароль... Это, как минимум, ставит под удар безопасность.
Служба ведь может работать под своей учеткой (LocalSystem, LocalService,
NetworkService или вообще под специальным ограниченным токеном, у
которого прав вообще никаких, кроме тех, что ты сам назначишь)...
1
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 94
13.12.2016, 10:57  [ТС]
Точно! Использовал LocalSystem + createProcess - то что нужно, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2016, 10:57
Помогаю со студенческими работами здесь

Точка входа в процедуру DeviceEventWorker не найдена в библиотеке DLL C:\ProgramData\Windows\Profile\service.exe
Здравствуйте! с пятничного вечера стало вылезать это сообщение Точка входа в процедуру DeviceEventWorker не найдена в библиотеке DLL...

Запуск exe на Windows XP
Всем добрый вечер. Я понимаю, что тема избита, но для "самых одаренных". Создал мини прогу. Все работает на W7, W10, а вот на XP упрямится....

windows 7, не правильный запуск explorer.exe
Недавно столкнулся с траблой. При входе explorer.exe запускается не правильно. Вместо загрузки рабочего стола просто выходит папа...

Запуск cmd.exe из службы Windows 7, 8
Доброго времени суток! Задача тривиальная: есть файл, который нужно контролировать. Если он меняется (содержимое, права доступа,...

Запуск exe-файла расположенного на пк с Windows командой с Ubuntu
Вопрос такой: Можно ли отправить команду с сервера Ubuntu на компьютер пользователя (установлен Windows 7), чтобы запустить exe-файл?...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru