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 

Запуск плагина из скрипта. Это возможно?
Goto page Previous  1, 2, 3
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Aug 04, 2015 16:47    Post subject: Reply with quote

Code:
With CreateObject("Wscript.Shell")
  .Popup "1", 0.6
  .SendKeys "{TAB}4{TAB}"
  .Popup "2", 2
End With
Very Happy
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Tue Aug 04, 2015 16:54    Post subject: Reply with quote

А плагины в какой последовательности зарегистрированы?
У меня сначала vbscript, затем fileinfo.
Получаю
- Popup 1
- открытие комстроки и введенную в ней 4 и сразу Popup 2
- запуск fileinfo
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Aug 04, 2015 17:01    Post subject: Reply with quote

Конечно, в такой.
Нажимаю Ctrl+Q, появляется окно, убирается, включается плагин, появляется второе окно.
Значит, в данном случае первый Tab нажимается до активации окна ТС. Можно перед SendKeys маленькую задержку втиснуть (WScript.Sleep 50). А с учётом того, что будут выполняться какие-то действия без вывода окон, то всё должно происходить без сбоев.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Tue Aug 04, 2015 19:12    Post subject: Reply with quote

Flasher wrote:
перед SendKeys маленькую задержку втиснуть (WScript.Sleep 50)

Не получается, пишет Error in script: Требуется объект: WScript
Вообще все происходит очень странно:
- первый Popup выводится на 0.6 сек
- открытие комстроки и введенную в ней 4 и сразу Popup 2
и этот Popup 2 висит неограниченное время. При этом fileinfo так и не запустился.
- нажимаю на кнопку в Popup 2, окно пропадает и вот теперь происходит запуск fileinfo
Но fileinfo запускается не скриптом, как я понял, а самим ТС, ибо этот плагин идет следующим в очереди плагинов и по окончанию работы первого плагина запускается второй.
Значит первого запуска fileinfo из скрипта не происходит, а второй из ТС мне не нужен.
И еще ошибка в алгоритме, У Вас задумано, что строка SendKeys запускает fileinfo и, не дожидаясь завершения работы fileinfo запускается следующая команда Popup 2. А мне нужно, чтобы каждая следующая команда посылалась только после окончания предыдущей. Т.е. Popup 2 не после запуска fileinfo, а после его (fileinfo) завершения (закрытия окна (F3) или панели (Ctrl+Q))
И что это за команда {TAB}4{TAB}? Что она должна делать? Может это у Вас какая то спец команда, которая у меня не работает?
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Tue Aug 04, 2015 20:34    Post subject: Reply with quote

gora wrote:
И что это за команда {TAB}4{TAB}? Что она должна делать?

Переключиться на панель быстрого просмотра, вызвать там следующий LS-плагин и вернуться обратно в файловую панель.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Tue Aug 04, 2015 20:45    Post subject: Reply with quote

Avada
Ткните, пожалуйста, носом, где это описано!?
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Tue Aug 04, 2015 20:54    Post subject: Reply with quote

gora
Что именно описано? Что делает в панелях TC клавиша Tab, а в Листере (и, соответственно, в окне быстрого просмотра) клавиша 4? Загляните в документацию. Или что в норме (без TWinKey) для переключения LS-плагинов при быстром просмотре приходится прежде делать активной соответствующую панель? Это вроде как тоже секретом не является. В итоге имеем, разумеется, не единую команду, а цепочку определённых действий, выполняемых с клавиатуры. Мне непонятно, что тут вызвало недоумение.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Tue Aug 04, 2015 21:11    Post subject: Reply with quote

Avada
Что делает Клавиша Tab в окне TC я нашел, именно это у меня и делается в моем ТС, а именно Tab Переключиться на другую файловую панель.
Про клавишу 4 в листере я тоже знаю, но вот как они связаны в этой последовательности?
У меня ТС в режиме двух панелей и окна листера (и, соответственно, окна быстрого просмотра) пока нет. Так вот как в этом случае команда TAB должна перейти в окно листера и там должна быть подана команда 4, а потом командой TAB курсор возвратиться назад? Кто (какая команда) запускает листер?

Листер у меня не запускается и команды 4 и TAB подаются TC, а не листеру

Недоумение у меня вызвала вот эта Ваша фраза:
Avada wrote:
Переключиться на панель быстрого просмотра

_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Tue Aug 04, 2015 22:01    Post subject: Reply with quote

gora
Загляните в справку. И на форуме сто раз говорилось, что окно быстрого просмотра (Ctrl+Q) — это просто маленькое окно Листера на месте одной из файловых панелей TC. При быстром просмотре активна, естественно, панель со списком файлов. Если не сделать активной панель с быстрым просмотром (Tab, мышью или как-то иначе), 4 пойдёт вводом в командную строку TC, а не для переключения плагинов. А после смены плагина надо вернуть фокус в исходную панель. (TWinKey позволяет упростить эти манипуляции, переключая плагины прямо из исходной панели, но тут речь не о нём.)
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Tue Aug 04, 2015 22:08    Post subject: Reply with quote

Avada wrote:
окно быстрого просмотра (Ctrl+Q) — это просто маленькое окно Листера на месте одной из файловых панелей TC.

Повторю еще раз. У меня нет окна быстрого просмотра или окна листера!!! Ну нет их еще. Кто их вызывает в этой последовательности команд {TAB}4{TAB}? Вы пишите
Avada wrote:
Переключиться на панель быстрого просмотра

Где конкретно здесь вызов панели быстрого просмотра?
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Tue Aug 04, 2015 22:18    Post subject: Reply with quote

gora
Нигде. Панель быстрого просмотра либо на момент применения скрипта должна быть уже открыта, либо, если это необходимо, раньше открываться тем же скриптом. В предложенном коде этого, разумеется, нет. Если вам нужно какое-то иное поведение, обсуждайте это с автором скрипта.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Tue Aug 04, 2015 22:23    Post subject: Reply with quote

Avada wrote:
В предложенном скрипте этого, разумеется, нет.

Ну вот и разобрались! Осталось понять, как у Flasher этот вариант работает и запускает листер, а у меня нет.
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Aug 05, 2015 00:03    Post subject: Reply with quote

gora
Просмотр (в т.ч. быстрый), как это ни странно, осуществляется вызовом листерного плагина VBScript. Поэтому утвеждение "У меня нет окна быстрого просмотра или окна листера!!!" как-то сомнительно выглядит, особенно на фоне "пишет Error in script: Требуется объект: WScript". Так нет или всё же есть? Wink
Чтобы отработка клавиши [4] в окне не пребывала в статусе ожидания, вместо Popup, как и задано в условии, будет вызываться другой скрипт по .Run(с одним параметром)/.Exec. Т.е. он даст команду на вызов и сам закроется.
Да, WScript в этом плагине, не работает. Задержку можно осуществить, например, с помощью такого механизма:
Code:
T = Timer
Do Until Timer - T > 0.05 : Loop

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Wed Aug 05, 2015 06:50    Post subject: Reply with quote

Flasher wrote:
Поэтому утвеждение "У меня нет окна быстрого просмотра или окна листера!!!" как-то сомнительно выглядит, особенно на фоне "пишет Error in script: Требуется объект: WScript". Так нет или всё же есть?
Не сомневайтесь, врать не приучен.
Когда нет ошибки, окна нет, а когда ошибка есть, то появляется окно и в нем надпись об ошибке.
Flasher wrote:
Чтобы отработка клавиши [4] в окне не пребывала в статусе ожидания, вместо Popup, как и задано в условии, будет вызываться другой скрипт по .Run(с одним параметром)/.Exec.

Что бы не было перехвата фокуса на popup, заменял их звуковыми сигналами. Но окно листера все равно не появляется.
Code:
Sub Beep()
   WSS.Run "cmd /c Echo ", 0, True
End Sub
Ваш механизм с таймером пробовал, окна нет.

Flasher
Думаю дальнейшую борьбу со скриптом можно завершить, ибо она все равно не приведет к нужному мне результату.
Спасибо за помощь.
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Aug 05, 2015 07:37    Post subject: Reply with quote

gora wrote:
то появляется окно и в нем надпись об ошибке
Окно чего? Если Листера, то в чём я не прав?
gora wrote:
Но окно листера все равно не появляется.
Коли так, то либо плагин неверно настроен под соотв. расширения, либо ТС не x32.
gora wrote:
дальнейшую борьбу со скриптом можно завершить
Судя по описанию проблемы, дело не в скрипте.
Но это было вовсе не решение, а затравка. Такие вещи, лучше на перечисленных ранее языках проделывать. Либо использовать доп. компонент. А без него навскидку можно разве что вызывать скрипт, назначенный на F3:
Code:
' Параметр: %N
Name = WScript.Arguments(0)
Set FSO = CreateObject("Scripting.FileSystemObject")
If Ubound(Filter(Split("exe dll ocx wcx wlx wdx wfx"), LCase(FSO.GetExtensionName(Name)))) < 0 Then
  WSH.SendKeys "{F3}"
Else
' Сделать одни дела 
  Set Exec = CreateObject("Wscript.Shell").Exec("%COMMANDER_EXE% /S=L:FileInfo")
  Do Until Exec.Status : WScript.Sleep 300 : Loop
' Cделать другие дела
End If

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
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
Page 3 of 3

 
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