![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запуск приложения от имени [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 вопрос
> могла бы запускать некоторые приложения с правами одмина.
решение приведено в тексте вопроса.