Конференция "WinAPI" » Запуск программы из другой программы
 
  • гия (25.05.12 11:14) [0]
    Добрый день.
    Работаю в Дельфи ХЕ, Windows 7.
    Как запустить из одной рограммы другую программу в режиме администратора?
    Требуется ли для этого вторую программу компилировать особым образом?
  • Давайте будем жрать! (25.05.12 11:18) [1]
    Если вторая программа должна всегда работать с повышенными привилегиями, то её нужно компилировать со специфическим манифестом (XE2 позволяет прямо в среде изменять манифест для запуска всегда с повышенными привилегиями).

    Если же нужно именно из одной программы вызывать вторую с повышенными привилегиям, то используется недокументированная возможность использовать в ShellExecute в качестве verb 'RunAs'.

    А лучше забей в поисковик "UAC+Delphi" и осмысли найденное.
  • гия (25.05.12 13:46) [2]
    Здравствуйте
    Воспользовался Вашей рекомендацией использовать в ShellExecute в качестве verb 'RunAs'.
    Сработало. Большое спасибо
  • robt (25.05.12 13:48) [3]

    > недокументированная возможность использовать в ShellExecute
    > в качестве verb 'RunAs'

    чойта вдруг недокументированная? все элементарно по аналогии
  • Rouse_ © (25.05.12 19:59) [4]

    > чойта вдруг недокументированная?

    Потому что в официальной документации verb RunAS отсутствует.
    http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx и если он после очередного патча перестанет работать, то будет уже по совсем не элементарно ;)
    Ну и я уж не говорю, что для отключения данного функционала достаточно удалить или переименовать следующую ветку реестра: HKEY_CLASSES_ROOT\exefile\shell\runas
  • robt (25.05.12 21:15) [5]

    > Потому что в официальной документации verb RunAS отсутствует.

    ну зато там написано вполне конкретно "This method allows you to execute any commands in a folder's shortcut menu or stored in the registry"
    а этих вербов может быть созданно вагон и тележка любым пользователем или программой

    > Ну и я уж не говорю, что для отключения данного функционала

    ну заодно уж нескажи что можно также прибить и "open" и "explore" и "edit" и дт

    > после очередного патча перестанет работать

    в часности там написано что если не существует "open" (которы описан и по твоей теории о патчах будет жить вечно)
    то используется первый по порядку верб из реестра

    зы твоя ссылка некашерна по причине что там в минимале стоит ХР (кури старинный MSDN)
    а ShellExecute существует сама и ее описание с 95\NT3.1 винды, и поэтому описаны вербы, которые общие как для NT так и 9x систем
  • Rouse_ © (25.05.12 21:51) [6]
    Чет я не понял.
    Уточни плз место в твоем мегоспиче, где ты все-же указываешь на то, что сей момент есть вполне документирован.

    Далее:

    > зы твоя ссылка некашерна по причине что там в минимале стоит ХР

    Это видимо указывает на то, что все что в W2K уже не работает?


    > а ShellExecute существует сама и ее описание с 95\NT3.1
    > винды, и поэтому описаны вербы, которые общие как для NT
    > так и 9x систем

    Открой глаза мне бразе :) Дай линк на verb RunAS описанный в 95\NT3.1
  • Rouse_ © (25.05.12 21:54) [7]

    > ну заодно уж нескажи что можно также прибить и "open" и
    > "explore" и "edit" и дт

    Ой, пардон, забыл - пичаль мне :)
    Ты знаешь, нет, их так-же прибить нельзя, не буду говорить :)
  • robt (25.05.12 21:58) [8]

    > Уточни плз место в твоем мегоспиче

    первая строка

    > Открой глаза мне бразе

    это о том почему его там нет
  • Rouse_ © (25.05.12 22:02) [9]
    Ниче не понял - точное место плз документации RunAs покажи...
    Ты где здесь его нашел то?
    "This method allows you to execute any commands in a folder's shortcut menu or stored in the registry"
    То что ShellExecute выполняет все подряд зарегенное это не есть наличие факта документированности :)
  • Rouse_ © (25.05.12 22:05) [10]
    Зы, даю подсказку, вот например для шорткутов есть документированный флаг SLDF_RUNAS_USER, а для ShellExecute ???
  • robt (25.05.12 22:12) [11]

    > их так-же прибить нельзя

    можно

    > это не есть наличие факта документированности

    а по мне, так достаточно
  • Rouse_ © (25.05.12 22:20) [12]

    > robt   (25.05.12 22:12) [11]
    > можно

    По тому-же ключу реестра? Сурово.


    > robt   (25.05.12 22:12) [11]
    > а по мне, так достаточно

    Ну так с этого и начинать надо было :)
    Фраза "а по мне" обычно пишется как "IMHO", которым обычно предваряют текст, в котором автор не до конца уверен :)
  • Anatoly Podgoretsky © (25.05.12 22:20) [13]
    > Rouse_  (25.05.2012 19:59:04)  [4]

    “Verb” может быть любой, в том числе и пользовательский. Выбираться должен
    из shortcut меню, особо оговорен случай когда “Verb” отсутствует, включая
    “Verb” “Open”
    Описаны, наиболее используемые случаи  “The following verbs are commonly
    used:” список
    Так же могут использовать алиасы – совсем не описаны.
  • Rouse_ © (25.05.12 22:23) [14]

    > Anatoly Podgoretsky ©   (25.05.12 22:20) [13]

    Толь ну тебя-то куда понесло? :)
    Нешто ты выдумал шо я англицкую мову ни розумею и справку читать не обучен? :)
  • robt (25.05.12 22:27) [15]

    > По тому-же ключу реестра? Сурово.

    ну не тупи, ты все понял

    > автор не до конца уверен

    раз так напрашиваешся, то почитай например ремарку к http://msdn.microsoft.com/en-us/library/windows/desktop/bb762138(v=vs.85).aspx
  • Anatoly Podgoretsky © (25.05.12 22:44) [16]
    > Rouse_  (25.05.2012 22:23:14)  [14]

    А может ты не так интерпретируешь написанное, иначе чего споришь то?
  • Rouse_ © (25.05.12 23:59) [17]

    > robt   (25.05.12 22:27) [15]
    > ну не тупи, ты все понял

    я реально хочу знать что именно я понял по реестру :)


    >  почитай например ремарку к http://msdn.microsoft.com/en-
    > us/library/windows/desktop/bb762138(v=vs.85).aspx

    Молодец - нашел :)
  • Rouse_ © (26.05.12 00:01) [18]

    > Anatoly Podgoretsky ©   (25.05.12 22:44) [16]
    > > Rouse_  (25.05.2012 22:23:14)  [14]
    >
    > А может ты не так интерпретируешь написанно

    Толь зачем ты мне задаешь такой вопрос?
    Ну открой написанное, найди где я его неправильно интерпретировал, делов то...
 
Конференция "WinAPI" » Запуск программы из другой программы
Есть новые Нет новых   [134430   +2][b:0][p:0.001]