Конференция "WinAPI" » Запуск приложения от имени [D7, WinXP]
 
  • aHTuXpust © (16.12.08 19:14) [0]
    Доброго времени суток, столкнулся с такой проблемой: занимаюсь разработкой программы на предприятии, которая могла бы запускать некоторые приложения с правами одмина.

    Рылся в сети, нашел пример решения, но он мне не совсем подходит:

    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;


    не подходит потому что в данном примере жестко задается имя пользователя и пароль, а задача такова, что нужно эти данные брать из файла на сервере. Может кто сталкивался с такой проблемой, может кто знает, какую нить процедурку для решения подобной задачи, помогите пожалуйста. зарание благодарен.
  • Eraser © (16.12.08 20:13) [1]
    вопрос по-человечески сформулируйте.
    пока только увидел 1 вопрос

    > могла бы запускать некоторые приложения с правами одмина.

    решение приведено в тексте вопроса.
  • Плохиш © (16.12.08 22:48) [2]
    Удалено модератором
  • Германн © (17.12.08 00:58) [3]
    Удалено модератором
  • aHTuXpust © (18.12.08 17:14) [4]

    > решение приведено в тексте вопроса.


    Я же объяснил, что данный код мне не подходит, нужно имя пользователя и пароль из внешнего ресурса брать, например из файла или записи реестра.
  • Jeer © (18.12.08 18:25) [5]

    > нужно имя пользователя и пароль из внешнего ресурса брать

    Бери, кто мешает ?


    > занимаюсь разработкой программы на предприятии,

    Бедное предприятие.
  • Сергей М. © (18.12.08 20:01) [6]

    > Рылся .. нашел пример


    > может кто знает, какую нить процедурку


    С миру по нитке - лысому на гребешок ?

    Сам-то ты что-то сделал ли для продвижения к цели ?
  • Сергей М. © (18.12.08 20:11) [7]

    > например из файла


    sl: TStringList;
    ..
    sl.LoadFromFile(путь к файлу);
  • Германн © (19.12.08 01:38) [8]

    > Jeer ©   (18.12.08 18:25) [5]

    Твоя вторая фраза, как раз и составляла [3] :(
    Ну это так. Без претензий к кому-либо.
  • KSergey © (19.12.08 09:34) [9]
    можно обойтись без программы, просто запускать bat-файл, который будет содержать команду runas.

    Вот только задумайтесь хотя бы на секунду что вы вообще делаете? Вы ж выдаете пользователю не админу логин/пароль админа!! бред.

    Если такая задаче реально есть - надо сделать сервис, который уже будет стартовать с нужными правами и будет иметь интерфейс для требования запуска стороннего приложения по требованию. Так и MS решает подобные задачи, например в штатном инсталляторе.

    Хотя опять же есть подозрение, что что-то в этой схеме в данном случае явно криво: не зря ж исходный пользователь не админ. А если ему надо выполнять действия доступные лишь админу - то почему он не админ - тоже не понятно.
  • aHTuXpust © (22.12.08 17:03) [10]

    > А если ему надо выполнять действия доступные лишь админу
    > - то почему он не админ - тоже не понятно.


    А не админ он по многим причинам... все перечислять не имеет смысла, скажу лишь одно, что такая политика безопасности.
  • Anatoly Podgoretsky © (22.12.08 20:08) [11]
    Которую ты хочешь нарушить.
 
Конференция "WinAPI" » Запуск приложения от имени [D7, WinXP]
Есть новые Нет новых   [134435   +34][b:0][p:0.001]