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

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



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

Цитата:
т.е это не тильда, а акцент.  
дыкёп... как это синтаксически то пишется? чтоб отзывалось
(Cntr + `) надо

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 23:42 16-03-2016
OnMyDSeeAtAll



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeT BonpocoB 13:44 15-03-2016
Цитата:
...как забиндить тильду в скрипте?

Код:
^vkC0::MsgBox

Цитата:
...где вообще все списки vkXX и тому подобного?
К примеру тут. Ещё...

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 07:27 17-03-2016
HeT BonpocoB



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
OnMyDSeeAtAll
во, наконец-то заработало
я то уже давно "кодил" в ahk, но большинство биндов было на самодельную панель с доп. кнопками (они же Joy1:: - Joy20:: ) и как-то упустил как правильно обычные кнопки прописывать.
 

Цитата:
К примеру тут.
в шапку!
 
+вопрос
как правильней в скрипте переключение раскладки сделать RU-EN? вставил Send, ^{sc02A} (ctrl+shift у меня) но что-т не срабатывает зараза...
[добавлено]
OnMyDSeeAtAll - благодарю, работает

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 11:08 17-03-2016 | Исправлено: HeT BonpocoB, 10:38 18-03-2016
OnMyDSeeAtAll



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

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 09:55 18-03-2016
keeperion

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Krot66, оригинал был мой. там всё банально и просто. при открытии окошка проги(драйвера звуковой карты asus) автоматически в фокусе тот самый бокс. в котором выбираешь наушники, колонки или другие входы для звука. окошко называется xonar audio center. скрипт делал такой:
 
    Run, C:\Program Files\ASUS Xonar Essence STX Audio\Customapp\AsusAudioCenter.exe (тут открывает окно)
      Sleep, 50
      SendInput, {down} посылает команду вниз - так как бокс с выбором источника активен, то просто выбирает что ниже из списка из звуковых выходов)
      WinClose Xonar Essence STX Audio Center  (тут закрывает окно)
      Sleep, 50
       
Return
 
и второй скрипт, точно такой, же который посылал команду - вверх.
хочу переделать, что бы скрипт сам определял, что написано в боксе выбора выхода написано и исходя из этого делал команду вниз или вверх. это реально ?

Всего записей: 3 | Зарегистр. 16-03-2016 | Отправлено: 13:10 18-03-2016 | Исправлено: keeperion, 13:14 18-03-2016
Krot66



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

Код:
 
^+F11::
ControlGetText  t, ComboBox5, Xonar Essence STX Audio Center
MsgBox % t
return
 


Всего записей: 1254 | Зарегистр. 10-12-2007 | Отправлено: 15:30 18-03-2016
ahakeh

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

Всего записей: 1 | Зарегистр. 30-03-2016 | Отправлено: 12:34 30-03-2016 | Исправлено: ahakeh, 12:37 30-03-2016
suvolod



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите побороть проблему с AutoHotkey
 
Попытался переназначить Win+E (повесить на него total commander). Написал простейший скрипт:  
#e::run totalcmd64.exe
 
Проблема заключается в следующем: если total commander запускается не в полноэкранном режиме, то периодически (точнее очень часто) у меня как будто дополнительно срабатывает клавиша win. Т.е. происходит следующе: жму Win+E - открывается total commander, затем каким-то образом срабатывает еще один вызов клавиши win, в результате открывается окно Пуск (а Total Commander теряет при этом фокус). Получается полная фигня... вместо простого вызова программы по Win+E мне приходиться еще раз жать на Win, чтобы убрать окно Пуск, а затем через Atl+Tab переключаться на потерявший фокус тотал.. Как победить, подскажите?

Всего записей: 526 | Зарегистр. 18-10-2004 | Отправлено: 12:57 17-04-2016
Krot66



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

Код:
 
$#vk45::
KeyWait LWin
run totalcmd64.exe
return
 

Всего записей: 1254 | Зарегистр. 10-12-2007 | Отправлено: 16:08 17-04-2016 | Исправлено: Krot66, 16:09 17-04-2016
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!
 
Возникла задача с числом с шагом "40". Например, если дано число 44 — составить список:

Код:
 
===0
===40
 

Другой пример: если дано число 378 — составить список:

Код:
 
===0
===40
===80
===120
===160
===200
===240
===280
===320
===360
 

Для 1378 — тот же принцип:

Код:
 
===0
===40
===80
...
===1320
===1360
 

Пока имею код, формирующий список с нужным шагом — но не так, как хотелось бы:

Код:
 
dig = 40
 
loop %dig%
{
  IndexNa40:=A_Index*40
  FileAppend, ===%IndexNa40%`n, E:\Рабочий стол\===.txt
}
 

Всего записей: 1408 | Зарегистр. 05-04-2010 | Отправлено: 00:46 22-04-2016
creature_ws



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

Код:
n := 1378
step := 40
 
loop % 1 + n // step
    list .= "===" (A_index - 1) * step "`n"
 
MsgBox % list
 
FileAppend, %list%, E:\Рабочий стол\===.txt  

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 03:05 22-04-2016
D1D1D1D

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

Всего записей: 1408 | Зарегистр. 05-04-2010 | Отправлено: 04:50 22-04-2016
PPavlukha

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста, со скриптом.
 
Есть текст, часть текста  выделена. Потом выделенный фрагмент удаляется (удаляет не Autohotkey).
 
Что мне надо.
Если нажата ЛКМ + Ctrl:
 —  проверить есть ли выделение
 — скопировать выделение (если можно, не задействуя системный буфер обмена)
 
Когда я отпущу ЛКМ + Ctrl - к тому времени выделенный текст уже будет удален:
 — через 50-100 мсек вставить скопированное точно на то место, где оно было до удаления.
 
Все.
 

Всего записей: 38 | Зарегистр. 20-07-2008 | Отправлено: 15:50 22-04-2016 | Исправлено: PPavlukha, 15:52 22-04-2016
OnMyDSeeAtAll



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

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 19:44 25-04-2016 | Исправлено: OnMyDSeeAtAll, 14:33 28-04-2016
PPavlukha

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

Цитата:
Так пробуем.

Что то оно у меня не работает...
Сначала просто ничего не происходило, а после нескольких перезапусков скрипт и вовсе перестал запускаться. Запускается и тут же вылетает.
 
И еще я хотел попросить. Нельзя ли как то обойтись не задействуя клавишу Инсерт?
У меня она используется для других целей, в другом скрипте.
 
Понятно, что на время тестов я тот скрипт отключал, поэтому не работало не из за этого.

Всего записей: 38 | Зарегистр. 20-07-2008 | Отправлено: 00:59 26-04-2016
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вместо Insert можно использовать известный аналог — Ctrl+V.

Всего записей: 1408 | Зарегистр. 05-04-2010 | Отправлено: 13:14 28-04-2016 | Исправлено: D1D1D1D, 13:16 28-04-2016
OnMyDSeeAtAll



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

Цитата:
Что то оно у меня не работает...
Стоит проверить на наличие одинаковых прав у скрипта и целевого приложения.
Цитата:
Нельзя ли как то обойтись не задействуя клавишу Инсерт?
Поправил код.
 
Тестировал в блокноте (стандартный Edit Control), моделируя похожее условие, не факт что в целевом приложении код будет работать.

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 14:44 28-04-2016
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как правильно перекодировать вывод функции UnHTM() (в UTF-8 варианте неверно отображающей числовые символы HTML) на AHK_L, в UTF-8?

Код:
 
HTM =  
(
§ § параграф  
© © знак охраны авторского права (copyright)  
® ® символ зарегистрированного товарного знака  
™ ™ символ товарного знака  
° ° знак градуса  
« « левая кавычка (левая ёлочка)  
» » правая кавычка (правая ёлочка)  
… … многоточие  
’ ’ апостроф  
„ „ открывающая лапка  
“ “ закрывающая лапка  
“ “ открывающая английская лапка  
” ” закрывающая английская лапка  
• • жирная точка  
– – короткое тире (см. одноименный § 158)  
− − минус  
± ± плюс-минус  
— — тире  
№ № знак номера  
)
 
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      t := UnHTM(UnSlashUnicode(HTM))
      ; split long line to smaller lines about 40-50 symbols length
      ;t := RegExReplace(t,".{40,50}(\s)","$0`n")
 
;MsgBox, % t
MsgBox, % ComUnHTML( HTM )
MsgBox, % UnHTM( HTM )
 
ComUnHTML(html) {
    oHTML := ComObjCreate("HtmlFile")
    oHTML.write(html)
    return oHTML.documentElement.innerText
}
 
UnHTM( HTM ) { ; Remove HTML formatting / Convert to ordinary text     by SKAN 19-Nov-2009
   Static HT     ; Forum Topic: www.autohotkey.com/forum/topic51342.html
   IfEqual,HT,,   SetEnv,HT, % "&aacuteá&acircâ&acute´&aeligæ&agraveà&amp&aringå&atildeã&au"
 . "mlä&bdquo„&brvbar¦&bull•&ccedilç&cedil¸&cent¢&circˆ&copy©&curren¤&dagger†&dagger‡&deg"
 . "°&divide÷&eacuteé&ecircê&egraveè&ethð&eumlë&euro€&fnofƒ&frac12½&frac14¼&frac34¾&gt>&h"
 . "ellip…&iacute&#237;&icirc&#238;&iexcl&#161;&igrave&#236;&iquest&#191;&iuml&#239;&laquo«&ldquo“&lsaquo‹&lsquo‘&lt<&m"
 . "acr&#175;&mdash—&microµ&middot·&nbsp &ndash–&not¬&ntilde&#241;&oacute&#243;&ocirc&#244;&oelig&#339;&ograve&#242;&or"
 . "df&#170;&ordm&#186;&oslash&#248;&otilde&#245;&ouml&#246;&para¶&permil‰&plusmn±&pound&#163;&quot""&raquo»&rdquo”&reg"
 . "®&rsaquo›&rsquo’&sbquo‚&scaron&#353;&sect§&shy&sup1&#185;&sup2&#178;&sup3&#179;&szlig&#223;&thorn&#254;&tilde&#732;&tim"
 . "es&#215;&trade™&uacute&#250;&ucirc&#251;&ugrave&#249;&uml&#168;&uuml&#252;&yacute&#253;&yen&#165;&yuml&#255;"
   ;HTM := RegExReplace( HTM,"&amp;(\w+;)", "&$1" )   ;!! для обработки &amp;lt;
   ;HTM := RegExReplace( HTM,"&amp;(#\d+;)", "&$1" )  ;!! для обработки &amp;#60;
   TXT := RegExReplace( HTM,"<[^>]+>", " " )               ; Remove all tags between  "<" and ">"
   Loop, Parse, TXT, &`;                              ; Create a list of special characters
      L := "&" A_LoopField ";", R .= (!(A_Index&1)) ? ( (!InStr(R,L,1)) ? L:"" ) : ""
   StringTrimRight, R, R, 1
   Loop, Parse, R , `;                                ; Parse Special Characters
      If F := InStr( HT, A_LoopField )                  ; Lookup HT Data
         StringReplace, TXT,TXT, %A_LoopField%`;, % SubStr( HT,F+StrLen(A_LoopField), 1 ), All
   Else If ( SubStr( A_LoopField,2,1)="#" )
      StringReplace, TXT, TXT, %A_LoopField%`;, % Chr(SubStr(A_LoopField,3)), All
   ;TXT := RegExReplace(TXT, " +", " ")  ;!! множественные пробелы на один
   Return RegExReplace( TXT, "(^\s*|\s*$)")            ; Remove leading/trailing white spaces
}
 
;---------------------------------------
; Convert strings
;---------------------------------------
 
/*
CP_ACP   = 0
CP_OEMCP = 1
CP_MACCP = 2
CP_UTF7  = 65000
CP_UTF8  = 65001
*/
 
Ansi2Oem(sString)
{
   Ansi2Unicode(sString, wString, 0)
   Unicode2Ansi(wString, zString, 1)
   Return zString
}
 
Oem2Ansi(zString)
{
   Ansi2Unicode(zString, wString, 1)
   Unicode2Ansi(wString, sString, 0)
   Return sString
}
 
Ansi2UTF8(sString)
{
   Ansi2Unicode(sString, wString, 0)
   Unicode2Ansi(wString, zString, 65001)
   Return zString
}
 
UTF82Ansi(zString)
{
   Ansi2Unicode(zString, wString, 65001)
   Unicode2Ansi(wString, sString, 0)
   Return sString
}
 
Ansi2Unicode(ByRef sString, ByRef wString, CP = 0)
{
     nSize := DllCall("MultiByteToWideChar"
      , "Uint", CP
      , "Uint", 0
      , "Uint", &sString
      , "int",  -1
      , "Uint", 0
      , "int",  0)
 
   VarSetCapacity(wString, nSize * 2)
 
   DllCall("MultiByteToWideChar"
      , "Uint", CP
      , "Uint", 0
      , "Uint", &sString
      , "int",  -1
      , "Uint", &wString
      , "int",  nSize)
}
 
Unicode2Ansi(ByRef wString, ByRef sString, CP = 0)
{
     nSize := DllCall("WideCharToMultiByte"
      , "Uint", CP
      , "Uint", 0
      , "Uint", &wString
      , "int",  -1
      , "Uint", 0
      , "int",  0
      , "Uint", 0
      , "Uint", 0)
 
   VarSetCapacity(sString, nSize)
 
   DllCall("WideCharToMultiByte"
      , "Uint", CP
      , "Uint", 0
      , "Uint", &wString
      , "int",  -1
      , "str",  sString
      , "int",  nSize
      , "Uint", 0
      , "Uint", 0)
}
 
;-------------------------------------------------
; HTML encode/decode
;------------------------------------------------
 
UriEncode(str)
{ ; v 0.3 / (w) 24.06.2008 by derRaphael / zLib-Style release
   b_Format := A_FormatInteger
   data := ""
   SetFormat,Integer,H
   Loop,Parse,str
      if ((Asc(A_LoopField)>0x7f) || (Asc(A_LoopField)<0x30) || (asc(A_LoopField)=0x3d))
         data .= "%" . ((StrLen(c:=SubStr(ASC(A_LoopField),3))<2) ? "0" . c : c)
      Else
         data .= A_LoopField
   SetFormat,Integer,%b_format%
   return data
}
 
UriDecode(str)
{ ; v 0.1 / (w) 28.06.2008 by derRaphael / zLib-Style release
   Loop,Parse,str,`%
      txt := (A_Index=1) ? A_LoopField : txt chr("0x" substr(A_LoopField,1,2)) SubStr(A_LoopField,3)
   return txt
}
 
UnSlashUnicode(s)
{
  ; unslash unicode sequences like \u0026
  ; by Mikhail Kuropyatnikov 2009 (micdelt@mail.ru)
   rx = \\u([0-9a-fA-F]{4})
   pos = 0
 
   loop
   {
   pos := RegExMatch(s,rx,m,pos+1)
   if (pos = 0)
      break
   StringReplace, s, s, %m%, % Chr("0x" . SubStr(m,3,4))
   }
   
   return s
}
 

Всего записей: 1408 | Зарегистр. 05-04-2010 | Отправлено: 08:34 30-04-2016
Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня все отображается нормально. Сохраняй скрипт в UTF-8 с BOM и будет тебе счастье (версия AHK должна быть тоже юникодной, и не AHK_L, а последняя с офсайта)

Всего записей: 1254 | Зарегистр. 10-12-2007 | Отправлено: 14:50 30-04-2016 | Исправлено: Krot66, 14:54 30-04-2016
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Krot66
 
Ну то есть да, версия у меня последняя — AutoHotkey_L v1.1.23.05 (Unicode 32-bit), запускаю из файла в UTF-8 с BOM. Тем не менее, вывод из функции ComUnHTML кажет как надо, а второй MsgBox, отображающий работу функции UnHTM, вместо числовых символов выдает символы квадратов.
 
Добавлено:
Собственно, функцию UnHTM — функции ComUnHTML предпочёл из-за возможности настройки отдельных моментов.

Всего записей: 1408 | Зарегистр. 05-04-2010 | Отправлено: 20:28 30-04-2016
Открыть новую тему     Написать ответ в эту тему

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