Текущий архив: 2003.02.06;
Скачать: CL | DM;
ВнизРабота с реестром под бесправным юзером Найти похожие ветки
← →
Olimpik (2002-11-25 20:16) [0]Здраствуйте.
Я не могу разобраться, можно ли запустить приложение с правами администратора под простым юзером на W2k?
Если можно, то как, и смогу ли я при этом записать в HKEY_LOCAL_MACHINE что-нибудь?
Сможет ли он завершить работу программы?
Моя программа добавлена в автозапуск для всех юзеров software\microsoft\windows\currentversion\run.
← →
Opuhshii (2002-11-25 20:49) [1]Да!, можно запустить приложение с правами администратора,. только запускать её надо по-особенному,.. CreateProcessAsUser естественно Администратор - это вы,.. )
← →
ZZ (2002-11-26 02:01) [2]Только для W2k больше подходит CreateProcessWithLogonW..
Сможет ли он завершить работу программы?
Если он - это юзер, то он может закрыть окно программы, а вот через завершение процесса не получится.
← →
Olimpic (2002-11-26 09:25) [3]А Вы не можете рассказать поподробнее или указать ссылку?
← →
Marcus (2002-11-26 11:40) [4]В HKEY_LOCAL_MACHINE сможешь записать и даже создать подраздел, если откроешь его с правом KEY_WRITE, а не KEY_ALL_ACCESS
← →
Игорь Шевченко (2002-11-26 14:50) [5]Знаем мы, как запустить программу с правами администратора под NT от простого пользователя, знаем, рассказали нам специалисты.
Знаем, но не скажем. (с) Химия и жизнь - переписка.
← →
Olimpic (2002-11-26 18:33) [6]Интересно, почему не расскажите?
← →
Olimpic (2002-11-26 18:43) [7]У меня есть пароль admina, то есть я и есть Admin. Мне бы сделать клиентское приложение, которое позволяло бы изменять реестр под юзером.
← →
Cobalt (2002-11-30 00:02) [8]Запускай его(приложение) с правами Админа. т.е. см. CreateProcessWithLogonW
← →
don-do (2002-11-30 11:50) [9]function EnablePrivilege(PrivName:string): boolean;
var
TokenPriv: TTokenPrivileges;
TokenHandle: THandle;
begin
Result:=false;
if OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES,
TokenHandle) then
if LookupPrivilegeValue(nil,PChar(PrivName),
TokenPriv.Privileges[0].LUID) then
begin
TokenPriv.PrivilegeCount:=1;
TokenPriv.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
if not AdjustTokenPrivileges(TokenHandle,false,TokenPriv,0,
TTokenPrivileges(nil^),DWORD(nil^)) then exit;
end;
Result:=True;
end;
If GetVersion < $80000000 then
EnablePrivilege("SeSystemtimePrivilege"); //SE_SYSTEMTIME_NAME
If (RebootFlags and (EWX_POWEROFF or EWX_REBOOT or EWX_SHUTDOWN))>0 then
EnablePrivilege("SeShutdownPrivilege");
← →
ZZ (2002-11-30 16:08) [10]don-do
Пять... нет даже десять баллов за ответ!!!
Страницы: 1 вся ветка
Текущий архив: 2003.02.06;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.009 c