Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoHotkey

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Открыть новую тему     Написать ответ в эту тему

chum2000

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

   
 
Актуальная версия: AutoHotkey 2.0.5 от 12 августа 2023
Версия для Windows XP | Changes from v1.1 to v2.0
 
Официальный сайт | Англоязычный форум | Архивный форум | Русскоязычный форум
Документация (англ.) | Документация и статьи (рус.) | История изменений
 
Подборка полезных скриптов | AutoHotkey + Total Commander
 

Цитата:
AutoHotkey — бесплатная программа с открытым исходным кодом для создания макросов и автоматизации, позволяющая упростить выполнение повторяющихся задач.
 
AutoHotkey позволяет изменить интерфейс практически любой программы. Имеет собственный скриптовый язык, специально нацеленный на лёгкое назначение и переназначение горячих клавиш.
 
AutoHotkey можно использовать для запуска программ, отправки текста, имитации мыши. Скриптовый язык позволяет управлять окнами, файлами и папками. Команды могут быть активированы горячими клавишами.
 
Также имеются возможности создания GUI, работы с реестром, использования собственного API окон для вызова DLL-файлов. Скрипты можно скомпилировать в EXE-файл и запускать на любом компьютере с Windows соответствующей версии.
 
Наиболее частое применение AutoHotkey:
- переназначение клавиш (глобально или у отдельных программ)
- управление мышью с помощью клавиатуры или джойстика
- слежение за системой, автоматическое выполнение некоторых действий по желанию пользователя, таких как напоминание, сканирование или резервное копирование
 

Всего записей: 505 | Зарегистр. 04-03-2004 | Отправлено: 00:28 02-06-2005 | Исправлено: Egor2020, 10:08 21-09-2023
kykrinik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
в зависимости от которого формируются последующие строки с первым числом  
этого нет в столбце Ожидание.
Цитата:
не удалось применить его к содержимому из ломаных скобок
- ???

Всего записей: 227 | Зарегистр. 29-03-2016 | Отправлено: 20:35 12-04-2018 | Исправлено: kykrinik, 21:46 12-04-2018
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kykrinik
Имелось в виду, что задача в поиске пар цифр в следующих скобках <312|100> и формирование ссылок, исходя из их значений. Например, находит <312|100> — 100 становится шагом, который прибавляется до трёхсот (где "link" — это ссылка после скобок):
 
link=0  
link=100  
link=200  
link=300  
 
Или находит <637|60> — шагом становится 60, которое будет прибавляться до 600 (ссылка после скобок снова копируется):
 
link=00  
link=60  
link=120  
link=180  
link=240  
link=300  
link=360  
link=420  
link=480  
link=540  
link=600  
 
А другие ссылки, после которых нет значений в скобках — остаются как есть.

Всего записей: 1408 | Зарегистр. 05-04-2010 | Отправлено: 15:51 14-04-2018 | Исправлено: D1D1D1D, 15:53 14-04-2018
kykrinik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D
Число и цифра - вещи разные.
Указывать надо, и как и откуда, берётся каждое Число или цифра.
 
Loop, parse, lst, `n, `r
    {
    if RegExMatch(A_LoopField, "(\d+)\|(\d+)" , sub)
    MsgBox % sub1 "`t" sub2
    Else
    if A_LoopField !=
    MsgBox % A_LoopField
    }

Всего записей: 227 | Зарегистр. 29-03-2016 | Отправлено: 21:12 14-04-2018 | Исправлено: kykrinik, 21:12 14-04-2018
HeT BonpocoB



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
коллеги, что-то не могу врубиться - можно ли как-то "отфильтровать" WinWaitActive (или что-то подобное) на конкретно такое окно
с текстом "There is already a file with the same name in this location."
   
 
так то функция работает и по тайтлу, но т.к. подобных окон может много видов, хотелось бы сузить работу автонажатий

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 21:51 19-05-2018
totnetot



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeT BonpocoB
Функции: WinGetText, ControlGetText.
 
Вспомогательное средство.
 
И ещё другой способ (сам еще не пользовался) вот. Форум.
 
 
Добавлено:
Самому эта тема интересна. Вот нашел еще какой-то китайский скрипт для получения текста.

Всего записей: 410 | Зарегистр. 16-03-2013 | Отправлено: 14:29 20-05-2018
HeT BonpocoB



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
totnetot

Цитата:
Функции: WinGetText

ну это я естественно пробовал - но она выдаёт за текст:
 
&Yes
&No
 
а вот можно ли выловить именно тот текст, что в самом окне - загадка.
 
скрипты это конечно хорошо, но как-то разбираться в таком массиве ради простенькой функции не особо тянет...
если "штатными" средствами нельзя, то и фик с ним, будем надеяться что таких окон не много видов

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 15:55 20-05-2018
totnetot



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeT BonpocoB

Цитата:
если "штатными" средствами нельзя, то и фик с ним

Если лениво с остальными способами разбираться - есть универсальное штатное средство - ImageSearch.
 
 
Добавлено:
Или более быстрый, но требующий большей настройки вариант - PixelSearch.

Всего записей: 410 | Зарегистр. 16-03-2013 | Отправлено: 17:52 20-05-2018
Wotantor

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Коллеги! Прошу помощи, сам не могу справиться.
Есть обычный пользователь, ему нужно запустить программу от имени другого пользователя у которого полные права на данную программу, с помощью AutoHotkey хочу создать экзешник, по клику на который, запуститься программа, отработают нажатия, все что нужно запуститься, после чего закроется программа. Вот наваял, на примере:
----
Run, Runas /user:domen\kin "C:\Windows\notepad.exe"
sleep 2000
Send, pass123
sleep 2000
Send {Enter}
-----
Ну и дальше должно быть еще, но пока застопорился на вводе пароля, он не хочет вводиться, то есть ожидает, что его введут ручками, а нужно автоматом. Не могу понять почему? Заранее благодарен за любую помощь.
С уважением.

Всего записей: 1 | Зарегистр. 22-05-2018 | Отправлено: 19:59 22-05-2018 | Исправлено: Wotantor, 20:00 22-05-2018
SetQ



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В Runas можно запомнить пароль и больше никогда не вводить.

Всего записей: 80 | Зарегистр. 12-12-2008 | Отправлено: 22:20 22-05-2018
Dror



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AutoHotkey 1.1.29.01 June 2, 2018
Цитата:
Fixed WinMove crashing the program in some cases [broken by v1.1.29.00].
Fixed Gui x:Default if no Gui has been created [broken by v1.1.29.00]



----------
kalach - он везде kalach, пусть и тёртый

Всего записей: 10487 | Зарегистр. 23-03-2006 | Отправлено: 16:53 02-06-2018
totnetot



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По этому вопросу.
Скрипт, который последовательно открывает в редакторе AkelPad 5 текстовых файлов.

Код:
#NoEnv
#NoTrayIcon
#SingleInstance, force
;by totnetot
;открываем в Alkepad последовательно 5 текстовых файлов
file_1 := "D:\temp111\AkelPad_Image_32\AkelPad.exe D:\temp111\0001.txt" ;команда открытия файла в редакторе
workdir_1 := "D:\temp111\" ;рабочая папка
file_2 := "D:\temp111\AkelPad_Image_32\AkelPad.exe D:\temp111\0002.txt"
workdir_2 := "D:\temp111\"
file_3 := "D:\temp111\AkelPad_Image_32\AkelPad.exe D:\temp111\0003.txt"
workdir_3 := "D:\temp111\"
file_4 := "D:\temp111\AkelPad_Image_32\AkelPad.exe D:\temp111\0004.txt"
workdir_4 := "D:\temp111\"
file_5 := "D:\temp111\AkelPad_Image_32\AkelPad.exe D:\temp111\0005.txt"
workdir_5 := "D:\temp111\"
loop
    {
        open_file := file_%A_index%
        workdir := workdir_%A_index%
        Run, %open_file%, %workdir%
        sleep 300
        Aindex_next := A_index + 1
        next_file := file_%Aindex_next%
        if next_file =
            {
                break
            }
    }
ExitApp

 
 
Добавлено:
Скрипт, который закрывает только выбранные файлы которые открыты в редакторе Alkepad.

Код:
#NoEnv
#NoTrayIcon
#SingleInstance, force
;Буква диска должна быть заглавной
file_1 := "D:\temp111\AkelPad_Image_32\AkelPad.exe D:\temp111\0001.txt" ;команда открытия файла в редакторе
workdir_1 := "D:\temp111\" ;рабочая папка
file_2 := "D:\temp111\AkelPad_Image_32\AkelPad.exe D:\temp111\0004.txt"
workdir_2 := "D:\temp111\"
FoundPos := RegExMatch(file_1, "(?<=\x20)[A-Z]{1,1}:.*$" , title_file, 1)
loop
    {
        close_file := file_%A_index%
        workdir := workdir_%A_index%
        Run, %close_file%, %workdir%
        sleep 500
        title_file_all = AkelPad - [%title_file%]
        #IfWinActive, title_file_all
            {
                Send ^{sc11} ;посылает нажатие ctrl-w (закрыть файл)
            }
        Aindex_next := A_index + 1
        next_file := file_%Aindex_next%
        if next_file =
            {
                break
            }
    }
ExitApp


Всего записей: 410 | Зарегистр. 16-03-2013 | Отправлено: 19:18 02-06-2018 | Исправлено: totnetot, 00:16 03-06-2018
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Всего записей: 1408 | Зарегистр. 05-04-2010 | Отправлено: 04:32 16-06-2018 | Исправлено: D1D1D1D, 18:04 16-06-2018
Shatll



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите,почему в игре скрипт срабатывает при двойном нажатии
 
Numpad3:: sendinput, {f6} /time set 200{enter}
 
А при таком один раз
 
Numpad3:: send, {f6} /time set 200{enter}

Всего записей: 142 | Зарегистр. 06-02-2006 | Отправлено: 23:23 19-06-2018 | Исправлено: Shatll, 23:24 19-06-2018
totnetot



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shatll
Лучше используй sendinput - он быстрее и надёжнее работает.

Всего записей: 410 | Зарегистр. 16-03-2013 | Отправлено: 00:23 20-06-2018
Shatll



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
что быстрее - это я прочитал в инете,но вот ПОЧЕМУ такое с нажатиями происходит,я не понимаю

Всего записей: 142 | Зарегистр. 06-02-2006 | Отправлено: 18:16 20-06-2018
Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shatll
Send (SendEvent) более совместимый, хотя и более медленный способ. Кроме того, он позволяет задавать интервалы между нажатиями и их продолжительность, например
SetKeyDelay 50, 50
 

Всего записей: 1254 | Зарегистр. 10-12-2007 | Отправлено: 20:50 20-06-2018
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как объединить следующие два кода — конвертирующий Unix-секунды в дату, и учитывающий часовой пояс? —

Код:
 
TimeInSec := 1427193636
Time := 19700101   ; первое января 1970 года
Time += TimeInSec, s
MsgBox, % Time
; . . .
UTCOffset_sec -= A_NowUTC, sec ; учитываем часовой пояс
DateTime = 19700101  
DateTime += ms_utc // 1000 + UTCOffset_sec, sec
MsgBox %DateTime%
 

Всего записей: 1408 | Зарегистр. 05-04-2010 | Отправлено: 20:04 22-06-2018 | Исправлено: D1D1D1D, 20:05 22-06-2018
kykrinik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D
TimeInSec := 1427193636, UTCOffset_sec :="", Time := 19700101   ; первое января 1970 года
Time += TimeInSec, s
MsgBox, % Time
; . . .
UTCOffset_sec -= A_NowUTC, sec ; учитываем часовой пояс
Time += UTCOffset_sec, sec
MsgBox, % Time

Всего записей: 227 | Зарегистр. 29-03-2016 | Отправлено: 15:01 23-06-2018
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kykrinik
Спасибо, амиго!

Всего записей: 1408 | Зарегистр. 05-04-2010 | Отправлено: 20:59 23-06-2018
totnetot



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тестирование регулярных выражений и обработка текстовых файлов.
RegExstar
Специально под AHK.

Всего записей: 410 | Зарегистр. 16-03-2013 | Отправлено: 14:09 05-07-2018 | Исправлено: totnetot, 14:10 05-07-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoHotkey


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru