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

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

как запустить программу с провами администратора [D6, Win2k]


Spartak ©   (2003-04-21 11:02:00) 

если ты сам находишься под провами обычного пользователя .
Есть прогамма управления комп клубом и чтобы админы не меняли базы данных запрещёно посчти всё и так же запуск программ . Запустить программу можно только когда войдёшь в систему с паролем админа.
так вот как сделать прогу которая бы запускала программу управления клубом под правами админа ( чтобы клубная программа могла писать файлы в каталог и делать записи в реестре )


Burmistroff   (2003-04-26 21:28:00) [1]

procedure WinExecAsUser(FileName: string; username: string; password:
string; Visibility:
integer);
var { V1 by Pat Ritchey, V2 by P.Below }
zAppName : array[0..512] of char;
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
h : thandle;
begin { WinExecAndWait32V2 }
StrPCopy(zAppName, FileName);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not LogonUser(pchar(username), ".", pchar(Password),
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT, h) then
MessageBoxA(0, PChar(SysErrorMessage(GetLastError)), "Error", MB_OK);
CreateProcessAsUser(h, nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes }
nil, { pointer to thread security attributes }
false, { handle inheritance flag }
CREATE_DEFAULT_ERROR_MODE,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo); { pointer to PROCESS_INF }
if GetLastError <> 0 then MessageBoxA(0, PChar(SysErrorMessage(GetLastError)), "Error", MB_OK);
end;


Proton   (2003-04-23 19:34:00) [2]

Этот ответ не по части програмироывания, есть такая комманда runas которая должна решить твои проблеммы.

еще CreateProcessAsUser(), она вообще идеально подходит к твоей задаче, но там куча параметров, с которыми бе пузыря никак :).


sniknik   (2003-04-23 18:29:00) [3]

в принципе сервис не единственное что с чужими правами запустить можно. DCOM (если это проше будет) тоже запускается от настроенного пользователя с его паролем и правами, а управляющую надстройку можно и меньше 36к (при желании) сделать.


handra   (2003-04-23 17:05:00) [4]

с прОвами не получится... ;)


joisy   (2003-04-23 16:49:00) [5]

Poslushyte no v Win2k est je funktsiya dlya zapuska programm pod drugim uzerom (something like RunAs) - tuda v kommandnoy stroke pishesh uzera, parol i.t.d. Ili ya oshibayus?? Ili eto v Linuxe?


alexteam   (2003-04-22 09:46:00) [6]

к стати вдогонку НЕ ХАМИ


alexteam   (2003-04-22 09:45:00) [7]

вообще-то я сам адмиин и пишу свою прогу адмнистрации (клиентский готов пишу сервак) в общем для такой цели сервис идеальная вещь без прав админа не вырубиш и работает под админом %), в общем ты такой умный и столько знаеш, думаю сам разберешся
интересно почему у тя слово сервис связано с вирями ? :) это же две разные вещи


Cobalt   (2003-04-22 09:07:00) [8]

Внимание - вопрос!
Зарегестрировался пользователь - с ограниченными правами. Он не имеет права админа.
Надо запустить прогу с правами админа - вопрос - кому и когда это надо?!
Этому ограниченному пользователю?
Или админу?
Если прога должна типа работать при любом пользователе (но с правми админа - этакая "следилка за пользователем"), то идеально подходит сервис (можно ему, если надо, разрешить взаимодействие с десктопом)
Иначе непонятно че-то...


DeadMeat   (2003-04-21 17:07:00) [9]

Заинсталь свой сервис, а когда надо чёто запустить, передай ему строку с файлом и всё... Я так сделал у нас в универе...


andrey_pst   (2003-04-21 13:44:00) [10]

Мда, случай тяжелый... :)


Spartak   (2003-04-21 12:55:00) [11]

Просто видел прогу которая делает то же самое и весит всего 36 кб

ну ладно раз никто не знает то ...


Плохиш   (2003-04-21 12:37:00) [12]

Идёшь в магазин и покупаешь толстую книгу по Delphi и по WindowsAPI (не из серии для чайников) и настраиваешь driver head.sys, кстати на будущее тоже пригодится.
PS. Про вирусы - это ты сказал


Spartak   (2003-04-21 12:31:00) [13]

>Service

я могу написать сервис ! если ты на счёт вируса то я и сам знаю
могу и сам кого хочешь научить !
но мне не это нужно ! мне нужно как сделать в своей проге запуск
другой программы с правами админа .


Плохиш   (2003-04-21 12:26:00) [14]

Service


Spartak   (2003-04-21 12:18:00) [15]

Я сам запретил это всё ! Я ! работаю на сеть клубов ! ( всего 7 клубов ) ясно !?
Так что пожайлуста не надо мне таких претензий !

>Непонятно - если ты обычный пользователь, то не лезь, куда не
> след. А если ты админ, то залогинься - и вперед

мне не нужно логниться ! мне нужно чтобы программа управления работала ! и писала свои отчёты и базы данных !
Только под такой защитой она это сделать не может ! так как она запущена под пользователем ( админом , кассиром )


REA   (2003-04-21 11:28:00) [16]

>запрещёно посчти всё
вот для таких и запрещено


Cobalt   (2003-04-21 11:06:00) [17]

чтобы админы не меняли базы данных
Непонятно - если ты обычный пользователь, то не лезь, куда не след. А если ты админ, то залогинься - и вперед.


Наверх

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