1 (изменено: yakmuve, 2022-04-13 11:12:31)

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

Здравствуйте, хотел бы узнать, как можно реализовать перезапуск программы для получения прав администратора. Узнать есть ли у пользователя, который запустил скрипт, права администратора мы можем благодаря:

A_IsAdmin

Это я знаю, но как скрипту получить права администратора, если у пользователя их нет (в моей системе 2 скрипта, 1 запускает 2, а 2 используется в игре, вот как раз для 2 мне нужны права администратора, т.к. скрипт работает в игре только от имени администратора).

2

Re: AHK: Получение прав администратора

Если скрипт для игры, он должен быть в этой ветке. Если у пользователя нет прав администратора, то скрипт их никак не сможет получить (разве что каким-нибудь хакерским способом).

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

3 (изменено: yakmuve, 2022-04-13 19:35:39)

Re: AHK: Получение прав администратора

teadrinker, понял, принял. А если у пользователя есть права администратора, но приложение он запустил без прав администратора. Кстати, рыская по интернету нашёл данный код, но не пойму, это то что мне нужно или нет. Да и вообще не понимаю, что в какой строке делается, из-за этого понятия не имею, как его вклинить в мой скрипт.

if IsAdmin = 0
{

		CommandLine := DllCall("GetCommandLine", "Str")
		If !(A_IsAdmin || RegExMatch(CommandLine, " /restart(?!\S)")) 
		{
   				Try 
   				{
        				If (A_IsCompiled) 
        				{
           						Run *RunAs "%A_ScriptFullPath%" /restart
        				} 
				        Else 
				        {
				            	Run *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%"
				        }
    			}
   				ExitApp
		}

}

4

Re: AHK: Получение прав администратора

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

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

5 (изменено: yakmuve, 2022-04-14 09:03:29)

Re: AHK: Получение прав администратора

teadrinker, Спасибо.

6 (изменено: svoboden, 2022-04-14 01:15:06)

Re: AHK: Получение прав администратора

Я бы не использовал выше код. Мне помогло через cmd от имени админа запуск скрипта.

7

Re: AHK: Получение прав администратора

svoboden, поясните, почему бы не использовали, чем лучше через cmd, почему просто не через меню файла скрипта?

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

8 (изменено: svoboden, 2022-04-18 05:39:53)

Re: AHK: Получение прав администратора

У меня нет такого пункта, запуск от админа, а от админа не запускает выше код скрипт.

9

Re: AHK: Получение прав администратора

Да, действительно не запускает. Там опечатка: if IsAdmin = 0 (нужно A_IsAdmin). Если нет такого пункта — AHK криво установлен.

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

10 (изменено: svoboden, 2022-04-14 02:41:05)

Re: AHK: Получение прав администратора

Переустановил. Пункт появился, но выдает ошибку: этому файлу не сопоставлена программа для выполнения этого действия. С cmd такого нет, там все просто, запустил от админа консоль, прописал путь к скрипту, и работает.

11

Re: AHK: Получение прав администратора

Значит, опять криво установилось. Это не значит, что через cmd проще, а то, что у вас что-то не так.

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

12 (изменено: svoboden, 2022-04-14 03:05:03)

Re: AHK: Получение прав администратора

Исправил уже.