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

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

Запуск приложения от имени [D7, WinXP]


aHTuXpust ©   (2008-12-16 19:14:00) 

Доброго времени суток, столкнулся с такой проблемой: занимаюсь разработкой программы на предприятии, которая могла бы запускать некоторые приложения с правами одмина.

Рылся в сети, нашел пример решения, но он мне не совсем подходит:

function CreateProcessWithLogonW(user:pwidechar; domain:pwidechar;
passw:pwidechar; flags: DWORD; lpApplicationName: PwideChar; lpCommandLine: PwideChar;
 dwCreationFlags: DWORD; lpEnvironment: Pointer;
 lpCurrentDirectory: PWideChar; const lpStartupInfo: TStartupInfo;
 var lpProcessInformation: TProcessInformation): BOOL; stdcall;external 'advapi32.dll' name 'CreateProcessWithLogonW';

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   si: TSTARTUPINFO;
   pif: PROCESS_INFORMATION;
begin
 si.cb := SizeOf(tstartupinfo);
  si.dwFlags  := STARTF_USESHOWWINDOW;
  si.wShowWindow := SW_SHOWDEFAULT;
  si.lpReserved := nil;
  si.lpDesktop := nil;
  si.lpTitle := nil;

 CreateProcessWithLogonW('test', nil, 'password', 0,
    nil, 'notepad.exe',0, nil, nil, si, pif);
end;


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


Anatoly Podgoretsky   (2008-12-22 20:08:00) [1]

Которую ты хочешь нарушить.


aHTuXpust   (2008-12-22 17:03:00) [2]


> А если ему надо выполнять действия доступные лишь админу
> - то почему он не админ - тоже не понятно.


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


KSergey   (2008-12-19 09:34:00) [3]

можно обойтись без программы, просто запускать bat-файл, который будет содержать команду runas.

Вот только задумайтесь хотя бы на секунду что вы вообще делаете? Вы ж выдаете пользователю не админу логин/пароль админа!! бред.

Если такая задаче реально есть - надо сделать сервис, который уже будет стартовать с нужными правами и будет иметь интерфейс для требования запуска стороннего приложения по требованию. Так и MS решает подобные задачи, например в штатном инсталляторе.

Хотя опять же есть подозрение, что что-то в этой схеме в данном случае явно криво: не зря ж исходный пользователь не админ. А если ему надо выполнять действия доступные лишь админу - то почему он не админ - тоже не понятно.


Германн   (2008-12-19 01:38:00) [4]


> Jeer ©   (18.12.08 18:25) [5]

Твоя вторая фраза, как раз и составляла [3] :(
Ну это так. Без претензий к кому-либо.


Сергей М.   (2008-12-18 20:11:00) [5]


> например из файла


sl: TStringList;
..
sl.LoadFromFile(путь к файлу);


Сергей М.   (2008-12-18 20:01:00) [6]


> Рылся .. нашел пример


> может кто знает, какую нить процедурку


С миру по нитке - лысому на гребешок ?

Сам-то ты что-то сделал ли для продвижения к цели ?


Jeer   (2008-12-18 18:25:00) [7]


> нужно имя пользователя и пароль из внешнего ресурса брать

Бери, кто мешает ?


> занимаюсь разработкой программы на предприятии,

Бедное предприятие.


aHTuXpust   (2008-12-18 17:14:00) [8]


> решение приведено в тексте вопроса.


Я же объяснил, что данный код мне не подходит, нужно имя пользователя и пароль из внешнего ресурса брать, например из файла или записи реестра.


Германн   (2008-12-17 00:58:00) [9]

Удалено модератором


Плохиш   (2008-12-16 22:48:00) [10]

Удалено модератором


Eraser   (2008-12-16 20:13:00) [11]

вопрос по-человечески сформулируйте.
пока только увидел 1 вопрос

> могла бы запускать некоторые приложения с правами одмина.

решение приведено в тексте вопроса.


Наверх

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