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

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

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, то
> работает нормально

а для чего параметр?


Наверх

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