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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 77 78

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

chum2000

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

   
 
Актуальная версия: AutoHotkey 2.0.19 от 25 января 2025
Версия для 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 | Исправлено: creature_ws, 15:56 10-06-2025
Zeroes



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D
 
конечно возможно, только переделать надо по синтаксис v1.
 
А в чем проблема вообще? иногда не прорисовывается что то ?  в каких случаях?

Всего записей: 580 | Зарегистр. 23-10-2003 | Отправлено: 02:11 26-11-2024
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zeroes
Код не работает на v1 во всех случаях

Всего записей: 1506 | Зарегистр. 05-04-2010 | Отправлено: 06:40 26-11-2024
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно ли добиться (сохранив без изменений хоткей), чтобы пример кода, в момент активности над страницей браузера - не увеличивал страницу, а выводил тултип? То есть, видимо - заблокировать на время нажатия, действие кнопки Ctrl

Код:
~^WheelUp::
   Tooltip, ^WheelUp
   Sleep, 900
   Tooltip
return


Всего записей: 1506 | Зарегистр. 05-04-2010 | Отправлено: 07:14 29-11-2024 | Исправлено: D1D1D1D, 07:16 29-11-2024
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нет ли версий, по какой причине скачивание страницы с ютуба через рабочий прокси не срабатывает? Страница приходит без текстов, в виде пустого шаблона

Код:
proxy := "127.0.0.1:18080"
 
   ;HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
   HTTP := ComObjCreate("MSXML2.ServerXMLHTTP.6.0")
   ;HTTP := ComObjCreate("Msxml2.XMLHTTP.6.0")
 
   HTTP.Open("GET", "https://www.youtube.com/watch?v=G6SD9ZZdMOU", 0)
   ComObjError(false)
   HTTP.SetProxy(2, proxy)
   HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
   HTTP.SetRequestHeader("path", "/watch?v=IKkQF-p4a6I")
   HTTP.SetRequestHeader("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7")
   HTTP.SetRequestHeader("accept-language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7")
   HTTP.Send()
   ;HTTP.WaitForResponse()
   html := HTTP.ResponseText
   ;FileAppend, %html%`n, %a_desktop%\temp1.html
   msgbox % html

Всего записей: 1506 | Зарегистр. 05-04-2010 | Отправлено: 18:26 28-12-2024
la_tangram



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть скрипт, сохраняющий содержимое буфера обмена в jpg-файл (SaveBitmapToJpeg).
Работает в первой версии, но после преобразования во вторую версию, выдаёт ошибку  
 
Error: This value of type "ComValue" has no property named "Size".
 
в этой функции:
v2

Код:
 
Vtable(ptr, n) {
   return DllCall.Bind(NumGet(NumGet(ptr, "UPtr"), A_PtrSize*n, "UPtr"), "Ptr", ptr)
}
 

 
Рабочая функция v1 выглядит так:

Код:
 
Vtable(ptr, n) {
   return Func("DllCall").Bind(NumGet(NumGet(ptr+0), A_PtrSize*n), "Ptr", ptr)
}

 
   
Пример вызова vtable:

Код:
 
IWICImagingFactory := ComObject(CLSID_WICImagingFactory, IID_IWICImagingFactory)
Vtable( IWICImagingFactory    , CreateBitmapFromHBITMAP := 21 ).Call("Ptr", hBitmap, "Ptr", 0, "UInt", WICBitmapIgnoreAlpha, "PtrP", &IWICBitmap)
 

Всего записей: 172 | Зарегистр. 15-03-2005 | Отправлено: 15:40 31-01-2025 | Исправлено: la_tangram, 15:56 31-01-2025
la_tangram



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Разобрался с ошибками, рабочий код добавил в упомянутой теме форума-источника.
Кому интересно:
функция Vtable в своих параметрах ожидает целые значения, поэтому правильный вызов c Com-объектом такой:
Код:
Vtable(IWICImagingFactory.ptr, CreateBitmapFromHBITMAP := 21).Call...

 
далее требовалось инициировать переменные-указатели как целые числа: IWICBitmapFrameEncode, IWICBitmapEncoder, IPropertyBag2, IWICStream, IWICBitmap
пример:
Код:
IWICBitmap := 0

 
и правильно указать параметры для функции Call
Там, где указан тип указателя "PtrP или целого значения "UIntP", параметр-переменная должен передаваться по ссылке - т.е. он может изменяться функцией и должен быть доступен для других вызовов.
примеры:
Код:
"PtrP", &IWICBitmap
"UIntP", &count

 
Я могу ошибаться в терминологии, поправьте, если что. Сильно эту тему не копал.
Данный код мне интересен, так как я пользуюсь подобным преобразованием с помощью IrfanView:
Код:
IRFANVIEW_PATH " /clippaste /jpgq=" JPG_QUALITY " /convert=" DESTINATION_FULLPATH

Всего записей: 172 | Зарегистр. 15-03-2005 | Отправлено: 21:30 05-02-2025 | Исправлено: la_tangram, 21:51 05-02-2025
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
AutoHotKey. Есть конструкция автозамены

Код:
:*:fme::
  if условие
    send что-то
  else
    send fme
return
 
Она срабатывает, если набираю и fme и FmE. Как сделать так, чтобы, если не выполняется Условие, посылалось точно то, что было набрано, в том же регистре?

Всего записей: 2773 | Зарегистр. 18-05-2005 | Отправлено: 17:45 23-02-2025 | Исправлено: Samotek, 17:45 23-02-2025
AlexPORTrb



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samotek
Вроде это должно помочь - https://www.autohotkey.com/docs/v2/Variables.htm#ThisHotkey, а еще конкретно последний символ в A_EndChar помещается.
 
А у меня другой вопрос по автозамене - вот скажем у меня набрано много строк автозамены и я хочу чтобы при срабатывании любой из них воспроизводился звук, типа индикации срабатывания. Как это сделать, не прописывая вызов звука в каждое правило с помощью скобок {} ? Хотелось бы остаться в короткой однострочной нотации в виде строк с двоеточиями типа :*:пр!::Привет!  
 
Какой-то бы триггер повесить на все строки автозамены или подписки на события...

Всего записей: 262 | Зарегистр. 22-02-2010 | Отправлено: 08:07 21-03-2025
73



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Просьба подсказать скрипт AHK автозамены одной комбинации клавиш на другую. Например, Ctrl+Shift+T на Alt+Z и так далее. Для других сочетаний переделаю под свой вкус.

Всего записей: 1500 | Зарегистр. 18-08-2012 | Отправлено: 16:36 22-03-2025
Samotek

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

Цитата:
подсказать скрипт AHK

Например
^+vk54::    ;  "Ctrl+Shift+T"
{
  send !{vk5A}    ;  "Z"
}
return
 

Всего записей: 2773 | Зарегистр. 18-05-2005 | Отправлено: 17:27 22-03-2025
73



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samotek
Там должно быть наоборот, при нажатии Alt-Z передается Ctrl+Shift+T. Поменял, но теперь ругается на !{vk5A}    ;  "Z" не содержит recognized action

Всего записей: 1500 | Зарегистр. 18-08-2012 | Отправлено: 18:32 22-03-2025
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
73
По-моему я ответил на вопрос

Цитата:
Например, Ctrl+Shift+T на Alt+Z  

 

Всего записей: 2773 | Зарегистр. 18-05-2005 | Отправлено: 20:43 22-03-2025
Zivers



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сейчас бы в век нейронок жить в каменном и спрашивать людей про ошибки в коде и как что сделать в скрипте

Всего записей: 1137 | Зарегистр. 03-06-2006 | Отправлено: 21:02 22-03-2025 | Исправлено: Zivers, 21:03 22-03-2025
Zeroes



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
73
 
для Ahk V2.x :
 
!vk5A:: Send "^+{vk54}"

Всего записей: 580 | Зарегистр. 23-10-2003 | Отправлено: 12:49 24-03-2025 | Исправлено: Zeroes, 12:49 24-03-2025
73



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zeroes
Благодарю, все работает в лучшем виде. Интересно, есть ли возможность отловить в FireFox такое событие, как наведение курсора на ссылку, когда обычная стрелка превращается в руку с выставленным указательным пальцем?

Всего записей: 1500 | Зарегистр. 18-08-2012 | Отправлено: 10:02 25-03-2025
Zeroes



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
73
 
возможно и есть
есть функция ImageSearch
 
но никогда её не юзал.
 

Всего записей: 580 | Зарегистр. 23-10-2003 | Отправлено: 12:03 25-03-2025
kvn0

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В Windows давно существует проблема(https://superuser.com/questions/426947/slow-windows-desktop-keyboard-shortcuts): если стандартно навесить hotkey на ярлык на рабочем столе, то часто наблюдается ожидание 3-4 секунды перед началом выполнения команды.  
При этом стандартные сочетания типа Win + . выполняются практически мгновенно.
 
Если использовать AHK - нет ли подобной задержки.

Всего записей: 65 | Зарегистр. 16-06-2005 | Отправлено: 14:52 11-04-2025
Zeroes



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

Всего записей: 580 | Зарегистр. 23-10-2003 | Отправлено: 18:49 11-04-2025
DonKarlosOn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дано:
 
ТВ подключен к встройке процессора кабелем HDMI. Это не основная видеокарта. Для того, чтобы ТВ увидел источник сигнала (встройку) перед просмотром фильмов, надо нажать Win+P, и выбрать вариант "Расширить экран".  
 
На свежепереустановленной Windows 10 та же картина.
 
Хотелось автоматизировать это действие.
 


 
Kodi у меня запускается с ПДУ Майкрософт через следующий скрипт (решение с просторов инета):
 

Код:
;Written by EliteGamer360, Please give credit When you Copy and use my scripts for any other purpose.
;GSB_Script_Allinone_v2.39
 
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
 
#SingleInstance, Force
^!Enter::    ;Ctrl-Alt-Enter is the shortcut to start Kodi using the Big Green Start Button.
    IfWinNotExist Kodi.exe ;If Kodi is not running
    VarSetCapacity(si,44)
    DllCall("GetNativeSystemInfo", "uint", &si)
        if ErrorLevel {
        MsgBox Windows XP or later required.
        ExitApp
    }
        ARM := NumGet(si,0,"ushort")
        run % ARM=0 ? "D:\Programs\Kodi\Kodi.exe" : ARM=9 ? "D:\Programs\Kodi\Kodi.exe" : ARM=6 ? "IA64" : "Unknown System"
 
        f (ARM = 0)
        {
            32or64 := "32bit"
        }
        If (ARM = 9)
        {
            32or64 := "64bit"
        }
        If (ARM = 6)
        {
            32or64 := "Unknown System"
    }
 
    WinActivate ;Activate and Refocus Kodi.
    WinShow ;Bring Kodi to front.
    WinGet, Style, Style, ahk_class Kodi
    if (Style & 0xC00000)  ;0xC00000 is WS_CAPTION, meaning window has a title bar.
    {
        Send {VKDC}  ;Maximize Kodi to fullscreen mode if its in a window mode.
    }
    Return
 
 
        SetTitleMatchMode 2
        #IfWinActive Kodi ahk_class Kodi ; Kodi detection for Kodi/GSB Home Screen action.
        ^!Enter::
        WinGet, Style, Style, ahk_class Kodi
        if (Style & 0xC00000)  ;0xC00000 is WS_CAPTION, meaning window has a title bar.
        {
                Send {VKDC}  ;Maximize Kodi to fullscreen mode if its in a window mode.
        }
        ;WinMaximize ;Maximize Kodi if Windowed.
        send, ^!{VK74} ; if Kodi is Active (GSB Home Jump will activate)
        Return
        #IfWinActive ;
 
 
^F11::    ;Swap/Extend/activate monitors script
    if toggle := !toggle
           run % "displayswitch /" "extend"
        else
           run % "displayswitch /" "external"
            Run, mmsys.cpl  
                WinWait,Sound  
                ControlSend,SysListView321,{Down3}  
                ControlGet, isEnabled, Enabled,,&Set Default  
            if(!isEnabled)  
            {  
                   ControlSend,SysListView321,{Down}  
            }  
            ControlClick,&Set Default  
            ControlClick,OK  
            WinWaitClose  
            SoundPlay, *-1  
        return
 
 
    ^VK7B::  ; CTRL+F12 to activate/deactivate SmartFocus
        KeepWinZRunning := (KeepWinZRunning || KeepWinZRunning = "") ? False : True
        if (!KeepWinZRunning)
           {
               SoundPlay, %A_AppData%\Xbmccustomregis\smartfocusactivated.mp3
               SetTimer, WindowCheck, 250
           }
        Else  
               SoundPlay, %A_AppData%\Xbmccustomregis\smartfocusdeactivated.mp3
                Return  
 
        WindowCheck: ; Below checks if the KODI window is activate
            If WinExist("Kodi") && !WinActive("Kodi")
                {
                       WinActivate, Kodi
                       WinMaximize, Kodi
                }
            if (KeepWinZRunning)  ; The user signaled the loop to stop by pressing CTRL+F12 again.
                   SetTimer, WindowCheck, Off  ; Break out of this loop.
        Return
            ;Written by EliteGamer360, Please give credit When you Copy and use my scripts for any other purpose.
            ;Copyright @ XBMCCUSTOMREGIS.SOURCEFORGE.NET
 
 

 


 
Прошу помощи. Нужно поправить его так, чтобы ТВ увидел встройку ПЕРЕД запуском Kodi.
 
В скрипте уже имеется следующая команда:
 

Код:
^F11::    ;Swap/Extend/activate monitors script
    if toggle := !toggle
           run % "displayswitch /" "extend"
        else
           run % "displayswitch /" "external"
            Run, mmsys.cpl  
                WinWait,Sound  
                ControlSend,SysListView321,{Down3}  
                ControlGet, isEnabled, Enabled,,&Set Default  
            if(!isEnabled)  
            {  
                   ControlSend,SysListView321,{Down}  
            }  
            ControlClick,&Set Default  
            ControlClick,OK  
            WinWaitClose  
            SoundPlay, *-1  
        return
 

 
Предположу, что мне нужно что-то типа
 
run % "displayswitch /" "extend"?
 
Вопрос в том, как будет выглядеть полная команда и в какое место скрипта ее вставить?
 
Спасибо.

Всего записей: 23 | Зарегистр. 04-09-2009 | Отправлено: 00:28 14-04-2025
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
Нашел такой пример для своего msgbox, чтоб шрифтами можно было управлять. Вроде работает, но голову сломал как кнопку отцентрировать по горизонтали. Подскажите, пожалуйста, кто знает
 

Код:
Gui, -MinimizeBox -MaximizeBox
Gui, Font, s15, Times New Roman
Gui, Add, Text,, I spent hours building this GUI, honest!
Gui, Font, s9
Gui, Add, Button, x+50 yp+40 W80 Default, OK
Gui, Show,, MsgQuadrilateral
SoundPlay, *-1
Gui, +LastFound
WinWaitClose
;ExitApp
 
GuiEscape:
ButtonOK:
Gui, Destroy
return
 
GuiSize:
GuiControlGet, Button1, Pos
GuiControl, Move, Button1, % "x" (A_GuiWidth-Button1W)//2
return
 

Всего записей: 2773 | Зарегистр. 18-05-2005 | Отправлено: 15:56 19-04-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 77 78

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru