Как запустить форму окна в приложении из службы Windows? - PullRequest
0 голосов
/ 09 октября 2019

Я создаю приложение формы Windows и службу Windows, я могу запустить службу из формы Windows, но если я попытаюсь запустить приложение формы Windows, оно не будет работать.

Чтобы запустить приложение, яиспользуйте System.Process.Start, я вижу в Диспетчер задач во вкладке процессы имя приложения формы Windows, но оно не отображает мою форму.

public partial class testService: ServiceBase
{
    Timer tm = new Timer();
    int n = 0;

    public testService()
    {
        InitializeComponent();
    }

    protected override void OnStart(string[] args)
    {
        tm.Interval = 10000;
        tm.Elapsed += Tm_Elapsed;
        tm.Start();
    }

    private void Tm_Elapsed(object sender, ElapsedEventArgs e)
    {
        if (n == 2)
        {
            try
            {
               ProcessStartInfo info = new ProcessStartInfo(@"pathName\appName.exe");
               info.WorkingDirectory = Path.GetDirectoryName(@"pathName");
               Process.Start(info);
            }
            catch (Exception exception)
            {
                Log.writeEventLog(exception.Message);
            }

            var service = new ServiceController("testService");
            service.Stop();
        }
        n++;
    }

    protected override void OnStop()
    {
        tm.Stop();
    }
}

У кого-то естьЛюбая идея, почему это не работает?

ОБНОВЛЕНИЕ

Мне нужно сделать это, потому что мне нужно каждые 10 минут с формой окна спрашивать, активен ли пользователь илинет.

1 Ответ

0 голосов
/ 09 октября 2019

Службам Windows запрещено взаимодействовать с рабочим столом со времен Windows Vista. Это было по многим причинам. Этот флажок является устаревшим.

Как вы тогда запускаете вещи из службы? Вы неЭто не то, как сервис должен работать.

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

Вы можете сделать это, запустив «службу» через реестр, папку запуска илипланировщик задач.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...