Re[3]: ImpersonateLoggedOnUser даёт ошибку 6 (ERROR_INVALID_
От: x64 Россия  
Дата: 30.12.09 22:43
Оценка: 3 (1) +2
R>"Сначала" это где ? На какой HANDLE ?

Хендлы уникальны в пределах процесса, а не системы. Ты передаёшь значение хендла из одного процесса в другой, но этого недостаточно, необходимо скопировать сам хендл из таблицы хендлов исходного процесса (в твоём случае, UI-приложение) в таблицу хендлов целевого процесса (в твоём случае, служба). Для этого следует воспользоваться DuplicateHandle(), а для этого, в свою очередь, у тебя должен быть хендл исходного процесса с соответствующими правами. Ну и наконец, полученный в результате копирования хендл уже можно будет использовать в контексте твоего целевого процесса (служба). Что ещё?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.