View previous topic :: View next topic |
Author |
Message |
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Sun Mar 17, 2013 16:42 Post subject: |
|
|
Каким образом послать Тоталу пользовательскую команду через Unicode-версию Autohotkey_L ? (в том числе через 64-битную версию если есть различие).
Для ANSI есть рабочий вариант, но адаптировать под Unicode самостоятельно не удаётся. _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Mar 17, 2013 19:10 Post subject: |
|
|
Все рабочие варианты для любой версии Autohotkey_L приведены в этой ветке. Почему не работает именно указанный вариант, понять без всех выполненных условий нельзя. Видимо, там какая-то проверка не срабатывает. Нужна-то всего одна строчка. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Sun Mar 17, 2013 20:26 Post subject: |
|
|
Quote: | Все рабочие варианты для любой версии Autohotkey_L приведены в этой ветке. |
В ветке рабочие варианты.
Но вся суть в том, что в ветке до этого момента рассматривались только cm_ команды, посылаемые в виде числового кода. Я же спрашиваю про пользовательскую (em_) команду.
Про одну строчку - согласен, скорее всего решение элементарное. Но уже пробовал и осмыслить команду, и метод тыка - пока безрезультатно.
Согласно совету на оф.форуме заменил:
cbData := StrPutVar(Command, Command, "cp0")
Добавил функцию StrPutVar, но и так не работает.
Таки работает (почему не работало сразу - вопрос на засыпку).
Может, кому пригодится:
Code: |
SendTCUserCommand("em_blablabla")
Return
SendTCUserCommand(Command) ; string
{
If Command <>
{
VarSetCapacity(CopyDataStruct, 3*A_PtrSize, 0) ; Set up the structure's memory area.
dwData := Asc("E") + 256 * Asc("M")
NumPut(dwData, CopyDataStruct, 0)
cbData := StrPutVar(Command, Command, "cp0")
NumPut(cbData, CopyDataStruct, A_PtrSize) ; OS requires that this be done.
NumPut(&Command, CopyDataStruct, 2*A_PtrSize) ; Set lpData to point to the string itself.
SendMessage, 0x4a, 0, &CopyDataStruct,, ahk_class TTOTAL_CMD ; 0x4a is WM_COPYDATA. Must use Send not Post.
}
}
StrPutVar(string, ByRef var, encoding)
{
VarSetCapacity( var, StrPut(string, encoding) * ((encoding="utf-16"||encoding="cp1200") ? 2 : 1) ) ; Ensure capacity.
return StrPut(string, &var, encoding) ; Copy or convert the string.
}
|
_________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Sat May 25, 2013 14:10 Post subject: |
|
|
Не могу понять.
Записываю пользовательскую команду (или же кнопку):
Code: | [em_MyScript]
cmd=%commander_path%\Utilities\AutoHotkey\AutoHotkey.exe
param=%%commander_path%%\Scripts\MyScript.ahk |
Не работает. AutoHotkey пытается искать скрипт по пути "текущий_активный_каталог\%commander_path%\Scripts\MyScript.ahk"
А вот так работает:
Code: | [em_MyScript]
cmd=%commander_path%\Utilities\AutoHotkey\AutoHotkey.exe %commander_path%\Scripts\MyScript.ahk |
В чём ошибка в первой записи, как правильно передать скрипт в поле параметра ? _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10280 Location: Россия, Саратов
|
(Separately) Posted: Sat May 25, 2013 14:26 Post subject: |
|
|
LonerD
А зачем, собственно, разносить запись на два поля, если всё нормально работает в одном? _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Sat May 25, 2013 16:06 Post subject: |
|
|
Avada wrote: | А зачем, собственно, разносить запись на два поля, если всё нормально работает в одном? |
Да, я тоже знаю золотое правило админа "Если что-то работает - лучше не трогай".
Вопрос в другом. Где ошибка в первом варианте записи? Это особенность AHK или Тотала в целом? Ведь и в одном и во втором случае путь к скрипту выступает в качестве параметра, но в одну строку работает, а в две - нет. _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat May 25, 2013 16:57 Post subject: |
|
|
LonerD
Ты явно не в ту тему залез. На днях обсуждали, а ещё здесь, и здесь, и много ещё где. Ты бы поискать не поленился. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Sat May 25, 2013 19:42 Post subject: |
|
|
Flasher
Спасибо за ссылочки.
"Тотал не раскрывает переменные окружения, указанные в поле параметров кнопки."
Тогда всё в тему. Значит, проблема в том, что AutoHotkey.exe не умеет раскрывать переменные окружения, потому в данном частном случае единственный правильный выход - указывать программу и параметр в одной строке. _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat May 25, 2013 20:09 Post subject: |
|
|
LonerD wrote: | проблема в том, что AutoHotkey.exe не умеет раскрывать переменные окружения | Он умеет это делать в теле скрипта, а не в пути к нему.
LonerD wrote: | потому в данном частном случае единственный правильный выход - указывать программу и параметр в одной строке. | Ну, если ты смотрел примеры по ссылкам внимательно, то не единственный. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Sun Jun 09, 2013 17:47 Post subject: |
|
|
Каким образом "заморозить" и "разморозить окно" (запретить и разрешить прорисовку), а затем перерисовать содержимое окна (панелей) ? Всё в целом окно Тотала или хотя бы только панели.
То есть скрыть активность при выполнении скриптов (выделение, переименование, навигацию и т.д...)
Пробовал вот так:
SendMessage, 0xB, 0,,, ahk_class TTOTAL_CMD - окно замораживается насмерть, оно вообще отображается лишь в панели инструментов, и лечится только закрытием.
SendMessage, 0xB, 1,,, ahk_class TTOTAL_CMD - не размораживается.
Плюс ещё как-то перерисовать надо...
Тему читал, но как это всё адаптировать в AutoHotKey - не представляю.
PS. Собственно, сам и отвечу. Хоть такой способ и не рекомендуется умными программистами, но для кратковременных операций имхо будет приемлем и выглядит довольно заманчиво - лишь лёгкое помаргивание панелек.
Code: | ; Получаем HWND Тотала и блокируем перерисовку
WinGet, TCHWND, ID, ahk_class TTOTAL_CMD
DllCall("LockWindowUpdate", "uint", TCHWND)
; Делаем что-нибудь
; Разблокируем окно
DllCall("LockWindowUpdate", "uint", 0) |
_________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
dmitriy111
Joined: 01 Apr 2013 Posts: 25
|
(Separately) Posted: Fri Jul 05, 2013 17:48 Post subject: |
|
|
Есть вот скрипт который ловит двойные быстрые нажатия указанных клавиш и выполняет соответствующую команду, но есть проблема - клавиша, по которой происходит срабатывание перестает работать в сочетаниях с другими клавишами (например Ctrl+S), подскажите пожалуйста как это можно исправить?
Code: | DoubleKey(sendKeys, timeout)
{
if(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < timeout)
Send, %sendKeys%
}
LCtrl:: DoubleKey("^V", 200)
|
|
|
Back to top |
|
|
rediffusion
Joined: 25 Feb 2019 Posts: 34
|
(Separately) Posted: Sun Mar 10, 2019 20:16 Post subject: |
|
|
Кто подскажет как - "Назначить F4 на клик по колёсику мыши".
autorun.cfg вставил:
Code: | ShellExec /SW_HIDE /W /TT "%COMMANDER_DRIVE%\Users\NIKA\Downloads\F4-Mouse\F4W.exe" "%COMMANDER_DRIVE%\Users\NIKA\Downloads\F4-Mouse\F4W.ahk" |
Файлы скачал. Что дальше?
Last edited by rediffusion on Mon Mar 11, 2019 11:31; edited 5 times in total |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10280 Location: Россия, Саратов
|
(Separately) Posted: Sun Mar 10, 2019 20:22 Post subject: |
|
|
rediffusion
Сообщения с многоточиями в начале фраз дальше будут удаляться. Раз нормальные замечание игнорируются, придётся поступать так. А за злостные нарушения правил форума у нас банят. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 11, 2019 09:00 Post subject: |
|
|
rediffusion
В памятке чётко написано, что делать в случае "не работает".
И не autorum.cfg, а autorun.cfg. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10280 Location: Россия, Саратов
|
(Separately) Posted: Mon Mar 11, 2019 09:20 Post subject: |
|
|
rediffusion
Во-первых, не надо отвечать модератору в теме, для этого есть ЛС.
Во-вторых, содержимое строки из autorun.cfg и подобные её вещи впредь прошу оформлять либо кодом, либо цитатой. Под спойлер обычно упрятывается либо объёмная, либо посторонняя информация. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|