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

» AutoHotkey

Автор: vadim3sh
Дата сообщения: 20.02.2010 08:47
vadim3sh

Цитата:
SetKeyDelay, 10000
SendEvent, ^s
WinClose, A

все заработало, большое спасибо!



Перестало работать...

Вместо сохранения в OpenOffice.calc печатает "s" в активную ячейку......
В остальных программах все тип топ..




Ничего не инсталлировал, но опять все работает... Наверное, какой то временный глюк
Или у меня, или у винды
Автор: VU Irvine
Дата сообщения: 04.03.2010 04:31
в шапке chum2000

Цитата:
Русскоязычный ресурс по AutoHotkey:
Документация (можно скачать одним файлом), статьи, примеры.  

а где этот файл?



Еще, для понимающих это, наверняка, легко - напишите, пожалста, примерный скрипт,
чтоб
1. открывал в ворде файл,
2. дожидался открытия,
3. отправлял его на принтер по умолчанию (у меня это doPDF),
4. дожидался пока PDF файл появится в папке,
5. закрывал Ворд
- все.
Автор: Burgunsky
Дата сообщения: 06.04.2010 19:39
Здравствуйте. Помогите решить такую проблему:
В Microsoft Word при нажатии Control + f открывается окно поиска. А указанная в скрипте команда "Send, ^f" пишет в текст открытого документа в Word "^f" и ничего не открывает. Если запустить скрипт с комендой "Send, ^f" в блокноте, то открывается окно поиска.
Автор: Kostev
Дата сообщения: 23.04.2010 10:52
Здравствуйте.

У меня вроде простенькая задача, но не могу разобраться как ее решить.

Есть программа InqSoft Window Scanner. Она захватывает текст заголовка окна windows находящегося под курсором мышки по горячей клавише Ctrl+Z! Далее этот тект появляется на панеле самой программы и рядом есть кнопка копировать этот текст в буфер обмена.

Можно ли сделать так, чтобы сразу при захвате окна (нажатии Ctrl+Z) его Заголовок копировался в буфер обмена? При этом сама программа InqSoft Window Scanner висела в трее и ее панель не была бы видна на экране.
Автор: aidomars
Дата сообщения: 23.04.2010 16:20
Kostev
А не проще воспользоваться командой WinGetTitle, которая возвращает заголовок указанного окна? И вставить его в буфер.
Автор: Kostev
Дата сообщения: 24.04.2010 23:50
aidomars
Огромное спасибо за совет. Жизнь стала намного проще)

Вот скрипт (по нажатию колесика мыши название окна находящегося под курсором мыши копируется в буфер обмена):

Код: MButton::
MouseGetPos, , , id
WinGetTitle, Title, ahk_id %id%
clipboard = %Title%
Автор: Sandrosailens
Дата сообщения: 05.05.2010 13:06
ничего не понимаю в нем
надо чтобы при нажатии на маус 3 и 4 использовалось нажатие нампад1 и 2 соотвественно
заранее спасибо
мвшь defender
Автор: Jack of Shadows
Дата сообщения: 05.05.2010 20:05
Burgunsky

Цитата:
Помогите решить такую проблему:
В Microsoft Word при нажатии Control + f открывается окно поиска. А указанная в скрипте команда "Send, ^f" пишет в текст открытого документа в Word "^f" и ничего не открывает. Если запустить скрипт с комендой "Send, ^f" в блокноте, то открывается окно поиска.

Что-то непонятен смысл Вашей проблемы. Комбинация Ctrl+F системная и открывает окно поиска в MS Word, блокноте и еще куче других программ без всяких скриптов.
Что сделать-то конкретно хотите?


Добавлено:
А вообще, работайте через сканкоды и пишите не

Код: Send, ^f
Автор: 3y6acTuK
Дата сообщения: 18.05.2010 14:07
Несколько вопросов по программе:

1) Насколько быстро она реагирует в режиме подмены клавиш (нет ли подтормаживаний клавиатуры)

2) Может ли она как PuntoSwitcher перекодировать текст введенный случайно не в той раскладке?
3) Может ли подменять мои сокращения на полные фразы/слова автоматом при наборе?
Автор: Ludens
Дата сообщения: 18.05.2010 14:59
3y6acTuK
1) Никаких подтормаживаний и вообще никаких побочных эффектов Autohotkey не дает.
2) Может, но для этого придется написать целую программу на языке Autohotkey. Проще все-таки пользоваться пунтосвитчером.
3) Может, и еще как! Для этого в ней предусмотрены специальные очень удобные языковые конструкции.
Автор: 3y6acTuK
Дата сообщения: 20.05.2010 07:53
Жаль, потому что аналоги умеют конвертировать строки в другую раскладку. Но у WireKeys запутанная настройка и кажетс глюки: http://forum.ru-board.com/topic.cgi?forum=35&topic=18345&start=220#11
А запускать 2 программы по обработке клавиш как-то неправильно, имхо. И не хочется память захламлять, ее немного.
Автор: monsoon
Дата сообщения: 20.05.2010 12:42
3y6acTuK

Цитата:
аналоги умеют конвертировать строки в другую раскладку

На 7-й странице темы я выкладывал ссылку на скрипт для исправления En<->Ru раскладки. Скрипт wOxxOm отлично отрабатывает в последних версиях макстона, где бессильны и пунто и арум. Дописал для себя в скрипте как сумел автоматическое выделение по горячей клавише.
К недостаткам можно отнести:
1) выделение заметно визуально
2) скрипт не работает или работает неправильно в консольных приложениях.
3) очень редко, но бывает, что в результате перекодировки вставляется белиберда, скорее всего, из-за каких-то конвертаций ANSI<->UTF буфера.
Автор: GuessAMelody
Дата сообщения: 22.05.2010 16:27
Здравствуйте
Подскажите пожалуйста, у меня следующая проблема:
Переустановил винду, теперь мой макрос не работает
Пишет Error At Line 17
Line Text z::onoff:=PharmOn(onoff)
Error : Invalid Hotkey

Макрос восспроизводит нажатие на Ф2 и два раза Ентер
#Persistent

onoff=0

PharmOn(st){
if st=0
{
SetTimer, Pharm1, 50
return 1
}
SetTimer, Pharm1, Off
return 0
}

SetTimer, Pharm1, Off

z::onoff:=PharmOn(onoff)
return

Pharm1:
Send {F2}
Sleep 100
Send {Enter 2}
return

Версия 10.48.05 ,Винда XP Sp3

Автор: Jack of Shadows
Дата сообщения: 22.05.2010 19:40
GuessAMelody, язык по умолчанию русский в системе поставился?
Здесь читайте: http://script-coding.info/AutoHotkey/AhkRussian_3b.html
Автор: GuessAMelody
Дата сообщения: 22.05.2010 19:54
Да, система стоит на русском.
Что конкретно в этой статье нужно для меня?

Добавлено:
Всё, спасибо, разобрался
Автор: helller
Дата сообщения: 26.09.2010 01:35
Господа, подскажите скриптик, чтобы в точке установленного курсора нажатием средней кнопки мыши имитировать двойное нажатие ctrl.
Автор: Ludens
Дата сообщения: 26.09.2010 11:22
Исполнился ровно год последнему обновлению сабжа. :( :(
Автор: Vitti
Дата сообщения: 18.10.2010 19:43
можно как-то переназначить двойной клик мыши (левой или правой кнопки - не важно)?
Автор: wolf0425
Дата сообщения: 05.11.2010 15:20
1. как сделать, чтоб хоткей работал только для одной из программ - т.е. подменял коследовательность только когда активно окно процесса program.exe. А в остальных случаях происходила прозрачная передача нажатия всех кнопок другим приложениям, ничего не изменяя?

2. Как сделать, чтоб после закрытия всех окон приложения program.exe - закрывался и связанный с ним сеанс AutoHotkey ?
Автор: aidomars
Дата сообщения: 05.11.2010 17:07

Цитата:
1. как сделать, чтоб хоткей работал только для одной из программ - т.е. подменял коследовательность только когда активно окно процесса program.exe. А в остальных случаях происходила прозрачная передача нажатия всех кнопок другим приложениям, ничего не изменяя?

#IfWinActive, program
#1::MsgBox

Цитата:
2. Как сделать, чтоб после закрытия всех окон приложения program.exe - закрывался и связанный с ним сеанс AutoHotkey ?


SetTimer, Timer, 100
return

Timer:
IfWinNotExist, program
exit
return
Автор: wolf0425
Дата сообщения: 06.11.2010 02:38

Цитата:
#IfWinActive, program
и как там указать имя процесса, а не имя его окна?


Цитата:
IfWinNotExist, program
exit
return
а эта последовательность не выгружает сам AutoHotkey, только лишь терминирует скрипт, и опять же непонятно как привязать ее к имени процесса, а не к именам окон...
Автор: aidomars
Дата сообщения: 06.11.2010 11:32

Цитата:
и как там указать имя процесса, а не имя его окна?

Process, Exist, program.exe ; помещает в ErrorLevel идентификатор процесса (PID), если соответствующий процесс существует
If ErrorLevel = 0 ; если PID не существует...
ExitApp ; завершаем скрипт
Else
PID := ErrorLevel ; присваиваем PID
WinGet, OutputVar, List, ahk_pid %PID% ; Возвращает ID всех существующих окон, подходящих под параметры
ну а дальше как указано в верхнем посте
Автор: wolf0425
Дата сообщения: 06.11.2010 22:53

Цитата:
Process, Exist, program.exe ; помещает в ErrorLevel идентификатор процесса (PID), если соответствующий процесс существует

если program.exe запущена в двух экземплярах - то получим все равно один pid


Цитата:
Возвращает ID всех существующих окон, подходящих под параметры
что бесполезно - получаем список из одного элемента, так как pid указали один. с вероятностью 50% это pid не того экземпляра program.exe что активен в текущий момент.


Цитата:
ну а дальше как указано в верхнем посте
т.е. задача определения является ли текущее окно - окном процесса program.exe по прежнему не решена.

задача автозакрытия AutoHotkey - тоже никак не решена, так как ExitApp завершает скрипт только при его запуске в отсутствие program.exe, а не закрывает AutoHotkey после закрытия program.exe
Автор: aidomars
Дата сообщения: 07.11.2010 00:05

Цитата:
как сделать, чтоб хоткей работал только для одной из программ - т.е. подменял коследовательность только когда активно окно процесса program.exe

не понятно, окно ли надо отслеживать, процесс ли...

Цитата:
если program.exe запущена в двух экземплярах - то получим все равно один pid

Можно почитать справку к программе, где приведенный пример составляет список выполняющихся процессов через DllCall.
А обратиться на форум не пробовали? Я сам то только учусь...
Автор: wolf0425
Дата сообщения: 07.11.2010 02:59

Цитата:
не понятно, окно ли надо отслеживать, процесс ли...
нужно получить и сравнить имя процесса у активного окна (заголовок окна - совершенно не при делах). По результату сравнения - или перехватывать и подменять нажатую кнопку в случае нужной программы или в окно отправить кнопку без модификации в случае всех прочих программ.


Цитата:
где приведенный пример составляет список выполняющихся процессов через DllCall.
ну если список процессов есть в справке (чего я не увидел, почему-то) то всё равно остается вторая половина вопроса - собственно как скомандовать AutoHotkey закрыться и выгрузиться. Причем не абстрактному AutoHotkey, а исполняющему конкретный скрипт.

нет, на форум AHK пока не пробовал, надеялся что спрашиваю что-то тривиальное и нужно просто понять какой раздел хэлпа читать.
Автор: m0nty2k5
Дата сообщения: 07.12.2010 01:41

Код: if GetKeyState("NumLock", "T")
SetNumlockState, off
else
SetNumlockState, on
Автор: zzzUUUzzz
Дата сообщения: 04.01.2011 10:27

Цитата:
Дописал для себя в скрипте как сумел автоматическое выделение по горячей клавише.
К недостаткам можно отнести:
1) выделение заметно визуально
2) скрипт не работает или работает неправильно в консольных приложениях.
3) очень редко, но бывает, что в результате перекодировки вставляется белиберда, скорее всего, из-за каких-то конвертаций ANSI<->UTF буфера.

а можно дописать и для меня? =) хочется испытать... кстати, 3 пункт решаем, если я не путаю, здесь:
http://www.forum.script-coding.com/viewtopic.php?id=1073
Автор: Asher23
Дата сообщения: 15.03.2011 00:13
При запуске скрипта выдаёт ошыбку:
[img=http://imagesbase.com/upload/view/y_13__137181_acenrwx456.jpg]
Самое интересно что у знакомого все норм работает!
Автор: aidomars
Дата сообщения: 15.03.2011 17:40
Asher23
поменяй раскладку по умолчанию или используй коды клавиш
Автор: Asher23
Дата сообщения: 15.03.2011 17:49

Цитата:
используй коды клавиш

ет как?

Страницы: 12345678910111213141516171819202122232425262728293031323334

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


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