Ru-Board.club
← Вернуться в раздел «Программы»

» AutoHotkey

Автор: vadim3sh
Дата сообщения: 19.11.2013 01:45
Привет

Я тут накомбинировал с миру по нитке [more=скрипт]
;_______User Settings_____________________________

; Make customisation only in this area or hotkey area only!!

; The percentage by which to raise or lower the volume each time:
vol_Step = 4

; How long to display the volume level bar graphs:
vol_DisplayTime = 2000

; Master Volume Bar color (see the help file to use more
; precise shades):
vol_CBM = Red

; Wave Volume Bar color
vol_CBW = Blue

; Background color
vol_CW = Silver

; Bar's screen position. Use -1 to center the bar in that dimension:
vol_PosX = -1
vol_PosY = -1
vol_Width = 150 ; width of bar
vol_Thick = 12 ; thickness of bar

; If your keyboard has multimedia buttons for Volume, you can
; try changing the below hotkeys to use them by specifying
; Volume_Up, ^Volume_Up, Volume_Down, and ^Volume_Down:
HotKey, RButton & WheelUp, vol_MasterUp ; Win+UpArrow
HotKey, RButton & WheelDown, vol_MasterDown
HotKey, +#Up, vol_WaveUp ; Shift+Win+UpArrow
HotKey, +#Down, vol_WaveDown


;___________________________________________
;_____Auto Execute Section__________________

; DON'T CHANGE ANYTHING HERE (unless you know what you're doing).

vol_BarOptionsMaster = 1:B ZH%vol_Thick% ZX0 ZY0 W%vol_Width% CB%vol_CBM% CW%vol_CW%
vol_BarOptionsWave = 2:B ZH%vol_Thick% ZX0 ZY0 W%vol_Width% CB%vol_CBW% CW%vol_CW%

; If the X position has been specified, add it to the options.
; Otherwise, omit it to center the bar horizontally:
if vol_PosX >= 0
{
vol_BarOptionsMaster = %vol_BarOptionsMaster% X%vol_PosX%
vol_BarOptionsWave = %vol_BarOptionsWave% X%vol_PosX%
}

; If the Y position has been specified, add it to the options.
; Otherwise, omit it to have it calculated later:
if vol_PosY >= 0
{
vol_BarOptionsMaster = %vol_BarOptionsMaster% Y%vol_PosY%
vol_PosY_wave = %vol_PosY%
vol_PosY_wave += %vol_Thick%
vol_BarOptionsWave = %vol_BarOptionsWave% Y%vol_PosY_wave%
}

#SingleInstance
SetBatchLines, 10ms
Return


;___________________________________________

vol_WaveUp:
SoundSet, +%vol_Step%, Wave
Gosub, vol_ShowBars
return

vol_WaveDown:
SoundSet, -%vol_Step%, Wave
Gosub, vol_ShowBars
return

vol_MasterUp:
SoundSet, +%vol_Step%
Gosub, vol_ShowBars
return

vol_MasterDown:
SoundSet, -%vol_Step%
Gosub, vol_ShowBars
return

vol_ShowBars:
; To prevent the "flashing" effect, only create the bar window if it
; doesn't already exist:
IfWinNotExist, vol_Wave
Progress, %vol_BarOptionsWave%, , , vol_Wave
IfWinNotExist, vol_Master
{
; Calculate position here in case screen resolution changes while
; the script is running:
if vol_PosY < 0
{
; Create the Wave bar just above the Master bar:
WinGetPos, , vol_Wave_Posy, , , vol_Wave
vol_Wave_Posy -= %vol_Thick%
Progress, %vol_BarOptionsMaster% Y%vol_Wave_Posy%, , , vol_Master
}
else
Progress, %vol_BarOptionsMaster%, , , vol_Master
}
; Get both volumes in case the user or an external program changed them:
SoundGet, vol_Master, Master
SoundGet, vol_Wave, Wave
Progress, 1:%vol_Master%
Progress, 2:%vol_Wave%
SetTimer, vol_BarOff, %vol_DisplayTime%
return

vol_BarOff:
SetTimer, vol_BarOff, off
Progress, 1:Off
Progress, 2:Off
return
RButton & LButton::Run c:\Program Files\Double Commander\doublecmd.exe
$RButton:: Gosub, PressCount

$RButton(1): F11.

Send , {RButton}
Return

$RButton(2):

Send , #{vk42}{Enter}
Return
PressCount:
Pause_=300

If not Second
{
Second=1
SetTimer, DoublePress, -%Pause_%
}
Else
{
Second=0
SetTimer, %A_ThisHotkey%(2), -1
}
Return

DoublePress:
If not Second
Return
Second=0
SetTimer, %A_ThisHotkey%(1), -1
Return


[/more], который:
1. RButton + LButton - у меня запускает Double Commander, но можно вписать что угодно
2. RButton + Wheel (вверх - вниз) - громкость с выводом индикатора
3. Двойной клик RButton - открывает спрятанные иконки трея(тоже можно назначить, что нравиться)
4. Функционал просто RButton (нативный?) сохраняется.
мож кому надо...
Автор: oshizelly
Дата сообщения: 19.11.2013 12:22
vadim3sh 01:45 19-11-2013
Цитата:
Я тут накомбинировал с миру по нитке скрипт [?], который:
1. RButton + LButton - у меня запускает Double Commander, но можно вписать что угодно

Круто! А я уже давно хотел именно такую, но сам не смог написать, а все найденные в сети варианты оказывались нерабочими. Ваш работает!
Автор: D1D1D1D
Дата сообщения: 21.11.2013 19:33
OnMyDSeeAtAll
С увеличением миллисекунд заработало, спасибо! Скажите, а допустимо в Вашем коде задействовать поиск по RegEx? Спрашиваю, потому что есть необходимость извлекать разную инфу, и не обязательно из тегов.
И ещё вопрос: можно ли сослаться на страницу, упакованную в CHM -- не зная её названия, по шаблону, т.е., чтобы обрабатывалась любая первая же попавшаяся HTML-страница (стартовая)?
Автор: D1D1D1D
Дата сообщения: 22.11.2013 21:18
Перевернул весь офиц. форум в поисках кода, получающего путь к активной странице CHM-файла (вида: "mk:@MSITStore:C:\WINDOWS\Help\clipbrd.chm::/whatis_intro_cb.htm").
Может кто-нибудь располагает?
Автор: vadim3sh
Дата сообщения: 22.11.2013 23:49
Привет
опаньки... восстановил систему из зоны безопасности...
скачал с оффсайта ахк (AutoHotkey_L_Install.exe 1.1.13.01)
Sistema win7 64 bit
Окно:
setup failed to initialize its user interface.
ERROR: 0x80020006 - Unknown name.

Do you want to install with default options?
Click Yes to install.

Ладно, йес
Опять окно:

setup.exe
ERROR:0x80020006 - unknown name.
Specifically: switchPage

Line
471: getWindow().switchPage(page)
Continue running script?

Ладно, опять йес...
еще раз такое же окно с той же строкой 471

Еще раз йес..
Тишина

Скрипты начинают запускаться, все работает

Однако, что это ? И как бы потом геморроя не было
Гугл молчит. Только это



Автор: OnMyDSeeAtAll
Дата сообщения: 24.11.2013 23:38
@D1D1D1D
21:33 21-11-2013
Цитата:
...поиск по RegEx?
Допустимо, достаточно из объекта экстрагировать разметку.
23:18 22-11-2013
Цитата:
Перевернул весь офиц. форум в поисках кода...
Примеры есть тут ([more=пояснил]
Код: If Not WinExist("ahk_class HH Parent")
{
MsgBox, 262160, % A_Space, % "No such window! (*.chm)", 1.5
ExitApp
}

WM_COMMAND:=0x0111, EM_SETSEL:=0x00B1, WM_COPY:=0x0301, WM_CLOSE:=0x0010
invokeJump2URL:=0x177E ; Go -> URL... menuitem code
clipContent:=ClipboardAll ; backup clipboard content

PostMessage, WM_COMMAND, invokeJump2URL
Sleep, 100 ; need just wait
PostMessage, EM_SETSEL, 0, -1, % "Edit2", % "ahk_class #32770"
Sleep, 50
; -.-
PostMessage, WM_COPY,,, % "Edit2", % "ahk_class #32770"
Sleep, 50
; -.-
PostMessage, WM_CLOSE,,,, % "ahk_class #32770"
MsgBox, 262208, % A_Space, % Clipboard
;, 1.5
Clipboard
:=clipContent ; return back a temporarily saved data
Автор: D1D1D1D
Дата сообщения: 25.11.2013 09:01
OnMyDSeeAtAll
Ого-го! Огромное спасибо!
Автор: D1D1D1D
Дата сообщения: 25.11.2013 18:08
Подскажите, как получить вывод MsgBox

Код: MsgBox, % 262 . (IsObject(ret:=HTMLGetObject("ahk_pid "uPID " ahk_class HH Parent")) ? 208:160)
, % IsObject(ret) ? "Result:":"Oops!"
, % IsObject(ret) ? (ret.document.getElementsByTagName("title")[0].innerText, ret:="")
. "" : "An error has occured!"
Process, Close, % uPID
Автор: creature_ws
Дата сообщения: 25.11.2013 20:34

Код: ret := HTMLGetObject("ahk_pid "uPID " ahk_class HH Parent")
str := IsObject(ret) ? (ret.document.getElementsByTagName("title")[0].innerText, ret:="")
. "" : "An error has occured!"
MsgBox % str
Process, Close, % uPID
Автор: 1ANP
Дата сообщения: 02.12.2013 19:30
OnMyDSeeAtAll

Цитата:

Как [more=вариант]
Код: SetTitleMatchMode, RegEx

~LButton::
~RButton::
KeyWait,
% thisHotkey:=SubStr(A_ThisHotkey, 2)
If WinActive("ahk_class WorkerW|CabinetWClass")
If A_TimeSincePriorHotkey Between 0 And 400
If % thisHotkey="LButton" ; 1), 3)
Send, % WinActive("ahk_class WorkerW") ? "#{vk45}"
. ""
: "!{Left}"
Else If WinActive("ahk_class WorkerW") ; 2)
{
Run,
% A_ProgramFiles "\Totalcmd\TOTALCMD.EXE"
Send,
% "{Esc}" ; закрытие контекстного меню
}
Return
[/more].
Автор: OnMyDSeeAtAll
Дата сообщения: 02.12.2013 19:55
Да собственно делает то, что Вами же и описано (в коде смотрим комментарии в виде циферок со скобками...).
Цитата:
...у меня не работает...
На моей машине (w81x64) всё работает.
Автор: 1ANP
Дата сообщения: 02.12.2013 20:58
OnMyDSeeAtAll
У меня на w7 x64: на первой машине ничего не выполнялось, на второй же п.3 заработал но странно:
1) двойной щелчок ЛКМ по рабочему столу - (запуск проводника) ничего не делает;
2) двойной щелчок ПКМ по рабочему столу - (запуск TC) ничего не делает (даже после смены пути);
3) двойной щелчок ЛКМ в свободном месте окна Explorer - ура, делает переход в папку уровнем выше,
но в то же время: двойной клик по папкам в проводнике не заходит в папку а открывает её в новом окне и возвращает исходную папку на уровень выше.
Класс окна что ли тут другой у рабочего стола...

Вопрос возник из желания привить проводнику полезные функции файлового менеджера Directory Opus - запуск двойным кликом по рабочему столу, выход из папок на уровень вверх двойным кликом мышки (вверх, а не назад). Ну очень уж цена там не демократичная.
Еще было бы интересно перенести возможность назначать какие-либо функции для таких действий:
- средний двойной клик по папке в проводнике (допустим для открытия в TC)
- средний двойной клик по файлу какого либо типа (допустим для открытия в альтернативном редакторе);
- средний двойной клик по файлу/папке + Alt/Ctrl/Shift
- аналогично левый двойной клик + Alt/Ctrl/Shift
- Drag-and-drop + Alt/Ctrl/Shift.
Хотя даже просто пункт 3 значительно упростит жизнь, особенно владельцам планшетов.
Автор: parkovaya1
Дата сообщения: 18.12.2013 01:23
Зацените вот этот мегаскрипт на ядре AHK
http://www.autohotkey.com/board/topic/46856-radial-menu-scripts-updated-19112013/
Поддержка жестов мыши + Radial Menu (см. скриншоты по ссылке) + все функции стандартного AHK
все это настраивается в контексте любого приложения или для всей системы
и полностью инкапсулировано (никак не мешает работе оригинального AHK)
Автор: Ymmarilo
Дата сообщения: 03.01.2014 15:43
А как можно результат работы функции (число) присвоить в переменную, а потом использовать это число вне AutoHotkey, допустим в javascript в браузере?

Сейчас AutoHotkey записывает это число в буфер обмена, а потом мой javascript считывает его оттуда. Но может есть другой способ, не используя буфер?
Автор: aidomars
Дата сообщения: 03.01.2014 15:55
Ymmarilo
http://www.script-coding.com/AutoHotkey/IniRead.html
http://www.script-coding.com/AutoHotkey/IniWrite.html
Автор: Ymmarilo
Дата сообщения: 03.01.2014 16:27
aidomars

Цитата:
http://www.script-coding.com/AutoHotkey/IniRead.html
http://www.script-coding.com/AutoHotkey/IniWrite.html

То есть переменная будет записываться в INI-файл, а мой javascript потом будет оттуда её считывать? Это не сильно отличается от варианта с буфером обмена.

А нет ли способа передать значение этой переменной внешнему приложению, без записи в INI или Clipboard?

Автор: OwwO
Дата сообщения: 19.01.2014 01:41
Хочу послать нажатие клавиш
SendInput, ^s    

все работает, но если раскладка на русском то просто посылает букву "s" в реактор, нагуглил про скан-коды, если так
^sc01F:: ;нажато ctr+s

то нормально все

а если написать так же но для Send
SendInput, {^sc01F}

То не нажимает ctrl+s

Как послать ctrl+s на разных раскладках? Мб версия ahk надо другая, я с оф сайта не понял какую лучше качать, скачал AutoHotkey111401_ansi
Автор: HeT BonpocoB
Дата сообщения: 19.01.2014 09:51
OwwO, вродь формат такой:

Send, ^{sc01F}
Автор: OwwO
Дата сообщения: 19.01.2014 13:36
HeT BonpocoB
точно, работает не туда ^ ставил, спасибо огромное
Автор: creature_ws
Дата сообщения: 19.01.2014 16:59

Цитата:
1.1.14.00 - January 15, 2014

Added Finally statement for performing cleanup after try/catch. [fincs]



Код: try
throw "msg"
catch e
MsgBox % e
finally
MsgBox end
Автор: gost2
Дата сообщения: 20.01.2014 12:46
У кого-то работает Obfuscator for Autohotkey Scripts?

http://www.autohotkey.com/board/topic/89357-obfuscator-for-autohotkey-scripts/?view=findpost&p=629435&hl=%2Bobfuscator
Автор: subzeronoobsaibot
Дата сообщения: 09.02.2014 14:30
как с автохоткей забендить комбинацию для игр например фаталити бруталити ?
весь нет облазил никто не знает.
Автор: vadim3sh
Дата сообщения: 09.02.2014 23:17
subzeronoobsaibot

Цитата:
комбинацию для игр например фаталити бруталити

как-то не очень понял, чего хочется..
Автор: subzeronoobsaibot
Дата сообщения: 10.02.2014 08:42
Мне нужно комбо для игр, чтоб я 1 кнопку нажал а в игре сработало комбо.
Это вообще возможно ?
Автор: vadim3sh
Дата сообщения: 10.02.2014 20:52
Вообще-то легко, за исключением одного неприятного момента: некоторые современные игрушки перехватывают сигнал на том-же уровне, что и AutoHotkey. И скрипты тупо не работают, или работают некорректно. Я пробовал делать для Neverwinter online - не получилось. Но, как правило, все происходит..
Автор: subzeronoobsaibot
Дата сообщения: 10.02.2014 22:17
Ты прикалываешся надомной ?

Цитата:
Вообще-то легко

вообще то легко и все ? а пример скрипта ?
по нику понятно же какие игры меня интересуют
ФАЙТИНГИ !!!
комбо нужно для игр жанра ФАЙТИНГ а не онлайн рпг. играю на эмуляторах в игры от
сеги соньки дримки итд итп .
Автор: vadim3sh
Дата сообщения: 10.02.2014 22:56
subzeronoobsaibot

Цитата:
а пример скрипта ?


Цитата:
Это вообще возможно ?

Ну дык, "вооще возможно". Знаю, что люди увлеченные делают без проблем. А пример скрипта у них надо спрашивать(ну, подождать,когда здесь кто-нибудь больше в теме появится), или поконкретнее задать , какое действие надо автоматизировать. А детально.. сорри, не плавал. Делал по заявке от сына, сам от игрушек немножко далек..

Цитата:
ФАЙТИНГИ !!!
и это мне почти ничего не говорит
И еще.. лично мне по-барабану.. но некоторые здесь могут заворчать насчет "ты-вы". Это для информации

Автор: subzeronoobsaibot
Дата сообщения: 11.02.2014 09:55
А кому и куда можно задать вопрос для получения конкретного ответа ?
Ну в смысле где можно чела найти который реально аутохоткей по серьезки занимается ?
Автор: gost2
Дата сообщения: 11.02.2014 13:05
http://ahkscript.org/
Автор: vadim3sh
Дата сообщения: 11.02.2014 15:20
subzeronoobsaibot

Цитата:
конкретного ответа ?

Ну, как бы для получения "конкретного" ответа надо бы, возможно, вопрос сформулировать поконкретнее? Сделать скрипт на досуге чисто из спортивного интереса могут попробовать помочь и здесь, но вот я, например, очевидно в силу старческого тугодумия, все еще не представляю, как можно сделать "конкретный" скрипт на основании:

Цитата:
1 кнопку нажал а в игре сработало комбо. Это вообще возможно ?


Цитата:
комбо нужно для игр жанра ФАЙТИНГ


Может, я что-то пропустил...?
gost2

Цитата:
ahkscript.org/

Спасибо, не знал про этот ресурс

Страницы: 12345678910111213141516171819202122232425262728293031323334

Предыдущая тема: как добавить ивритские шрифты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.