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

Вниз

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

 
_landy   (2002-10-25 14:25) [0]

Какой функцией пользуется runas.exe для запуска программы от имени другого пользователя. Или хотя бы как этому самому runas.exe передать пароль, чтоб задача отработала и завершилась самостоятельно?


 
Игорь Шевченко ©   (2002-10-25 15:35) [1]

CreateProcessAsUser


 
ZZ ©   (2002-10-25 16:07) [2]

Какой функцией пользуется runas.exe для запуска программы от имени другого пользователя
CreateProcessWithLogonW


 
Ученик ©   (2002-10-25 16:14) [3]

Развитие ZZ © (25.10.02 16:07)

function CreateProcessWithLogonW(
lpUsername : PWChar;
lpDomain : PWChar;
lpPassword : PWChar;
dwLogonFlags : DWord;
lpApplicationName : PWChar;
lpCommandLine : PWChar;
dwCreationFlags : DWord;
lpEnvironment : Pointer;
lpCurrentDirectory : PWChar;
var lpStartupInfo : TStartupInfo;
var lpProcessInfo : TProcessInformation
) : Bool; stdcall; external "AdvApi32.dll";


procedure TForm1.Button5Click(Sender: TObject);
var
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
begin
FillChar(StartupInfo, SizeOf(StartupInfo), 0);
StartupInfo.cb := SizeOf(StartupInfo);
if CreateProcessWithLogonW("UserName", "DomainName", "Password",
0, "notepad.exe", "", CREATE_DEFAULT_ERROR_MODE, nil, nil,
StartupInfo, ProcessInfo) then begin
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread)
end else
Win32Check(False)
end;


 
_landy   (2002-10-27 12:38) [4]

Thx. Именно то, что нужно.


 
Alexander ©   (2002-10-27 15:24) [5]

А как из запущенной программы можно выяснить имя пользователя, её запустившего?


 
ZZ ©   (2002-10-27 16:07) [6]

Alexander
К созажению это невозможно сделать... пока не научишся искать :))


 
_landy   (2002-10-28 08:27) [7]

Действительно. :))

procedure GetUserInfo(Server,User: String);
var
UserInfo : ^USER_INFO_2;
lpwUser : PWideChar;
lpwSrv : PWideChar;
begin
lpwSrv := Str2Wide(Server);
lpwUser := Str2Wide(User);

NetUserGetInfo(lpwSrv,lpwUser,2,Pointer(UserInfo));
// Куда - то выводим информацию
// При желании изменяем и сохраняем новую инфу
NetUserSetInfo(nil,lpwUser,2,UserInfo,nil);

NetApiBufferFree(UserInfo);
end;


 
_landy   (2002-10-28 08:29) [8]

Вдогонку - подробности, например, здесь: http://www.delphi.xonix.ru/subscribe/?id=1


 
_landy   (2002-10-30 09:37) [9]

Вот еще вариант:
function GetUserName: string;
var
N: Cardinal;
Buf: array[0..1023] of AnsiChar;
begin
N:=SizeOf(Buf)-1;
Windows.GetUserName(Buf, N);
Result:=PChar(@Buf[0]);
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
14-36335
RV
2002-11-12 10:13
2002.12.12
музыкантам. ;)


3-36032
adolf_99
2002-11-25 12:15
2002.12.12
Помогите


4-36463
MegaLexx
2002-10-29 18:59
2002.12.12
Объявленной в SDK константы не нашлось в заголовочном файле!


1-36286
Beginner
2002-12-02 19:07
2002.12.12
Кто знает, почему ошибка в IntToHex() ?


14-36407
Rand
2002-11-21 18:20
2002.12.12
Экспресс-анкета