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

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

Задача взаимодействия различных программных модулей системы...


Makhanev Alexander ©   (2007-02-15 20:50:00) 

Есть 1 комп.
Он может быть как terminal'кой, так и обычным пк.

На нём я должен запускать под каждым залогиненным юзером свой процесс.

Этот процесс должен иметь права записи в некую папку.

Еще есть служба, которая мониторит эту(и) папку(и) и что-то делает с её файлами.

Процессов может быть много.

А желательно чтоб общая папка (куда что-то пишут процессы) была одна (напр. app data\all users\..).

Пока есть 2 варианта решения со своими плюсами и минусами:

Вариант1:
- процесс запускается под system. его запускает служба. служба ловит logon event (dll'ка, зареганная в винлогон секции реестра) и запускает процесс под сессией юзера.

Плюс:
-процесс имеет права на записи в общую папку

Минус:
-неясно как стартовать процесс под учеткой юзера. Т.е. в случае с terminal'кой надо ж понимать под которым юзером запустится процесс...
-logon event будет ловиться только после перезагрузки компа (что с терминалкой фигово)

Вариант2:
- процесс запускается под юзером. его запускает винда из Run'а реестра.

Плюс:
- всё ясно с запуском

Минус:
- ниче не ясно с тем, куда писать файлы, (юзер не локал админ). Если пишем в свою app data, то службе придется неудобно бегать по всем app dataм и собирать файло.

И еще:
-хотелось бы иметь возможность запуска процессов из службы "на лету", чтоб не надо было перелогиниваться...  реально?
-было б круто, если б можно было объеднить процессы в одну службу. но специфика процесса такова, что он работает с окнами каждого юзера. такое реально из службы (видеть все окна всех юзеров и т.п.) ?


Makhanev Alexander   (2007-02-15 21:14:00) [1]

вспомнил что в Documents and Settings\All Users\Application Data\ выставлены особые разрешения и дюбой юзер может туда писать файло, но не править чужое.

это в принципе вполне устраивает.

НО - вопрос про запуск "на лету" и про единую службу не снят.

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

Т.е. у меня на терминалке 10 юзеров и 1 служба может сказать какое окно активно у каждого из них.


Наверх

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