![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CreateProcessAsUser error [D7]
istok20 © (2009-07-09 14:22:00)Windows 7 RC 32bit, вызываю CreateProcessAsUser из сервиса:
CreateProcessAsUser(hNewToken, nil, PChar('"C:\Program Files\MyProgram\myprogram.exe" /param1'), nil, nil,
false, CREATE_DEFAULT_ERROR_MODE, nil, nil, si, pi);
параметры формирую так:
var
hToken, hNewToken: Cardinal;
si: TStartupInfo;
pi: TProcessInformation;
...
if not OpenProcessToken(GetCurrentProcess, TOKEN_QUERY or TOKEN_DUPLICATE, hToken) then
Exit;
if not DuplicateTokenEx(hToken, MAXIMUM_ALLOWED, nil, SecurityIdentification,
TokenPrimary, hNewToken) then
Exit;
if not SetTokenInformation(hNewToken,
TTokenInformationClass(12), @SessionId, SizeOf(Cardinal)) then
Exit;
FillChar(si,SizeOf(si),0);
with Si do begin
cb := SizeOf(Si);
dwFlags := startf_UseShowWindow;
wShowWindow := SW_NORMAL;
lpDesktop := PChar('winsta0\default');
end;
SessionId - подается извне, равен 1 (интерактивная сессия юзера).
в резудьтате вызова CreateProcessAsUser получаю error 1813, с сообщением The specified resource type cannot be found in the image file.
если вызывать без параметра командной строки /param1, то работает нормально. иногда если сменить параметр на другой и поперезапускать сервис, то тоже работает, но после ребута при валится та же ошибка. в других windows работает нормально.
в чем может быть причина? гуглил, но что такое "The specified resource type cannot be found in the image file" пока не понял.
clickmaker (2009-07-10 11:12:00) [1]> а какое это имеет значение?
а почему тогда "если вызывать без параметра командной строки /param1, то работает нормально"?
istok20 (2009-07-09 18:12:00) [2]для того чтоб моя программа словила его и приняла определенные действия - а какое это имеет значение?
clickmaker (2009-07-09 15:02:00) [3]> если вызывать без параметра командной строки /param1, то
> работает нормально
а для чего параметр?