|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.12.2006, 10:31 | #1 |
Новичок
Джуниор
Регистрация: 19.12.2006
Сообщений: 1
|
Запуск программы от имени другого пользователя...
Доброго времени суток.
Проблемка: Есть учётка ограниченная и есть прога которая общаеться с реестром. Как средствами Delphi запустить прогу от имени другого пользователя, если логин и пароль известны. |
21.12.2006, 15:48 | #2 |
Пользователь
Регистрация: 20.12.2006
Сообщений: 43
|
Попробуй так.
function CreateProcessWithLogonW(user:pwidec har; 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('Login', nil, 'Password', 0, nil, 'notepad.exe {или путь к твоей проге}',0, nil, nil, si, pif); end; Удачи.
Если бы я был на столько умён, чтобы ответить на все вопросы самостоятельно, я бы не спрашивал...
Последний раз редактировалось СТРАННИК; 21.12.2006 в 15:54. |
03.09.2008, 11:29 | #3 |
Регистрация: 11.01.2008
Сообщений: 7
|
Если делать через CreateProcessWithLogonW, если запускать вручную, то все норм, программа запускается от другого пользователя, а если запускать через WinExec, или автозапуск, то пишет, что файл не найден!
В чем проблема? |
12.05.2011, 11:07 | #4 |
Пользователь
Регистрация: 17.05.2010
Сообщений: 35
|
Как запрос UAC выдать, когда это нужно?
А если логин и пароль не известны, но нужно под Win7 запустить с правами админа (что бы всплыло окно запроса UAC), то как это сделать?
Манифест не катит - запрос UAC будет при каждом запуске программы, а нужно только при выполнении определенных действий: нужно что-то в реестр записать или папку программ или службу запустить - запустил себя с админскими правами, сказал что делать, сделал с правами админа, закрыл привилегированную копию, продолжил работу. Типа такого UAC (в зависимости от настроек безопасности): или ------------------------------------------------------------------------- Так эта проблема решилась, после MSDN - Redesign for UAC Compatibility (UAC) была написана функция: Код:
------------------------------------------------------------------------- Нашел - нужно ещё ключик добавить: /SILENT Последний раз редактировалось KiL0z; 12.05.2011 в 15:13. Причина: решение проблемы |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запуск *.exe из программы | Djaconda | Паскаль, Turbo Pascal, PascalABC.NET | 22 | 01.03.2012 00:27 |
Работа программы с БД с ограниченной учетной записью пользователя Windows | Стас | БД в Delphi | 3 | 11.12.2009 14:35 |
Получение прав другого пользователя | Квэнди | Win Api | 14 | 28.07.2008 14:49 |
Запуск программы на выполнение из другой программы. | ViNcHeStEr | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 18.06.2008 14:33 |
Запуск программы | Egych | Общие вопросы Delphi | 4 | 04.05.2007 09:46 |