1

Тема: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Здравствуйте, возможно ли сделать AHK скрипт, который бы запускал сразу несколько скриптов и плюс некоторые программы, но определённые, от имени Администратора? Хотя сам бы скрипт запускался без UAC запроса.

Как я себе это представляю:


D:\Программы\No1.ahk
D:\Программы\No2.ahk
D:\Программы\No3.ahk
Задержка: 1000
D:\Программы\VR.bat
Задержка: 1000
D:\Программы\Frame.bat (От Администратора)
Задержка: 5000
D:\Программы\Aero.ink
Задержка: 1000
D:\Программы\Task.exe (От Администратора)
Задержка: 3000
D:\Программы\Bar.exe
OS: Win8.1x64, AutoHotkey v1.1.21.03 (Unicode 64-bit).

2

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Почитайте в справке про команды: Run и RunAs.

Login := "Administrator"
Password := "MyPassword"

Run, D:\Программы\No1.ahk
Run, D:\Программы\No2.ahk
Run, D:\Программы\No3.ahk
Sleep 1000
Run, D:\Программы\VR.bat
Sleep 1000
RunAs, % Login, % Password
Run, D:\Программы\Frame.bat
RunAs
Sleep 5000
Run, D:\Программы\Aero.ink
Sleep 1000
RunAs, % Login, % Password
Run, D:\Программы\Task.exe
RunAs
Sleep 3000
Run, D:\Программы\Bar.exe
+ И можно попробовать так:
Run, D:\Программы\No1.ahk
Run, D:\Программы\No2.ahk
Run, D:\Программы\No3.ahk
Sleep 1000
Run, D:\Программы\VR.bat
Sleep 1000
Run, *RunAs D:\Программы\Frame.bat
Sleep 5000
Run, D:\Программы\Aero.ink
Sleep 1000
Run, *RunAs D:\Программы\Task.exe
Sleep 3000
Run, D:\Программы\Bar.exe

3 (изменено: Waveshaper, 2016-06-14 15:31:40)

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Nikva
Спасибо, а если у учётной записи нет пароля, то что вписывать?

А можно ли сделать так, чтобы скрипт проверял, запущено ли приложение\ahk скрипт, и пропускал их, а стартовал только не запущенные?

OS: Win8.1x64, AutoHotkey v1.1.21.03 (Unicode 64-bit).

4

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Waveshaper пишет:

Спасибо, а если у учётной записи нет пароля, то что вписывать?

Не знаю у меня всегда стоят пароли, попробуйте оставить пустым.

Waveshaper пишет:

А можно ли сделать так, чтобы скрипт проверял, запущено ли приложение\ahk скрипт, и пропускал их, а стартовал только не запущенные?

Для большинства приложений подойдет Process, Exist.
К примеру:

Process, Exist, calc.exe 
If !ErrorLevel
Run calc.exe

C не компилированными AHK скриптами несколько иначе, процесс у них всегда один AutoHotkey.exe. Но можно смотреть по наличию окна IfWinNotExist(у каждого AHK скрипта есть скрытое окно).

DetectHiddenWindows, On ; позволяет скрипту искать скрытые окна
IfWinNotExist, AutoHotkey Script.ahk
Run, %A_ScriptDir%\AutoHotkey Script.ahk

5 (изменено: Waveshaper, 2016-06-14 20:08:42)

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Nikva
Спасибо большое, всё получилось.

А нет ли команды, чтобы разом закрывать все AHK скрипты?

OS: Win8.1x64, AutoHotkey v1.1.21.03 (Unicode 64-bit).

6

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Не компилированные скрипты закроет так.

Loop
Process, Close, AutoHotkey.exe

7

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Nikva, так неправильно.
Можно так:

PID:=DllCall("GetCurrentProcessId") 
for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process where name = 'Autohotkey.exe' and processID  <> " PID )
   process, close, % process.ProcessId
process, close, % PID

8

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Malcev пишет:

так неправильно.

Коротко и работает, легко запомнить.
Особенно хорошо когда, доэкспериментируешся с скриптами типа:

+ не запускать, скрипт запускает множество своих копий
#SingleInstance Off
Loop 
Run, % A_ScriptFullPath

9

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

1) Ваш скрипт не выходит из цикла.
2) Он может закрыть сам себя, раньше, чем закроет другие.

10

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Nikva, Malcev
Спасибо за варианты.

Решил попробовать использовать AutoHotKey без установки, т.е. в Program Files отсутствует папка и нет системных ассоциаций. А скрипты запускаются с внутренними (портативными) ассоциациями TotalCMD, но вот опять возникла проблема массового запуска и закрытия. Если кто-нибудь знает, подскажите пожалуйста, можно ли запускать скрипты сразу привязывая их к AutoHotkeyU64.exe?


Вот такой вариант не работает:

Run, D:\Загрузки\Progs\AutoHotKey\AutoHotkeyU64.exe D:\Загрузки\Progs\AutoHotKey\1Task.ahk
OS: Win8.1x64, AutoHotkey v1.1.21.03 (Unicode 64-bit).

11

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Waveshaper
Если *.ahk привязан к  AutoHotkeyU64.exe во внутренних ассоциациях, то какие тут могут проблемы?

12 (изменено: Waveshaper, 2016-06-17 21:02:12)

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Flasher
Ассоциации ведь портативные, а скрипт пытается открыть виндовыми, поэтому только всплывает запрос "Найти приложение в магазине". По одиночке, конечно, всё открывается корректно в TotalCMD.

Run, D:\Программы\No1.ahk
Sleep 250
Run, D:\Программы\No2.ahk
Sleep 250
Run, D:\Программы\No3.ahk
OS: Win8.1x64, AutoHotkey v1.1.21.03 (Unicode 64-bit).

13

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Ну, вообще странно. Вариант

Run, <путь>\AutoHotkeyU64.exe <путь>\1Task.ahk

должен работать.
Ещё так можно:

Run, %A_AhkPath% D:\Загрузки\Progs\AutoHotKey\1Task.ahk

14

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Flasher
Спасибо, вариант с %A_AhkPath% работает.

А можете подсказать код для массового закрытия скомпилированных скриптов и вообще .exe? Что-то вроде этого?

Close, No1.exe
Close, No2.exe
Close, No3.exe
OS: Win8.1x64, AutoHotkey v1.1.21.03 (Unicode 64-bit).

15

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Waveshaper
Пардон, не увидел просьбу. Так:

Scripts = No1,No2,No3
Loop, parse, Scripts, `,
{ Name = %A_LoopField%`.exe
  Complete:
  Process, Close, % Name
  Process, Exist, % Name
  If ErrorLevel
    Goto, Complete
}

16

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Flasher, а стоит ли долбить процесс, который не закрывается с первого раза?

17 (изменено: Flasher, 2016-06-18 16:32:41)

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Тогда форсированно:

DetectHiddenWindows, On
Scripts = No1,No2,No3
Loop, parse, Scripts, `,
{ Name = %A_LoopField%`.exe
  Complete:
  WinKill, ahk_exe %Name%
  Process,  Exist, % Name
  If ErrorLevel
    Goto, Complete
}

18

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

У меня такая же задача (" сделать AHK скрипт, который бы запускал сразу несколько скриптов и плюс некоторые программы, но определённые, от имени Администратора? Хотя сам бы скрипт запускался без UAC запроса.")
Но мне не критично, если будут появляться окна запроса UAC при попытке запустить батник в режиме администратора.
Варианты , "RunAs", описанные в теме, у меня почему-то не работают.
Появляется сообщение:
https://s8.hostingkartinok.com/uploads/images/2021/01/cdfd10ab8d0598c85053eb3859848c65.jpg

Вот код

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

RunAs  ; Включаем режим запуска программ от обычного пользователя

Run "E:\Создать виртуальный диск.bat"
Sleep, 10000 ; даём время отработать батнику и закрыть окошко командной строки
;========================================================================
RunAs, Администратор, [здесь мой пароль], @[здесь имя моего компа]  ; Включаем режим запуска программ от администратора

run "E:\Создать виртуальный диск.bat"
Sleep, 2000  

19

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Так не пробовали?


Run cmd.exe
Run *RunAs cmd.exe
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

20

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

serzh82saratov
Спасибо. Так работает.
А почему не получается реализовать так как описано в Хэлпе?
Т.е. с включением режима запуска от администратора для всех ниже идущих ранов с указанием пароля и имени компьютера?

21

Re: AHK: Массовый запуск файлов (.ahk;.exe;.ink;.bat и т.д.)

Не знаю. Где то на офф форуме было про это, что то про то что AutoHotkey должен быть установлен с UAC, но мне надо было тогда для компилированного, и я не вникал.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui