1

Тема: AHK: Ввод пути в выделенное окно TotalCommander

Здравствуйте.
Помогите со скриптом.

Как скриптом AHK - в то окно TotalCommander, которое выделено на текущий момент - в окно ввода пути - ввести текст "C:\документы 2\571\"  и нажать Энтер ?

2

Re: AHK: Ввод пути в выделенное окно TotalCommander

Вроде, так должно бы работать:

new_pth := "C:\документы 2\571\"

f1::
   ControlGetText, Text, TMyPanel9, ahk_class TTOTAL_CMD
   Sleep, 100
   ControlSetText, TMyPanel9, %new_pth%, ahk_class TTOTAL_CMD
   Sleep, 100
   ControlFocus, TMyPanel9, ahk_class TTOTAL_CMD
   Sleep, 100
   ;ControlSend, TMyPanel9, {Enter}, ahk_class TTOTAL_CMD
return

Может кто подскажет, что не так.

3

Re: AHK: Ввод пути в выделенное окно TotalCommander

DD, по какой-то причине не работает.
Просто в трее появляется иконка скрипта и больше ничего не происходит.

4 (изменено: DD, 2019-09-12 16:07:57)

Re: AHK: Ввод пути в выделенное окно TotalCommander

new_pth := "C:\документы 2\571\"

f1::
   WinGet, hw_TTOTAL_CMD, ID, ahk_class TTOTAL_CMD ; получить ID окна TC (последнего активного)
   ControlSetText, Edit1, cd %new_pth%, ahk_id %hw_TTOTAL_CMD% ; вбиваем путь в ком. строку
   ControlSend, Edit1, {Enter}, ahk_id %hw_TTOTAL_CMD% ; открываем папку
return

5

Re: AHK: Ввод пути в выделенное окно TotalCommander

Переходить будет по клавише F1.

6

Re: AHK: Ввод пути в выделенное окно TotalCommander

DD, да действительно по F1 работает.

А как автоматически перейти ?
То есть не через F1, а просто при активации данного скрипта - то есть сразу же ?

7

Re: AHK: Ввод пути в выделенное окно TotalCommander

ОсиповаТатьяна пишет:

как автоматически перейти ?

Естественно — убрав горячую клавишу).

8

Re: AHK: Ввод пути в выделенное окно TotalCommander

DD пишет:

Естественно — убрав горячую клавишу).

Если убрать горячую клавишу - вообще перестает работать.

Я имею ввиду - как заставить скрипт выполняться автоматически, чтобы он выполнялся просто при запуске  ?

9

Re: AHK: Ввод пути в выделенное окно TotalCommander

Чтобы выполнялся сразу же — надо чтобы окно менеджера было активно, как вы писали в первом сообщении. Или же нужно добавить строчку для активации окна TC (если TC уже запущен), либо запуска TC.

10

Re: AHK: Ввод пути в выделенное окно TotalCommander

ОсиповаТатьяна пишет:

при активации данного скрипта - то есть сразу же ?

Уточните, как будет активироваться скрипт: из окна ТС, из другого скрипта? Из Проводника?

11

Re: AHK: Ввод пути в выделенное окно TotalCommander

DD пишет:

Уточните, как будет активироваться скрипт: из окна ТС, из другого скрипта? Из Проводника?

Из окна конкретного TC.
Всего открыто три TC.

12 (изменено: DD, 2019-09-14 15:51:54)

Re: AHK: Ввод пути в выделенное окно TotalCommander

Проверял с несколькими ТС — работает. Может, вы путь указываете несуществующий? Или что-то дописали в скрипте, из-за чего меняется фокус.

13

Re: AHK: Ввод пути в выделенное окно TotalCommander

DD, нет -  не работает именно скрипт.

Выдает ошибку :
An older instance of this script is already running. Replace it with this instance ?

(Насчет пути - разумеется я указываю адрес существующей папки)
(И в скрипте - ничего не дописано. Вот как был он скопирован один в один - так и запускался - с другой папкой только)

14 (изменено: DD, 2019-09-14 21:23:30)

Re: AHK: Ввод пути в выделенное окно TotalCommander

Это не ошибка, а уведомление о том, что предыдущий экземпляр скрипта уже запущен. То есть, вы его повторно запускаете с какой-то директивой.

ОсиповаТатьяна пишет:

один в один

Вы закомментировали горячую клавишу и заодно "return" из скрипта? В нем должна быть строчка с путём и тремя строчками кода, в таком виде он обязан работать. На всякий случай, обновите AutoHotkey. И честно говоря, можно было обойтись ярлыком к вашей папке, без горячей клавиши было бы то же самое).

15

Re: AHK: Ввод пути в выделенное окно TotalCommander

DD пишет:

Это не ошибка, а уведомление о том, что предыдущий экземпляр скрипта уже запущен.

В смысле - предыдущий скрипт ?

В трее висит один-единственный скрипт - ваш.
Больше нет ни одного.

DD пишет:

Вы закомментировали горячую клавишу и заодно "return" из скрипта? В нем должна быть строчка с путём и тремя строчками кода, в таком виде он обязан работать.

Скрипт выглядит в точности так - как он записан в вашем сообщении.

DD пишет:

В нем должна быть строчка с путём и тремя строчками кода, в таком виде он обязан работать.

К сожалению на текущий момент он не работает, даже при переустановленном Autohotkey (и все прочие скрипты ahk - нормально работают).

DD пишет:

И честно говоря, можно было обойтись ярлыком к вашей папке

Речь шла не о ярлыке, а о выполнении действия для того окна TotalCommander, которое выделено на текущий момент (всего TC-несколько) - в окно ввода пути - ввести текст "C:\документы 2\571\"  и нажать Энтер.

Как проверить классы и контролы своего экземпляра TC ?

16

Re: AHK: Ввод пути в выделенное окно TotalCommander

ОсиповаТатьяна, запостите свой скрипт.

17

Re: AHK: Ввод пути в выделенное окно TotalCommander

ОсиповаТатьяна пишет:

Скрипт выглядит в точности так - как он записан в вашем сообщении.

То есть, вы не убрали/не закомментировали из него горячую клавишу? Из-за неё-то он и висит в трее.

Понимаю, что речь шла не о ярлыке. Но если простым ярлыком можно добиться того же, что делает скрипт — зачем скрипт?) Зачем прописывать путь в скрипте, если можно его прописать в ярлыке?

Про классы и контролы вспомнил, что у вас получалось по F1 по ним переходить, значит, они стандартные.

18

Re: AHK: Ввод пути в выделенное окно TotalCommander

Malcev пишет:

запостите свой скрипт.

Вот так выглядит мой скрипт:
(Как можно видеть - это точная копия скрипта из сообщения 4)


new_pth := "C:\документы 2\571\"

f1::
   WinGet, hw_TTOTAL_CMD, ID, ahk_class TTOTAL_CMD ; получить ID окна TC (последнего активного)
   ControlSetText, Edit1, cd %new_pth%, ahk_id %hw_TTOTAL_CMD% ; вбиваем путь в ком. строку
   ControlSend, Edit1, {Enter}, ahk_id %hw_TTOTAL_CMD% ; открываем папку
return

19

Re: AHK: Ввод пути в выделенное окно TotalCommander

DD, одну секундочку.

Вроде пару раз сработало.
Сейчас надо разобраться.

20

Re: AHK: Ввод пути в выделенное окно TotalCommander

Как я выше писал — вам следовало убрать, либо закомментировать горячую клавишу, иначе подпрограмма никогда не запустится. То есть, для начала убрать клавишу, а уже потом смотреть, что там дальше не работает).

21

Re: AHK: Ввод пути в выделенное окно TotalCommander

DD, В общем заработал вот такой код:


new_pth := "C:\документы 2\571\"

;f1::
   WinGet, hw_TTOTAL_CMD, ID, ahk_class TTOTAL_CMD ; получить ID окна TC (последнего активного)
   ControlSetText, Edit1, cd %new_pth%, ahk_id %hw_TTOTAL_CMD% ; вбиваем путь в ком. строку
   ControlSend, Edit1, {Enter}, ahk_id %hw_TTOTAL_CMD% ; открываем папку
return

Так что все работает нормально.
Большое спасибо вам за ответ.

22

Re: AHK: Ввод пути в выделенное окно TotalCommander

Но я же ещё в начале писал, что надо убрать горячую клавишу, на что вы ответили, что без нее вообще не работает).

23

Re: AHK: Ввод пути в выделенное окно TotalCommander

Все верно.
Вы были правы.