Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

AutoHotkey

Автор Квас, сентября 8, 2010, 11:42

0 Пользователи и 1 гость просматривают эту тему.

RawonaM

Как мало надо для счастья:

RControl & Up::Send {PgUp}
RControl & Down::Send {PgDn}
RControl & Left::Send {Home}
RControl & Right::Send {End}


8-)

myst


myst

Цитата: Квас от сентября  8, 2010, 23:12
Короче, достаточно дружат AutoHotkey с Уникодом, чтобы я эту фигню набрал. Например, файлы .ahk можно сохранять в UTF-8.
Значит уже дружит. Это хорошо.

RawonaM

Цитата: myst от сентября  9, 2010, 11:29
^Up::SendInput {PgUp}
^Down::SendInput {PgDn}
Не гут, надо тока правый ктрл. Я уже сделал. А в чем разница между Send и SendInput?

myst

Цитата: RawonaM от сентября  9, 2010, 12:34
А в чем разница между Send и SendInput?
Я так понял, SendInput работает через SendInput(), а Send — через механизм сообщений.

Квас

Цитата: myst от сентября  8, 2010, 15:11
Если постоянно переключать две, самый эффективный метод — это повесить их на шифты или контролы. Переключать не правильно, правильно включать. :)

Это я согласен. Уже сделал. :yes:
Пишите письма! :)

Квас

myst, за AHK огромное спасибо! ;up: У меня теперь тоже человеческое тире есть, а также «ёлочки»! Не считая скриптика для открытия электронных книг. :=

С уникодом он не сказать чтобы дружит. Вернее сказать общаются. А дружит его модификация AutoHotkey_L.
Пишите письма! :)

myst

Цитата: Квас от сентября 11, 2010, 20:31
myst, за AHK огромное спасибо! ;up:
Пожалуйста. :)

Цитата: Квас от сентября 11, 2010, 20:31
У меня теперь тоже человеческое тире есть, а также «ёлочки»!
Это ить в раскладку можно добавить. Могу даже готовой поделиться.

Квас

Цитата: myst от сентября 11, 2010, 21:00
Это ить в раскладку можно добавить. Могу даже готовой поделиться.

Спасибо, не стоит. :) Я собирался как-то сам добавить, да так и не собрался. Зато у меня «ёлочки» — smart, а в раскладке без второй клавиши, наверно, не обойтись.

Кстати, апостроф и закрывающая кавычка - это не одно и то же?
Пишите письма! :)

myst

Цитата: Квас от сентября 11, 2010, 21:10
Кстати, апостроф и закрывающая кавычка - это не одно и то же?
Нет вроде.

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Квас

Цитата: Bhudh от сентября 11, 2010, 23:41
U+0027 APOSTROPHE vs. U+2019 RIGHT SINGLE QUOTATION MARK

Это я видал. U+0027 — это, очевидно, в точности то, что должна производить клавиша «апостроф» английской раскладки. Но этот символ бывает не очень-то похож на запятую. В то же время определённо я видел книги, в которых апостроф и закрывающаяся кавычка имели одинаковую форму запятой.

У меня недоверие к Basic Latin. В конце концов, там  в качестве кавычек указывается единственно двойная открывающая и она же закрывающая. В нормальных книгах так не делается.
Пишите письма! :)

Bhudh

В уникоде до фига разных кавычек. Одинарные, двойные, парные, непарные, угловые, жирные...
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

myst

Цитата: Квас от сентября 11, 2010, 23:49
Это я видал. U+0027 — это, очевидно, в точности то, что должна производить клавиша «апостроф» английской раскладки. Но этот символ бывает не очень-то похож на запятую.
Цитата: http://en.wikipedia.org/wiki/Apostroph#Computing
There are several types of apostrophe character in Unicode:
( ' ) Vertical typewriter apostrophe (Unicode name apostrophe or apostrophe-quote), U+0027, inherited from ASCII.
( ' ) Punctuation apostrophe (or typographic apostrophe; right single quotation mark; single comma quotation mark), U+2019. Serves as both an apostrophe and closing single quotation mark. This is the preferred character to use for apostrophe according to the Unicode standard.[61]
( ʼ ) Letter apostrophe (or modifier letter apostrophe), U+02BC. This is preferred when the apostrophe is not considered punctuation that separates letters, but a letter in its own right. Examples occur in Breton cʼh, the Cyrillic Azerbaijani alphabet, or in some transliterations such as the transliterated Arabic glottal stop, hamza, or transliterated Cyrillic soft sign. As the letter apostrophe is seldom used in practice, the Unicode standard cautions that one should never assume text is coded thus. The letter apostrophe is rendered identically to the punctuation apostrophe in the Unicode code charts.[62]
( ʻ ) The Hawaiian glottal stop, the ʻokina, has its own Unicode character, U+02BB.
( ˮ ) Nenets languages Double letter apostrophe (Unicode name modifier letter double apostrophe), U+02EE.
(  ՚  ) Armenian apostrophe, U+055A.
А ведь Вы правы. Действительно правая одиночная кавычка.

Тайльнемер

Цитата: Квас от сентября 11, 2010, 21:10
Кстати, апостроф и закрывающая кавычка - это не одно и то же?
Да. Дурь, но это так.
Цитата: Bhudh от сентября 12, 2010, 00:10
В уникоде до фига разных кавычек.
В уникоде недостаточное количество разных кавычек.

Тайльнемер

Цитата: Квас от сентября 11, 2010, 20:31
А дружит его модификация AutoHotkey_L.
А вот за "_L" вам спасибо, Квас!
Я ведь AHK не стал использовать именно из-за неуникодности.

Квас

Пишите письма! :)

O

Наконец, скачал, установил, запустил. Предложила создать пример скрипта. Отказался. Закрылась. Запустил снова, согласился, создала, закрылась. Запускаю — ругается, что, дескать, #z::Run www.autohotkey.com — негодный скрипт, и отказывается работать. Выясняется, что ей обязательно нужна английская раскладка по умолчанию. Бред какой-то, ей-богу!
gdy padła granica, pękły więzień bramy,
w ten dzień wyzwolenia: siedemnasty września

Квас

Да, буквы в горячих клавишах — это самая неудобная вещь. Чтобы сделать независящие от раскладки сочетания, используются сканкоды или виртуальные коды. Не вдаваясь в то, чем они отличаются, я имею обыкновение пользоваться сканкодами, в чём помогает следующий немудрёный скрипт:

SetTitleMatchMode, 2
return
#IfWinActive, SciTE4AutoHotkey
^+sc01::SendInput, sc01
^+sc02::SendInput, sc02
^+sc03::SendInput, sc03
^+sc04::SendInput, sc04
^+sc05::SendInput, sc05
^+sc06::SendInput, sc06
^+sc07::SendInput, sc07
^+sc08::SendInput, sc08
^+sc09::SendInput, sc09
^+sc0A::SendInput, sc0A
^+sc0B::SendInput, sc0B
^+sc0C::SendInput, sc0C
^+sc0D::SendInput, sc0D
^+sc0E::SendInput, sc0E
^+sc0F::SendInput, sc0F
^+sc10::SendInput, sc10
^+sc11::SendInput, sc11
^+sc12::SendInput, sc12
^+sc13::SendInput, sc13
^+sc14::SendInput, sc14
^+sc15::SendInput, sc15
^+sc16::SendInput, sc16
^+sc17::SendInput, sc17
^+sc18::SendInput, sc18
^+sc19::SendInput, sc19
^+sc1A::SendInput, sc1A
^+sc1B::SendInput, sc1B
^+sc1C::SendInput, sc1C
^+sc1D::SendInput, sc1D
^+sc1E::SendInput, sc1E
^+sc1F::SendInput, sc1F
^+sc20::SendInput, sc20
^+sc21::SendInput, sc21
^+sc22::SendInput, sc22
^+sc23::SendInput, sc23
^+sc24::SendInput, sc24
^+sc25::SendInput, sc25
^+sc26::SendInput, sc26
^+sc27::SendInput, sc27
^+sc28::SendInput, sc28
^+sc29::SendInput, sc29
^+sc2A::SendInput, sc2A
^+sc2B::SendInput, sc2B
^+sc2C::SendInput, sc2C
^+sc2D::SendInput, sc2D
^+sc2E::SendInput, sc2E
^+sc2F::SendInput, sc2F
^+sc30::SendInput, sc30
^+sc31::SendInput, sc31
^+sc32::SendInput, sc32
^+sc33::SendInput, sc33
^+sc34::SendInput, sc34
^+sc35::SendInput, sc35
^+sc36::SendInput, sc36
^+sc37::SendInput, sc37
^+sc38::SendInput, sc38
^+sc39::SendInput, sc39
^+sc3A::SendInput, sc3A
^+sc3B::SendInput, sc3B
^+sc3C::SendInput, sc3C
^+sc3D::SendInput, sc3D
^+sc3E::SendInput, sc3E
^+sc3F::SendInput, sc3F
^+sc40::SendInput, sc40
^+sc41::SendInput, sc41
^+sc42::SendInput, sc42
^+sc43::SendInput, sc43
^+sc44::SendInput, sc44
^+sc45::SendInput, sc45
^+sc46::SendInput, sc46
^+sc47::SendInput, sc47
^+sc48::SendInput, sc48
^+sc49::SendInput, sc49
^+sc4A::SendInput, sc4A
^+sc4B::SendInput, sc4B
^+sc4C::SendInput, sc4C
^+sc4D::SendInput, sc4D
^+sc4E::SendInput, sc4E
^+sc4F::SendInput, sc4F
^+sc50::SendInput, sc50
^+sc51::SendInput, sc51
^+sc52::SendInput, sc52
^+sc53::SendInput, sc53
^+sc54::SendInput, sc54
^+sc55::SendInput, sc55
^+sc56::SendInput, sc56
^+sc57::SendInput, sc57
^+sc58::SendInput, sc58
^+sc59::SendInput, sc59
^+sc5A::SendInput, sc5A
^+sc5B::SendInput, sc5B
^+sc5C::SendInput, sc5C
^+sc5D::SendInput, sc5D
^+sc5E::SendInput, sc5E
^+sc5F::SendInput, sc5F
^+sc60::SendInput, sc60
^+sc61::SendInput, sc61
^+sc62::SendInput, sc62
^+sc63::SendInput, sc63
^+sc64::SendInput, sc64
^+sc65::SendInput, sc65
^+sc66::SendInput, sc66
^+sc67::SendInput, sc67
^+sc68::SendInput, sc68
^+sc69::SendInput, sc69
^+sc6A::SendInput, sc6A
^+sc6B::SendInput, sc6B
^+sc6C::SendInput, sc6C
^+sc6D::SendInput, sc6D
^+sc6E::SendInput, sc6E
^+sc6F::SendInput, sc6F
^+sc70::SendInput, sc70
^+sc71::SendInput, sc71
^+sc72::SendInput, sc72
^+sc73::SendInput, sc73
^+sc74::SendInput, sc74
^+sc75::SendInput, sc75
^+sc76::SendInput, sc76
^+sc77::SendInput, sc77
^+sc78::SendInput, sc78
^+sc79::SendInput, sc79
^+sc7A::SendInput, sc7A
^+sc7B::SendInput, sc7B
^+sc7C::SendInput, sc7C
^+sc7D::SendInput, sc7D
^+sc7E::SendInput, sc7E
^+sc7F::SendInput, sc7F
^+sc80::SendInput, sc80
^+sc81::SendInput, sc81
^+sc82::SendInput, sc82
^+sc83::SendInput, sc83
^+sc84::SendInput, sc84
^+sc85::SendInput, sc85
^+sc86::SendInput, sc86
^+sc87::SendInput, sc87
^+sc88::SendInput, sc88
^+sc89::SendInput, sc89
^+sc8A::SendInput, sc8A
^+sc8B::SendInput, sc8B
^+sc8C::SendInput, sc8C
^+sc8D::SendInput, sc8D
^+sc8E::SendInput, sc8E
^+sc8F::SendInput, sc8F
^+sc90::SendInput, sc90
^+sc91::SendInput, sc91
^+sc92::SendInput, sc92
^+sc93::SendInput, sc93
^+sc94::SendInput, sc94
^+sc95::SendInput, sc95
^+sc96::SendInput, sc96
^+sc97::SendInput, sc97
^+sc98::SendInput, sc98
^+sc99::SendInput, sc99
^+sc9A::SendInput, sc9A
^+sc9B::SendInput, sc9B
^+sc9C::SendInput, sc9C
^+sc9D::SendInput, sc9D
^+sc9E::SendInput, sc9E
^+sc9F::SendInput, sc9F
^+scA0::SendInput, scA0
^+scA1::SendInput, scA1
^+scA2::SendInput, scA2
^+scA3::SendInput, scA3
^+scA4::SendInput, scA4
^+scA5::SendInput, scA5
^+scA6::SendInput, scA6


В окне Scite4Autohotkey сочетание Ctrl + Shift + клавиша вводит сканкод.

Ваш скрипт должен выглядеть следующим образом:
#sc2C::Run, //www.autohotkey.com ; Win + Z

В автозаменах и команде SendInput сканкоды не нужны за одним исключением: если SendInput отправляет сочетание клавиш (например, Ctrl + C, Ctrl + V), то должны стоять сканкоды в фигурных скобках (соответственно ^{sc2E}, ^{sc2F}).
Пишите письма! :)

O

Да можно было бы и без скан-кодов сделать две записи: на Z и на Я. Но почему так сделано, что оно вообще не запускается?  :uzhos:
А если так, то зачем именно этот скрипт сделали примером по умолчанию?  :wall:
gdy padła granica, pękły więzień bramy,
w ten dzień wyzwolenia: siedemnasty września

Квас

Цитата: O от января 25, 2012, 11:44
Да можно было бы и без скан-кодов сделать две записи: на Z и на Я. Но почему так сделано, что оно вообще не запускается?  :uzhos:

Определяется не раскладкой активного окна, а раскладкой (невидимого) окна самого скрипта. В принципе, у вас будет работать просто ^я, но понятно, что такие скрипты не будут переносимы на компьютеры, где по умолчанию английская раскладка.
Пишите письма! :)

Квас

А не работает потому, что горячие клавиши привязываются именно к клавишам, а не к символам. То есть в определении горячей клавиши должно фигурировать имя клавиши, и часто так и делается: F1, Esc и т. д. Просто имена буквоцифровых клавиш совпадают с соответствующей буквой/цифрой. При компиляции AHK ищет клавишу с именем z, не находит и ругается.
Пишите письма! :)

O

Второй скрипт-образец должен лишь активизировать Блокнот, если тот уже запущен. На самом деле, запускает всё новые и новые окна Блокнота.
^!n::
IfWinExist Untitled - Notepad
WinActivate
else
Run Notepad
return


Замена на IfWinExist Безымянный - Блокнот не изменяет поведение скрипта.
gdy padła granica, pękły więzień bramy,
w ten dzień wyzwolenia: siedemnasty września

Квас

В начале #IfWinExist решётка стоит. Потом идёт название окна, которое должно существовать (видимо, у вас должно быть по-русски).

Чтобы не указывать полное имя, в исполняемой части скрипта (в начале то есть) можно поставить
SetTitleMatchMode, 2
(я так обычно делаю). Исполняемая часть отделяется от горячих клавиш и т. п. строчкой
return.
Пишите письма! :)

O

::b::d работает, но ::b::в вставляет квадрат (replacement character)  :D

Квас, большое спасибо за Ваши комментарии! Буду думать, на что бы мне смогла сгодиться эта бага фича.  8-)
gdy padła granica, pękły więzień bramy,
w ten dzień wyzwolenia: siedemnasty września

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр