Графический интерфейс службы

Тема в разделе "WASM.WIN32", создана пользователем drone, 17 мар 2005.

  1. drone

    drone New Member

    Публикаций:
    0
    Регистрация:
    14 июл 2004
    Сообщения:
    37
    Адрес:
    Moscow
    Всем привет.

    Меня интересует воролс: почему при запуске службы от

    другого пользователя (не system), у службы не работает

    пользовательский интерфейс? Флаги

    SERVICE_WIN32_OWN_PROCESS и SERVICE_INTERACTIVE_PROCESS

    стоят. Даже если запустить процесс из такой службы,

    у процесса не будет графического интерфейса, т. е.

    нет окошек, нельзя создать иконку в трее и тд.



    От system- все работает.



    P.S. Касается только Windows2000.
     
  2. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    Не всегда GUI запущенные от другого пользователя отображаются, правда, непонятно почему. А вообще окно создаётся? Проверь.

    p.s. интересный вопрос, я как раз тут со службами разбираюсь. Хочу по ним документ написать.
     
  3. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    Кстати, а вот когда какое-нибудь приложение выставляешь в сценарий автозагрузки (выполняется после служб, права - SYSTEM), то появившееся окно работает только за пределами рабочего стола пользователя. То есть вошёл в систему - исчезло. Ctrl-Alt-Del нажал - появилось. Также различнеы приложения могут изолировать себя от desktop'а с помощью CreateWindowStation. Возможно при login'е под пользователя Windows ему отдельный рабочий стол выделяет и он с этим не взаимодействует.
     
  4. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    Флаг интерактивности доступен только для системных служб. Даже я как-то это проглядел. А ведь недавно только начал документ писать!

    Этот вопрос, когда документ будет закончен, будет помещён в его FAQ. Только документ закончится не скоро, несмотря на то, что я решил не переводить MSDN.