Здравствуйте, Druidoff, Вы писали:
D>if (0 == CreateProcessAsUser( spNewToken.get(),
D> NULL,
D> L"notepad.exe",// по моему ошибка тут!!!!
D> NULL,
D> NULL,
D> FALSE,
D> NORMAL_PRIORITY_CLASS,
D> NULL,
D> NULL,
D> &si,
D> pi.get()
D> ))
D> {ATLTRACE("Failed to CreateProcessAsUser\n");
D>Запускаю его на сборку ошибок нет ни одной даже варнингов.а как пробую запустить на выполнение то сразу вылетат пишет шото типа
D>ошибка доступа памяти. И на етом все заканчивается.
Так делать нельзя. Параметр lpCommandLine не просто так объявлен неконстантным. Функция может реально туда писать, что в твоем случае скорее всего происходит.
В MSDN явно написано:The Unicode version of this function, CreateProcessAsUserW, will fail if this parameter is a const string.
--
Sergey Chadov
... << RSDN@Home 1.2.0 alpha rev. 685>>
Здравствуйте, Druidoff, Вы писали:
[]
Замени
boost::shared_ptr<PROCESS_INFORMATION> pi;
на
PROCESS_INFORMATION pi;
//...
CreateProcessAsUser(/*...*/, &pi)
а то ерунда какая-то.
Либо таки уж выдели память для shared_ptr.
... << RSDN@Home 1.2.0 alpha rev. 772>>