1

Тема: AHK: Запуск с правами администратора по умолчанию

Здравствуйте. После многочисленных поисков не нашел нужной информации.

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

Вопрос заключается в следующем: Возможно ли добавить в скрипт что-то, что бы при любом запуске он запрашивал (запускался  с) права администратора для запуска по умолчанию.

2

Re: AHK: Запуск с правами администратора по умолчанию

Какая операционная система? Каковы права учётной записи? Скрипт скомпилированный или нет?

3

Re: AHK: Запуск с правами администратора по умолчанию

Скрипт скомпилирован. Операционная система любая. Есть же программы, которые по умолчанию во время запуска требуют права администратора. В АХК реализовать такое сложно будет? Без сторонних подпрограмм

4

Re: AHK: Запуск с правами администратора по умолчанию

Каковы права учётной записи? Если скрипт запускает не администратор, то "некоторые функции" будут недоступны. В таком случае, чтобы получить права администратора, потребуется ввести пароль - скриптом, либо вручную.

5

Re: AHK: Запуск с правами администратора по умолчанию

Скрипт может сам себя перезапустить. При этом ему можно передать какой-нибудь параметр, чтобы он понял, что это перезапуск, и не перезапускался опять. Впрочем, в справке сказано, что *RunAs действует таким образом только начиная с Висты.


If 1 =
{
    Run, *RunAs %A_ScriptFullPath% 1
    ExitApp
}

MsgBox, Hello, Administrator!

6

Re: AHK: Запуск с правами администратора по умолчанию

YMP пишет:

If 1 =
{
    Run, *RunAs %A_ScriptFullPath% 1
    ExitApp
}

MsgBox, Hello, Administrator!

Спасибо. Способ работает.
Может есть и другие способы, без перезакрытия скрипта

7

Re: AHK: Запуск с правами администратора по умолчанию

Можно подправить сам экзешник, заменив в его манифесте asInvoker на requireAdministrator. С помощью ResHacker'a или подобной программы.

Вообще, странно, что в компилятор АНК до сих пор не добавили такую опцию.

8 (изменено: ypppu, 2016-05-07 10:21:45)

Re: AHK: Запуск с правами администратора по умолчанию

http://www.howtogeek.com/howto/windows- … ows-vista/
Тонкость : пролистываете вниз, качаете Download AdminAutoHotkey Registry Hack, запускаете от админа, перегружаетесь, а потом лезете в реестр и добавляете “C:\Program Files (х86)\AutoHotkey\AutoHotkey.exe” “%1″ %* (второй ключ аналогично), пробовал изначально ручками ключи создавать с правильным путем, не прокатило .
Раз уж зашел, какой версии ahk посоветуете для работы в windows 10 ? простите мне пожалуйста мою свободную пунктуацию .

9

Re: AHK: Запуск с правами администратора по умолчанию

Последней версии, юникодный. А битность, в общем, безразлична. Хотя для 32-битного больше скриптов накоплено. Некоторые могут глючить в 64-битном, требуют адаптации.

10 (изменено: mendisabal, 2016-05-06 21:44:16)

Re: AHK: Запуск с правами администратора по умолчанию

Значит v1.1.23.05 , я так понимаю, про все написанное в 1.1.21.00 можно сразу забыть, если виндовс 64 бита , думаю не будет проблемм с 32х битным ahk, или все таки лучше 64 ? спасибо.

11

Re: AHK: Запуск с правами администратора по умолчанию

Почему забыть? Тут дело не в битности Винды, а в битности АНК. Если у вас установлен 32-битный последней версии, то всё должно работать. Разве что скрипт был написан исключительно под 64-бита, что выглядит маловероятным. Если АНК юникодный, а скрипт был написан ещё для неюникодного и там каким-то образом используется тот факт, что символы строк однобайтные, то тоже могут быть глюки. Но это не повод для отказа от Юникода, т.к. это был бы шаг в прошлое. Просто нужно этот скрипт модернизировать.

Переходить на 64 бита нет необходимости, если у вас нет конкретных для этого причин.

12

Re: AHK: Запуск с правами администратора по умолчанию

А 32-битный AHK на 64-битной системе — не шаг в прошлое?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK: Запуск с правами администратора по умолчанию

Мне это кажется разумным компромиссом. Ведь далеко не каждый может DllCall'ы в скриптах отрихтовать или пересчитать размер структуры и смещения её членов с учётом правил выравнивания в x64. А проблемы с Юникодом менее вероятны и проще для понимания.

А от чего, по твоему мнению, человек отказывается, делая выбор не в пользу АНК64? Ты замечал разницу в производительности? Или думаешь, что скоро процессоры перестанут поддерживать режим совместимости с x86? Или ОС от него откажутся?

14

Re: AHK: Запуск с правами администратора по умолчанию

YMP пишет:

далеко не каждый может DllCall'ы в скриптах отрихтовать или пересчитать размер структуры и смещения её членов с учётом правил выравнивания в x64

это точно про меня)

15

Re: AHK: Запуск с правами администратора по умолчанию

YMP пишет:

А от чего, по твоему мнению, человек отказывается, делая выбор не в пользу АНК64?

От обучения программировать под 64-бит.

YMP пишет:

Ведь далеко не каждый может DllCall'ы в скриптах отрихтовать или пересчитать размер структуры и смещения её членов с учётом правил выравнивания в x64.

Ну, не знаю, я за один день научился, благодаря твоим пояснениям.   В целом я думаю так: если ставишь AHK для пользования чужими скриптами — 32-бит, если для обучения программированию — 64.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

16 (изменено: Godarck, 2016-05-13 21:46:18)

Re: AHK: Запуск с правами администратора по умолчанию

Нарыл такую вещь. Пока наилучший вариант


if !A_IsAdmin && !%False%
{
    if A_OSVersion not in WIN_2003,WIN_XP,WIN_2000
    {
        Run *RunAs "%A_ScriptFullPath%" ,, UseErrorLevel
        if !ErrorLevel
            ExitApp
    }
    MsgBox 0x31, Ошибка запуска,
    (
    Для правильной работы программы нужны права Администратора.
    `n
    Продолжить в любом случае, нажмите "OK".  Для отмены нажмите "Cancel".
    )
    IfMsgBox Cancel
        ExitApp       
}