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

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



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

Цитата:
Как вывести в MsgBox сообщение на русском, пожалуйста? А то квадраты.  


Цитата:
Следует сохранять скрипты в правильной кодировке.

В UTF-8

Всего записей: 2707 | Зарегистр. 27-06-2001 | Отправлено: 16:45 04-10-2011
creature_ws



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В UTF-8 если используется AHK_L unicode
В 1251 ANSI в случае необдуманного использования ANSI версии AHK_L или оригинального AHK

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 14:28 05-10-2011
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, сабж умеет задать одинаковые хоткеи для разных макросов в зависимости от текущего приложения? К примеру, если текущим приложением является MS Word, то по нажатию комбинации клавиш Ctrl+Shiftt+A запускает макрос ABC, а если текущее приложение Internet Explorer, то та же комбинация Ctrl+Shiftt+A запускает макрос XYZ.
Спасибо!

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 03:19 20-10-2011
creature_ws



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Умеет, используется директива #IfWinActive  
Подробности в справке.

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 05:48 20-10-2011
creature_ws



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кстати: Last update: October 16, 2011 - v1.1.05.01

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 03:52 03-11-2011
OnMyDSeeAtAll



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

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 01:32 05-11-2011
creature_ws



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

Код:
 
; Для AHK_L Unicode
; Скопировать скрипт в папку с ярлыками
#SingleInstance force
#KeyHistory 0
#NoEnv
SetBatchLines -1
FileEncoding, utf-8
Process, Priority,, High
SetWorkingDir, % A_ScriptDir
 
; задать старый путь к папке с каталогами приложений
old = C:\
; задать новый путь
new = D:\
 
Loop, %A_WorkingDir%\*.lnk,,1
{
   FileGetShortcut, % A_LoopFileName , CurrentTarget, CurrentDir, Args, Description, CurrentIcon, IconNum, RunState
      StringReplace, NewTarget, CurrentTarget, %old%, %new%
      StringReplace, NewWorkingDir, CurrentDir, %old%, %new%
      StringReplace, NewIconFile, CurrentIcon, %old%, %new%  
   FileCreateShortcut, % NewTarget, % A_LoopFileName, % NewWorkingDir, % Args, % Description, % NewIconFile,, % IconNum, % RunState
}
 

В свойствах обработанных ярлыков при нахождении %old%  заменяется на %new%, изменяются путь, рабочая директория, путь к иконке.

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 03:48 22-12-2011 | Исправлено: creature_ws, 03:54 22-12-2011
kot1313



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
creature_ws
! Спасибо за скрипт !
Сейчас буду пробовать

Всего записей: 2522 | Зарегистр. 11-12-2002 | Отправлено: 22:07 22-12-2011
kot1313



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
creature_ws
Блин !!! РАБОТАЕТ !!!
Но есть одно но - у меня в панели с ярлыками много подпапок, а в них исчо есть вложенные папки с ярлыками......
Если я скрипт забрасываю в папку без подпапок - он отрабатывает идеально !
А вот если в этой папке есть вложенные, то появляется куча ярлыков (взятых из вложенных папок) с адрессацией на "Мой компьютер"
Можно ли скорректировать скрипт так, чтоб он просматривал вложенные папки (желательно с вложенностью до 7 уровней) и  
менял там адрессацию ярлыков так же идеально, как в основной - исходной папке.  
!!! Исчо раз заранее спасибо !!!
           

Всего записей: 2522 | Зарегистр. 11-12-2002 | Отправлено: 00:28 23-12-2011 | Исправлено: kot1313, 00:29 23-12-2011
creature_ws



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Верно, в скрипте недочёт. Первоначальный вариант должен был выглядеть так:

Код:
 
; Для AHK_L Unicode
; Скопировать скрипт в папку с ярлыками
#SingleInstance force
#KeyHistory 0
#NoEnv
SetBatchLines -1
FileEncoding, utf-8
Process, Priority,, High
SetWorkingDir, % A_ScriptDir
 
; задать старый путь к папке с каталогами приложений
old = C:\
; задать новый путь
new = D:\
 
Loop, %A_WorkingDir%\*.lnk
{
   FileGetShortcut, % A_LoopFileName , CurrentTarget, CurrentDir, Args, Description, CurrentIcon, IconNum, RunState
      StringReplace, NewTarget, CurrentTarget, %old%, %new%
      StringReplace, NewWorkingDir, CurrentDir, %old%, %new%
      StringReplace, NewIconFile, CurrentIcon, %old%, %new%  
   FileCreateShortcut, % NewTarget, % A_LoopFileName, % NewWorkingDir, % Args, % Description, % NewIconFile,, % IconNum, % RunState
}  
 

 
Вариант с корректной обработкой подпапок — так:

Код:
 
; Для AHK_L Unicode
; Скопировать скрипт в папку с ярлыками
#SingleInstance force
#KeyHistory 0
#NoEnv
SetBatchLines -1
FileEncoding, utf-8
Process, Priority,, High
SetWorkingDir, % A_ScriptDir
 
; задать старый путь к папке с каталогами приложений
old = C:\
; задать новый путь
new = D:\
 
Loop, %A_WorkingDir%\*.lnk,,1
{
   FileGetShortcut, % A_LoopFileName , CurrentTarget, CurrentDir, Args, Description, CurrentIcon, IconNum, RunState
      StringReplace, NewTarget, CurrentTarget, %old%, %new%
      StringReplace, NewWorkingDir, CurrentDir, %old%, %new%
      StringReplace, NewIconFile, CurrentIcon, %old%, %new%  
   FileCreateShortcut, % NewTarget, % A_LoopFileFullPath, % NewWorkingDir, % Args, % Description, % NewIconFile,, % IconNum, % RunState
}  
 

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 00:16 24-12-2011
LonerDergunov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Запущен скрипт/скомпилированный скрипт.
1. Как отследить второй и последующие запуски этого же скрипта?
То есть при первом запуске - запускается и переходит к определённой секции и выполняются некоторые действия. При третьем запуске - снова переходит к этой секции и т.д.
Другими словами - вначале запускается работающий скрипт, у скрипта два режима работы, переключающиеся кликом по иконке в трее. При повторном запуске хочу, например, чтобы переключался режим работы с одного на второй.
 
2. Как отследить, что в меню на иконку скрипта происходит нажатие средней кнопкой мыши?
Хочется чтобы при этом выполнение скрипта ставилось на паузу.
 
 
И ещё вопрос - можно ли сделать прозрачным не всё окно, а лишь его части (например, одну панель в Тотал коммандере)?

Всего записей: 2972 | Зарегистр. 11-07-2007 | Отправлено: 03:34 07-01-2012 | Исправлено: LonerDergunov, 05:39 07-01-2012
OnMyDSeeAtAll



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

Код:
ComObjGet("winmgmts:").ExecQuery("select LastBootUpTime from "
. "Win32_OperatingSystem where Primary='true'").
_NewEnum.Next(Key)
IniRead,
LastBootUpTime
           
, % A_ScriptDir "\"SubStr(A_ScriptName, 1, -4)".ini"
           
,
Set
           
, LastBootUpTime
 
If % LastBootUpTime!=SubStr(Key.LastBootUpTime, 1, -11)
{
   
IniWrite,
% SubStr(Key.LastBootUpTime, 1, -11)
               
,
% A_ScriptDir "\"SubStr(A_ScriptName, 1, -4)".ini"
               
,
Set
               
, LastBootUpTime
   
IniWrite, % RunCount:=1
               
,
% A_ScriptDir "\"SubStr(A_ScriptName, 1, -4)".ini"
               
,
Set
               
, RunCount
}
IniRead,
RunCount
           
, % A_ScriptDir "\"SubStr(A_ScriptName, 1, -4)".ini"
           
,
Set
           
, RunCount
MsgBox, 262208, Info, % "Current run is: "RunCount, 1
OnMessage(1028, "WndProc")
OnExit,
ExitScript
 
Esc::
   
Suspend
   ExitApp
 
ExitScript:
   
IniWrite,
% ++RunCount
               
, % A_ScriptDir "\"SubStr(A_ScriptName, 1, -4)".ini"
               
,
Set
               
, RunCount
   
MsgBox, 262192, Info, % "Next run is: "RunCount, 1
   
ExitApp
 
WndProc(Params*)
{
   
If Params.2=519
   
{
     
Suspend
     
TrayTip,,
% "Suspend is: "(A_IsSuspended ? "On":"Off")
     
Sleep, 1000
     
TrayTip
   
}
}


Цитата:
И ещё вопрос - можно ли сделать прозрачным не всё окно, а лишь его части (например, одну панель в Тотал коммандере)?

Думаю, так не получится.

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 15:52 08-01-2012 | Исправлено: OnMyDSeeAtAll, 11:38 08-12-2012
shveicar



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте.
Подскажите, как сделать авто набор текста по клавише,
Код:
f5:: Send  
но только чтоб вставлялся целый блог с тегами
Код:
<center>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="640" height="480">
  <param name="movie" value="11.swf" />
  <param name="quality" value="high" />
  <param name="allowScriptAccess" value="always" />
  <param name="wmode" value="transparent">
     <embed src="11.swf"
      quality="high"
      type="application/x-shockwave-flash"
      WMODE="transparent"
      width="640"
      height="480"
      pluginspage="http://www.macromedia.com/go/getflashplayer"
      allowScriptAccess="always" />
</object></center>
 
Дело в том, что  с простым текстом все просто, а вот такой блок, набирается не до конца и в одну строчку? Или можно просто сделать вставку без набора? (только начал разбираться с AutoHotkey - извиняюсь, если вопрос звучит наивно)
Спасибо.

Всего записей: 333 | Зарегистр. 26-09-2010 | Отправлено: 19:44 18-03-2012 | Исправлено: shveicar, 19:46 18-03-2012
creature_ws



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

Код:
var := "
(  
<center>
<object classid=""clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"" codebase=""http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"" width=""640"" height=""480"">
  <param name=""movie"" value=""11.swf"" />
  <param name=""quality"" value=""high"" />
  <param name=""allowScriptAccess"" value=""always"" />
  <param name=""wmode"" value=""transparent"">
     <embed src=""11.swf""
      quality=""high""
      type=""application/x-shockwave-flash""
      WMODE=""transparent""
      width=""640""
      height=""480""
      pluginspage=""http://www.macromedia.com/go/getflashplayer""
      allowScriptAccess=""always"" />
</object></center>  
) "
 
f5::SendInput % "{Raw}" . var

Scripts#continuation,  SendInput.

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 20:33 18-03-2012 | Исправлено: creature_ws, 20:40 18-03-2012
shveicar



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
creature_ws
Спасибо за помощь, и за информацию.  
Сделал  мини програмку для html , но команда F11 работать не хочет (хотя отдельно без MsgBox работает)  Подскажите в чем причина.
Код:
 
Menu, Tray, Tip, справка  F10  
F10::MsgBox,
(
кратко команда:правая клавиша минус-вставить пробел в виде &nbsp
клавиша F11 - вставить блок для swf  
клавиша F12 - выход из программы
)
 
return
 
var := "
(  
<center>
<object classid=""clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"" codebase=""http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"" width=""640"" height=""480"">
  <param name=""movie"" value=""11.swf"" />
  <param name=""quality"" value=""high"" />
  <param name=""allowScriptAccess"" value=""always"" />
  <param name=""wmode"" value=""transparent"">
     <embed src=""11.swf""
      quality=""high""
      type=""application/x-shockwave-flash""
      WMODE=""transparent""
      width=""640""
      height=""480""
      pluginspage=""http://www.macromedia.com/go/getflashplayer""
      allowScriptAccess=""always"" />
</object></center>  
) "
F11:: SendInput % "{Raw}" . var  
return
 
NumpadSub::Send &nbsp;
F12:: ExitApp

Всего записей: 333 | Зарегистр. 26-09-2010 | Отправлено: 21:10 18-03-2012 | Исправлено: shveicar, 00:24 19-03-2012
creature_ws



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На этом форуме, при необходимости добавить что-то существенное к написанному, лучше создать новое сообщение ну это так, отступление.
 
В вашем коде при нажатии F11 «не  печатается содержимое var» потому как это самое содержимое в переменную var никогда не будет записано, потому как присваивание значения не будет выполнено, так как присваивание лежит вне выполняемых подпрограмм скрипта.
 
После запуска, выполнение скрипта происходит до, например, первого Return или метки горячей клавиши.
 
Каждая метка горячей клавиши — отдельная подпрограмма, выполняющаяся при нажатии пользователем соответствующей клавиши клавиатуры.
 
Чтобы при нажатии F11 содержимое var начинало «печататься» — запись в var нужного текста должна происходить до «начала печати». Этого можно добиться перенеся строки скрипта в которых производится запись в var в «начало скрипта» (т.е. до первого return или метки горячей клавиши), либо в подпрограмму горячей клавиши F11, тогда, при каждом нажатии F11 содержимое var будет перезаписываться тем же текстом, что будет внесён при первом нажатии.
варианты кода свёрнуты

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 01:30 19-03-2012
shveicar



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
creature_ws
Еще раз Большое Спасибо, - прям "разжевали и в рот положили"  
Порой, Смешные вопросы для профи - вызывают у новичка, - затык....
Буду учиться дальше...

Всего записей: 333 | Зарегистр. 26-09-2010 | Отправлено: 02:10 19-03-2012
creature_ws



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В результате «волевого решения» нового администратора официального сайта, после редизайна главной страницы ссылка для скачивания ведёт к устаревшей и не поддерживаемой версии AHK (последний релиз от 2009 года).
 
В связи с этим вижу необходимость добавить в шапку ссылку на страницу «актуальной версии» программы — Autohotkey-L.  

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 04:56 07-04-2012 | Исправлено: creature_ws, 04:58 07-04-2012
OnMyDSeeAtAll



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поддержу коллегу creature_ws, ибо "косяк" очевиден.

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 18:36 08-04-2012
screenshot

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

Всего записей: 7 | Зарегистр. 13-04-2012 | Отправлено: 19:27 13-04-2012 | Исправлено: screenshot, 19:43 13-04-2012
Открыть новую тему     Написать ответ в эту тему

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