Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.18;
Скачать: CL | DM;

Вниз

запуск от другого имени   Найти похожие ветки 

 
maxon   (2003-07-08 16:57) [0]

Всем добрый вечер.
Есть ли где готовые примеры или статьи, или может кто подскажет как это делается. Надо запустить приложение от имени администратора. в Королевстве Делфи есть отрывки кода, но это только отрывки.


 
Игорь Шевченко ©   (2003-07-08 17:06) [1]

Для этого надо знать пароль администратора. Если знаешь, то LogonUser и CreateProcessAsUser


 
maxon   (2003-07-08 17:09) [2]

может примеры где есть?


 
Игорь Шевченко ©   (2003-07-08 17:58) [3]

Есть. В MSDN на CreateProcessAsUser


 
Burmistroff   (2003-07-08 21:42) [4]

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 }
( 0, PChar(SysErrorMessage(GetLastError) 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;




Страницы: 1 вся ветка

Текущий архив: 2003.09.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
3-58554
grusty
2003-08-27 12:10
2003.09.18
Вопрос по ADOQuery...


1-58659
ИгорьК
2003-09-04 17:02
2003.09.18
TDateTimePicker.OnChange - срабатывает 2 раза, почему!


7-58956
Borgir
2003-07-07 08:19
2003.09.18
COM-порт


7-58925
ctapik
2003-07-07 20:03
2003.09.18
Как остановить работу с ком портом?


3-58555
tyomchick
2003-08-26 17:09
2003.09.18
Дата в IB SQL