Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Autorun
Goto page Previous  1, 2, 3 ... 122, 123, 124 ... 129, 130, 131  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Mon May 22, 2023 05:38    Post subject: Reply with quote

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
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1262

Post (Separately) Posted: Mon May 22, 2023 19:26    Post subject: Reply with quote

LonerD
По идее они и должны выгружаться, т.к. функция выгрузки загруженных шрифтов отрабатывает при выгрузке плагина. Я нашел прошлое обсуждение четыре года назад, вроде получается, что проблема появилась между версиями 2.0.2 и 2.0.7, хотя код функции между этими версиями не менялся. Единственное, скорее всего менялся компилятор, но я не вижу, как это может повлиять на работу функций WinAPI.

Ключ /N снимает флаг FR_PRIVATE у функции AddFontResourceEx, т.е. с этим ключом шрифт доступен не только процессу, но и в системе. Предположу, что какие-то системные процессы могут использовать этот шрифт, блокируя тем самым выгрузку.

В общем, это надо будет пробовать. Возможно, нужно делать вызов выгрузки несколько раз до обнуления счетчика использования шрифта.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Tue May 23, 2023 21:14    Post subject: Reply with quote

Loopback wrote:
Ключ /N снимает флаг FR_PRIVATE у функции AddFontResourceEx, т.е. с этим ключом шрифт доступен не только процессу, но и в системе. Предположу, что какие-то системные процессы могут использовать этот шрифт, блокируя тем самым выгрузку.

Точно. У меня и Акелпад подгружает шрифты эти же, но из своего каталога. Видимо, в представлении ОС это всё перемешивается, потому блокируются заодно и подгруженные из Тотала файлы.
Убрал ключ /N - всё стало замечательно.
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Wed May 31, 2023 03:27    Post subject: Reply with quote

Можно ли через плагин посылать нажатия клавиш? MouseClick есть, а про клавиши что-то в справке не нахожу.
Цель - при нажатии средней кнопки мыши на панели инструментов посылать нажатие Ctrl+ЛКМ.

-------------
И второй вопрос.
ShowPopupMenu вызывается только через горячие клавиши/клики мыши? Его никак не повесить на em-команду? (кроме создания em-команды с эмуляцией нажатия соответствующих горячих клавиш)
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1262

Post (Separately) Posted: Wed May 31, 2023 13:00    Post subject: Reply with quote

LonerD
В планах есть, но не с самым высоким приоритетом, конкретно ничего не могу сказать. Пока только через запуск скрипта или чего-нибудь еще, умеющего посылать нажатия, типа tcfs2.

Quote:
Его никак не повесить на em-команду?

Можно, через SetMessageAction (у которой сейчас как раз проблемы с последней парой бет TC). В справке как раз показан пример такого использования, только вместо пользовательской функции можно использовать ShowPopupMenu:

Code:
SetMessageAction "MyMessage" ShowPopupMenu ...
Back to top
View user's profile Send private message
yahuu



Joined: 22 Jun 2023
Posts: 3

Post (Separately) Posted: Thu Jun 22, 2023 08:58    Post subject: ShowPopupMenu Reply with quote

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
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1262

Post (Separately) Posted: Thu Jun 22, 2023 13:37    Post subject: Reply with quote

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
View user's profile Send private message
yahuu



Joined: 22 Jun 2023
Posts: 3

Post (Separately) Posted: Thu Jun 22, 2023 20:11    Post subject: Reply with quote

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
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1262

Post (Separately) Posted: Fri Jun 23, 2023 01:08    Post subject: Reply with quote

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
View user's profile Send private message
yahuu



Joined: 22 Jun 2023
Posts: 3

Post (Separately) Posted: Fri Jun 23, 2023 09:24    Post subject: Reply with quote

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
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Sat Jun 24, 2023 20:00    Post subject: Reply with quote

Запускается несколько копий настроенного Total Commander c плагином Autorun.
В Autorun прописан запуск программы. Закрываю одну копию TC - программа тоже выгружается.
Можно ли это как-то реализовать на уровне параметров запуска в плагине или другими способами, чтобы она выгружалась только если закрыта последняя копия запущенного процесса TC? То есть пока работает хоть один ТС - программа должна висеть резидентно и работать.
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1262

Post (Separately) Posted: Sun Jun 25, 2023 01:12    Post subject: Reply with quote

LonerD
На уровне параметров нет, не получится.

Я вижу только один способ: в секции финализации проверять наличие хотя бы одного окна тотала. Если окон не осталось, выгружать программу.

Для максимальной простоты, можно, например, сделать макрос, возвращающий число существующих окон тотала (именно окон, не процессов), если оно 0 - можно выгружать. Минус такого решения - оно сугубо под одну задачу, зачем еще где-то может понадобиться число окон?

Либо проверять наличие окна с помощью функции поиска окон. Её пока нет, но планируется. Не сильно сложнее, но гибче.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Mon Jun 26, 2023 00:37    Post subject: Reply with quote

Loopback wrote:
можно, например, сделать макрос, возвращающий число существующих окон тотала (именно окон, не процессов), если оно 0 - можно выгружать. Минус такого решения

Понял. Учитывая, что программа-скрипт своя, то мне пока проще и надёжней в ней прописать таймер проверки окон.
В обеих случаях минус в том, что могут быть запущены ещё и сторонние копии Тотала. А хотелось бы выгружать программу только в том случае, если она закрыто последнее окно именно "своего" Тотала (в котором прописан автозапуск программы).
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Jun 30, 2023 16:09    Post subject: Reply with quote

LonerD
У себя обычно типа такого делал, т.е. не ищем окно ТС, а берём родительский процесс и ищем окно этого процесса.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1262

Post (Separately) Posted: Fri Jun 30, 2023 23:31    Post subject: Reply with quote

Skif_off
В принципе, если стоит Autorun, то и искать ничего не нужно, т.к. он возвращает PID и хэндл окна текущего процесса, можно их сразу в скрипте использовать. Но насколько я понимаю, тут несколько другая задача, поскольку есть условие "последнее окно именно "своего" Тотала". Т.е. тут надо "помечать" окно тотала, в котором выполняется Autorun, запускающий это приложение, а при выходе проверять только помеченные окна.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 122, 123, 124 ... 129, 130, 131  Next
Page 123 of 131

 
Jump to:  
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