View previous topic :: View next topic |
Author |
Message |
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Mon May 22, 2023 05:38 Post subject: |
|
|
Loopback wrote: | LonerD
проще через пользовательскую функцию (в бете): |
Понял, спасибо.
А можно как-то сделать, чтобы шрифты, загруженные через Autorun, выгружались после закрытия Тотала, а не висели до перезагрузки ОС?
LoadFont /N System\Fonts\ArialMod.ttf
LoadFont /N System\Fonts\Anonymous.ttf _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1280
|
(Separately) Posted: Mon May 22, 2023 19:26 Post subject: |
|
|
LonerD
По идее они и должны выгружаться, т.к. функция выгрузки загруженных шрифтов отрабатывает при выгрузке плагина. Я нашел прошлое обсуждение четыре года назад, вроде получается, что проблема появилась между версиями 2.0.2 и 2.0.7, хотя код функции между этими версиями не менялся. Единственное, скорее всего менялся компилятор, но я не вижу, как это может повлиять на работу функций WinAPI.
Ключ /N снимает флаг FR_PRIVATE у функции AddFontResourceEx, т.е. с этим ключом шрифт доступен не только процессу, но и в системе. Предположу, что какие-то системные процессы могут использовать этот шрифт, блокируя тем самым выгрузку.
В общем, это надо будет пробовать. Возможно, нужно делать вызов выгрузки несколько раз до обнуления счетчика использования шрифта. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Tue May 23, 2023 21:14 Post subject: |
|
|
Loopback wrote: | Ключ /N снимает флаг FR_PRIVATE у функции AddFontResourceEx, т.е. с этим ключом шрифт доступен не только процессу, но и в системе. Предположу, что какие-то системные процессы могут использовать этот шрифт, блокируя тем самым выгрузку. |
Точно. У меня и Акелпад подгружает шрифты эти же, но из своего каталога. Видимо, в представлении ОС это всё перемешивается, потому блокируются заодно и подгруженные из Тотала файлы.
Убрал ключ /N - всё стало замечательно. _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Wed May 31, 2023 03:27 Post subject: |
|
|
Можно ли через плагин посылать нажатия клавиш? MouseClick есть, а про клавиши что-то в справке не нахожу.
Цель - при нажатии средней кнопки мыши на панели инструментов посылать нажатие Ctrl+ЛКМ.
-------------
И второй вопрос.
ShowPopupMenu вызывается только через горячие клавиши/клики мыши? Его никак не повесить на em-команду? (кроме создания em-команды с эмуляцией нажатия соответствующих горячих клавиш) _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1280
|
(Separately) Posted: Wed May 31, 2023 13:00 Post subject: |
|
|
LonerD
В планах есть, но не с самым высоким приоритетом, конкретно ничего не могу сказать. Пока только через запуск скрипта или чего-нибудь еще, умеющего посылать нажатия, типа tcfs2.
Quote: | Его никак не повесить на em-команду? |
Можно, через SetMessageAction (у которой сейчас как раз проблемы с последней парой бет TC). В справке как раз показан пример такого использования, только вместо пользовательской функции можно использовать ShowPopupMenu:
Code: | SetMessageAction "MyMessage" ShowPopupMenu ... |
|
|
Back to top |
|
|
yahuu
Joined: 22 Jun 2023 Posts: 6
|
(Separately) Posted: Thu Jun 22, 2023 08:58 Post subject: ShowPopupMenu |
|
|
How should I use the variables when calling ShowPopupMenu in the function?
ControlSetMouseAction /R /K:S 1 ShowMenu
Func ShowMenu()
file = "jpg.bar"
strbar = %COMMANDER_PATH% & "\USER\Typebar\" & %file%
# msgbox(strbar)
#failed
ShowPopupMenu %strbar%
#failed
ShowPopupMenu %COMMANDER_PATH%\USER\Typebar\%file%
#failed
ShowPopupMenu D:\Totalcmd\USER\Typebar\%file%
#successed
ShowPopupMenu %COMMANDER_PATH%\USER\Typebar\jpg.bar
EndFunc |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1280
|
(Separately) Posted: Thu Jun 22, 2023 13:37 Post subject: |
|
|
yahuu
Yes, something wrong in how ShowPopupMenu handling path. Variables don't appear to be expanded, although a quick look at the code shows they should. So far you can use functional notation: ShowPopupMenu(strbar).
---
Да, что-то неправильно с тем, как ShowPopupMenu обрабатывает пути.
Похоже не разворачиваются переменные, хотя на первый взгляд в коде всё нормально. Пока можно использовать функциональную запись: ShowPopupMenu(strbar). |
|
Back to top |
|
|
yahuu
Joined: 22 Jun 2023 Posts: 6
|
(Separately) Posted: Thu Jun 22, 2023 20:11 Post subject: |
|
|
Loopback wrote: | yahuu
Yes, something wrong in how ShowPopupMenu handling path. Variables don't appear to be expanded, although a quick look at the code shows they should. So far you can use functional notation: ShowPopupMenu(strbar).
---
Да, что-то неправильно с тем, как ShowPopupMenu обрабатывает пути.
Похоже не разворачиваются переменные, хотя на первый взгляд в коде всё нормально. Пока можно использовать функциональную запись: ShowPopupMenu(strbar). |
Thank you
ShowPopupMenu(strbar) can popup the menu now
But it will often show only part of it, see the attachment
This problem occurs when using .bar format files
Not appearing for now with .mnu format files
Sorry,Because I'm a new user, I can't post links to pictures...
http://mjj.today/i/ICS0Ty
! | CaptainFlint: | The link is now working.
Оживил ссылку. | |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1280
|
(Separately) Posted: Fri Jun 23, 2023 01:08 Post subject: |
|
|
yahuu
Interesting. I can't reproduce it on my files. Would be good if you place your affected barfile somewere, so I can test it.
---
Интересно, но на моих файлах не воспроизводится. Было бы неплохо увидеть проблемный файл. |
|
Back to top |
|
|
yahuu
Joined: 22 Jun 2023 Posts: 6
|
(Separately) Posted: Fri Jun 23, 2023 09:24 Post subject: |
|
|
Loopback wrote: | yahuu
Interesting. I can't reproduce it on my files. Would be good if you place your affected barfile somewere, so I can test it.
---
Интересно, но на моих файлах не воспроизводится. Было бы неплохо увидеть проблемный файл. |
I sent the bar file to your email loopback(at)darkhost.ru |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Sat Jun 24, 2023 20:00 Post subject: |
|
|
Запускается несколько копий настроенного Total Commander c плагином Autorun.
В Autorun прописан запуск программы. Закрываю одну копию TC - программа тоже выгружается.
Можно ли это как-то реализовать на уровне параметров запуска в плагине или другими способами, чтобы она выгружалась только если закрыта последняя копия запущенного процесса TC? То есть пока работает хоть один ТС - программа должна висеть резидентно и работать. _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1280
|
(Separately) Posted: Sun Jun 25, 2023 01:12 Post subject: |
|
|
LonerD
На уровне параметров нет, не получится.
Я вижу только один способ: в секции финализации проверять наличие хотя бы одного окна тотала. Если окон не осталось, выгружать программу.
Для максимальной простоты, можно, например, сделать макрос, возвращающий число существующих окон тотала (именно окон, не процессов), если оно 0 - можно выгружать. Минус такого решения - оно сугубо под одну задачу, зачем еще где-то может понадобиться число окон?
Либо проверять наличие окна с помощью функции поиска окон. Её пока нет, но планируется. Не сильно сложнее, но гибче. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Mon Jun 26, 2023 00:37 Post subject: |
|
|
Loopback wrote: | можно, например, сделать макрос, возвращающий число существующих окон тотала (именно окон, не процессов), если оно 0 - можно выгружать. Минус такого решения |
Понял. Учитывая, что программа-скрипт своя, то мне пока проще и надёжней в ней прописать таймер проверки окон.
В обеих случаях минус в том, что могут быть запущены ещё и сторонние копии Тотала. А хотелось бы выгружать программу только в том случае, если она закрыто последнее окно именно "своего" Тотала (в котором прописан автозапуск программы). _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Fri Jun 30, 2023 16:09 Post subject: |
|
|
LonerD
У себя обычно типа такого делал, т.е. не ищем окно ТС, а берём родительский процесс и ищем окно этого процесса. |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1280
|
(Separately) Posted: Fri Jun 30, 2023 23:31 Post subject: |
|
|
Skif_off
В принципе, если стоит Autorun, то и искать ничего не нужно, т.к. он возвращает PID и хэндл окна текущего процесса, можно их сразу в скрипте использовать. Но насколько я понимаю, тут несколько другая задача, поскольку есть условие "последнее окно именно "своего" Тотала". Т.е. тут надо "помечать" окно тотала, в котором выполняется Autorun, запускающий это приложение, а при выходе проверять только помеченные окна. |
|
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
|