Здравствуйте Alex Fedotov, вы писали:
P>>Надо ;-( AF>Потрясающей силы аргументация. AF>Вот меня больше всего и интересует, что мы ожидаем от запущенной программы с открытым документом, когда в системе нет интерактивного пользователя.
Краткость сестра таланта ;-)
Я привел плохой пример. Конечно, документ Word или картинку запускать без пользователя смысла не имеет.
Под документами имелись в виду скрипты. Конечно можно заставить пользователя потрудится (что, кстати, и придется сделать, если я это не решу), но мы же знаем какие пользователи капризные ;-)
В W2K есть приятная функция SHCreateProcessAsUserW, но она появилась только там и, наверное, использует названный вами сервис.
Смотрел правильность написания в MSDN и наткнулся на:
This function is similar to ShellExecuteEx with runas as the verb. However, SHCreateProcessAsUserW creates a process that runs in the security context of the user represented by the hUserToken member of the structure pointed to by pscpi. The structure's lpProcessInformation member can be used to return a PROCESS_INFORMATION structure with information on the new process.
The runas verb must be supported by the executable file's file class. The .exe file class supports runas. Use the AssocQueryString function to check whether or not runas is supported by other file classes. The following code fragment illustrates the syntax:
AF>Это не будет работать, как ожидается, поскольку CreateProcess использует primary token, а не impersonation token, чтобы определить в контексте какого пользователя создавать новый процесс.
Запомним.