Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Запуск програм с правами администратора

Ответить
Настройки темы
Запуск програм с правами администратора
Harkalada


Сообщения: n/a

Профиль | Цитировать


Вопрос : Известен пароль админа ,нуно чтоб моя програма запускалась
из под юзера с правами админа то есть мне нужен пример исходного кода.

Отправлено: 15:59, 16-10-2003

 

Аватара для Megabyte

Пользователь


Сообщения: 114
Благодарности: 2

Профиль | Отправить PM | Цитировать


Вот пример на Дельфи:
Код: Выделить весь код
Unit RunAsExt;

Interface

Uses Windows, SysUtils;

function CreateProcessWithLogonW(
  lpUserName: PWideChar;
  lpDomain: PWideChar;
  lpPassword: PWideChar;
  dwLogonFlags: DWORD;
  lpApplicationName: PWideChar;
  lpCommandLine: PWideChar;
  dwCreationFlags: DWORD;
  lpEnvironment: Pointer;
  lpCurrentDirectory: PChar;
  const lpStartupInfo: TStartupInfo;
  var lpProcessInformation: TProcessInformation
  ): BOOL; stdcall;

Function RunAs(Username, Password, Command: String): String;

Implementation

function CreateProcessWithLogonW; external advapi32 name 'CreateProcessWithLogonW';

Function RunAs(Username, Password, Command: String): String;
Var
  si: TStartupInfo;
  pi: TProcessInformation;
  pUser, pPass, pDomain, pProgram: array [0..255] of WChar;
  LastError: DWORD;
  ResultString: String;
Begin
  ZeroMemory(@si, SizeOf(si));
  si.cb:=SizeOf(si);
  ZeroMemory(@pi, SizeOf(pi));

  StringToWideChar(UserName, pUser, 255);
  StringToWideChar(PassWord, pPass, 255);
  StringToWideChar('', pDomain, 255);
  StringToWideChar(Command, pProgram, 255);
  CreateProcessWithLogonW(
    pUser,
    pDomain,
    pPass,
    1, //LOGON_WITH_PROFILE,
    pProgram,
    nil,
    CREATE_DEFAULT_ERROR_MODE or CREATE_NEW_CONSOLE or
    CREATE_NEW_PROCESS_GROUP  or CREATE_SEPARATE_WOW_VDM,
    nil,
    nil,
    si,
    pi
   );
  LastError:=GetLastError;
 Case LastError of
   0:    ResultString:='Success!';
   86:   ResultString:='Wrong password';
   1326: ResultString:='Wrong username or password';
   1327: ResultString:='Logon failureЧuser account restriction';
   1385: ResultString:='Logon failureЧthe user has not been granted the requested logon type at this computer.';
   2:    ResultString:='File not found';
   5:    ResultString:='Acced denied';
 else
   ResultString:='Error '+IntToStr(LastError);
 end;
 Result:=ResultString;
End;

END.

-------
Слова следует взвешивать, а не считать.
(Восточная пословица)


Отправлено: 09:54, 17-10-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Запуск програм с правами администратора

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - Как автоматизировать запуск с правами администратора для отдельной программы? mar1boro Microsoft Windows 2000/XP 1 18-03-2008 12:29
Доступ - [решено] запуск с правами администратора без такового p0dles Microsoft Windows 2000/XP 5 25-10-2007 15:22
Пользователь с правами администратора treiber Microsoft Windows 2000/XP 2 06-03-2007 20:13
Win98. Запуск программы с правами администратора Medj Microsoft Windows 95/98/Me (архив) 11 27-10-2005 08:01
ICQ с правами Администратора n3rf Microsoft Windows 2000/XP 17 07-12-2004 12:07




 
Переход