Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

нужно запустить процесс под сессиями юзеров terminal services [D7]


Makhanev Alexander ©   (2006-08-21 13:20:00) 

Есть win2003 server на котором развернуты windows terminal services.
Есть служба, работающая на том же сервере.

Нужно сделать так, чтобы служба могла запустить процесс под всеми существующими сессиями пользователей terminal services без relogon'а пользователя.

Пока копаю в сторону CreateProcessAsUser и получение токенов активных юзеров через LogonUser...

Может кто-то поджскажет, является ли этот путь действенным и единственным?

Буду благодарен за помощь.


Чапаев   (2006-08-23 19:12:00) [1]

> [8] Makhanev Alexander   (22.08.06 11:55)

Насколько я помню, именно её.


DiamondShark   (2006-08-22 12:45:00) [2]

Только что попробовал. Нормально енумеруются.


DiamondShark   (2006-08-22 12:32:00) [3]


> Makhanev Alexander   (22.08.06 11:51) [7]

У вас какие-то неправильные пчёлы.

BOOL EnumDesktops(
  HWINSTA hwinsta,
 DESKTOPENUMPROC lpEnumFunc,
 LPARAM lParam
);

hwinsta
[in] Handle to the window station whose desktops are to be enumerated. This handle is returned by the CreateWindowStation, GetProcessWindowStation, or OpenWindowStation function


Makhanev Alexander   (2006-08-22 11:55:00) [4]


> Чапаев ©   (21.08.06 22:42) [5]

Может, Вы имеете в виду статью "Starting an Interactive Client Process in C++
"?


Makhanev Alexander   (2006-08-22 11:51:00) [5]


> DiamondShark ©   (21.08.06 21:49) [4]


Упёрся в получение десктопов терминальных юзеров, так как:
The EnumDesktops function enumerates all desktops associated with the current window stationof the calling process.

А как получить desktop по window station, пока не нашел...


Makhanev Alexander   (2006-08-22 00:39:00) [6]


> Leonid Troyanovsky ©   (21.08.06 21:00) [2]

Автостарт при логоне есть, но дело в том, что процесс надо запускать, не дожидаясь того, когда юзер перелогинится.


> Ketmar ©   (21.08.06 21:13) [3]
>мой телепатор подозревает, что это что-то вроде шедулера или мессенджера? так?

Нет, не так. Это terminal services версия одного корпоративного софта.


> DiamondShark ©   (21.08.06 21:49) [4]
>Это чтобы окошки у пользователей видны были?

Вроде того. Мысль интересная, спасибо. Посмотрим...


> Чапаев ©   (21.08.06 22:42) [5]
>Да... В MSDN ещё преогромный пример есть на использование LogonUser( +CreateProcessAsUser()+манипуляция с оконной станцией и рабочим столом, чтоб пользователь мог с ними нормально работать.


Странно, что я не догадался покопаться в своем msdn'е. Спасибо за идею. Сейчас поищем...


Чапаев   (2006-08-21 22:42:00) [7]

Да... В MSDN ещё преогромный пример есть на использование LogonUser()+CreateProcessAsUser()+манипуляция с оконной станцией и рабочим столом, чтоб пользователь мог с ними нормально работать.


DiamondShark   (2006-08-21 21:49:00) [8]

Что значит "под всеми существующими сессиями"?

Это чтобы окошки у пользователей видны были? Если да, то в структуре STARTUPINFOесть поле lpDesktop, в котором можно указать имя десктопа, к которому привязать процесс, в формате windowstationname \ desktpname.
Для каждой терминальной сессии существует отделная window station.

Пишу чисто умозрительно, т.к. серверной операционки под рукой нет, проверить, как всё это будет работать не могу.


Ketmar   (2006-08-21 21:13:00) [9]

мой телепатор подозревает, что это что-то вроде шедулера или мессенджера? так?


Leonid Troyanovsky   (2006-08-21 21:00:00) [10]


> Makhanev Alexander   (21.08.06 13:20)  

> Нужно сделать так, чтобы служба могла запустить процесс
> под всеми существующими сессиями пользователей terminal
> services без relogon'а пользователя.


Пардон, а почему оное надо делать именно сервису,
а не к.-л. логон-скрипту, или вульгарному автостарту?

--
Regards, LVT.


Makhanev Alexander   (2006-08-21 20:29:00) [11]

может кто-то поможет?


Наверх

Титульная страница Поиск, карта сайта Написать письмо