none
Запуск приложения с помощью своей службы vb.net RRS feed

  • Общие обсуждения

  • Добрый день!

    Подскажите, пожалуйста, возможно ли с помощью службы Windows, запустить конкретное приложение для текущего пользователя?

    Программирую на VB.NET.

    Ситуация следующая:

    Разработал собственную службу которая отмечает время логина пользователя вошедшего в систему (за рабочей станцией может работать неограниченное количество пользователей). 

    Также разработал ClickOnce-приложение которое должно запускаться у каждого пользователя.

    При входе в систему служба ждет 30 секунд и проверяет запущено ли приложение. Если приложение не запущено, то пытается его запустить.

    Запуск пробую дать командой Process.Start (PathToProgram,LoggedUserName,Password,Domen).

    К сожалению приложение запустить не удается - ошибка: Отказано в доступе.

    Ввожу все данные, пароль, имя пользователя, домен. но всё равно не получается выполнить команду.

    Возможно ли каким-то другим способом запустить программу для текущего пользователя без ввода пароля, домена и т.д., а только указав путь к исполняемому файлу?

    С уважением, Владимир.

Все ответы

  • Возможно проблема в привилегиях, поскольку службы по умолчанию работают с более низкими правами.

    Сделаем содержимое сообщества лучше, вместе!

    Модератор
  • Скорее всего...

    Служба запускается как Local System, и стартует вместе с загрузкой ОС.

    Далее следит за входом/выходом пользователей. Здесь ничего запускать не надо просто создается лог и пишется в него. Но когда хочу этой же службой запускать приложение - то тут появились проблемы.

    Попробовал через bat запустить приложение - прописал в службе Process.Start ("C:\Temp\Start.bat") - без указания каких либо данных о пользователе.

    В итоге процесс не выдал ни каких ошибок, но и не запустил приложение...

    Попробовал запустить службу как Local Service - то же самое, запуск процесс не выдал ни каких ошибок, но и приложение не запустил...

    Вот интересно - возможно ли вообще запускать приложения из служб?

    Можно ли каким либо образом передать данные о пользователе службе, которая находится в другой терминальной сессии и никаким образом не связана с сессией текущего пользователя?

    В общем вопросов много, где рыть не пойму...

    А можно ли через ShellExecute запустить приложение из службы?