View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Aug 04, 2015 16:47 Post subject: |
|
|
Code: | With CreateObject("Wscript.Shell")
.Popup "1", 0.6
.SendKeys "{TAB}4{TAB}"
.Popup "2", 2
End With |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Tue Aug 04, 2015 16:54 Post subject: |
|
|
А плагины в какой последовательности зарегистрированы?
У меня сначала vbscript, затем fileinfo.
Получаю
- Popup 1
- открытие комстроки и введенную в ней 4 и сразу Popup 2
- запуск fileinfo _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Aug 04, 2015 17:01 Post subject: |
|
|
Конечно, в такой.
Нажимаю Ctrl+Q, появляется окно, убирается, включается плагин, появляется второе окно.
Значит, в данном случае первый Tab нажимается до активации окна ТС. Можно перед SendKeys маленькую задержку втиснуть (WScript.Sleep 50). А с учётом того, что будут выполняться какие-то действия без вывода окон, то всё должно происходить без сбоев. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Tue Aug 04, 2015 19:12 Post subject: |
|
|
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 |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10268 Location: Россия, Саратов
|
(Separately) Posted: Tue Aug 04, 2015 20:34 Post subject: |
|
|
gora wrote: | И что это за команда {TAB}4{TAB}? Что она должна делать? |
Переключиться на панель быстрого просмотра, вызвать там следующий LS-плагин и вернуться обратно в файловую панель. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Tue Aug 04, 2015 20:45 Post subject: |
|
|
Avada
Ткните, пожалуйста, носом, где это описано!? _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10268 Location: Россия, Саратов
|
(Separately) Posted: Tue Aug 04, 2015 20:54 Post subject: |
|
|
gora
Что именно описано? Что делает в панелях TC клавиша Tab, а в Листере (и, соответственно, в окне быстрого просмотра) клавиша 4? Загляните в документацию. Или что в норме (без TWinKey) для переключения LS-плагинов при быстром просмотре приходится прежде делать активной соответствующую панель? Это вроде как тоже секретом не является. В итоге имеем, разумеется, не единую команду, а цепочку определённых действий, выполняемых с клавиатуры. Мне непонятно, что тут вызвало недоумение. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Tue Aug 04, 2015 21:11 Post subject: |
|
|
Avada
Что делает Клавиша Tab в окне TC я нашел, именно это у меня и делается в моем ТС, а именно Tab Переключиться на другую файловую панель.
Про клавишу 4 в листере я тоже знаю, но вот как они связаны в этой последовательности?
У меня ТС в режиме двух панелей и окна листера (и, соответственно, окна быстрого просмотра) пока нет. Так вот как в этом случае команда TAB должна перейти в окно листера и там должна быть подана команда 4, а потом командой TAB курсор возвратиться назад? Кто (какая команда) запускает листер?
Листер у меня не запускается и команды 4 и TAB подаются TC, а не листеру
Недоумение у меня вызвала вот эта Ваша фраза:
Avada wrote: | Переключиться на панель быстрого просмотра |
_________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10268 Location: Россия, Саратов
|
(Separately) Posted: Tue Aug 04, 2015 22:01 Post subject: |
|
|
gora
Загляните в справку. И на форуме сто раз говорилось, что окно быстрого просмотра (Ctrl+Q) — это просто маленькое окно Листера на месте одной из файловых панелей TC. При быстром просмотре активна, естественно, панель со списком файлов. Если не сделать активной панель с быстрым просмотром (Tab, мышью или как-то иначе), 4 пойдёт вводом в командную строку TC, а не для переключения плагинов. А после смены плагина надо вернуть фокус в исходную панель. (TWinKey позволяет упростить эти манипуляции, переключая плагины прямо из исходной панели, но тут речь не о нём.) _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Tue Aug 04, 2015 22:08 Post subject: |
|
|
Avada wrote: | окно быстрого просмотра (Ctrl+Q) — это просто маленькое окно Листера на месте одной из файловых панелей TC. |
Повторю еще раз. У меня нет окна быстрого просмотра или окна листера!!! Ну нет их еще. Кто их вызывает в этой последовательности команд {TAB}4{TAB}? Вы пишите Avada wrote: | Переключиться на панель быстрого просмотра |
Где конкретно здесь вызов панели быстрого просмотра? _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10268 Location: Россия, Саратов
|
(Separately) Posted: Tue Aug 04, 2015 22:18 Post subject: |
|
|
gora
Нигде. Панель быстрого просмотра либо на момент применения скрипта должна быть уже открыта, либо, если это необходимо, раньше открываться тем же скриптом. В предложенном коде этого, разумеется, нет. Если вам нужно какое-то иное поведение, обсуждайте это с автором скрипта. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Tue Aug 04, 2015 22:23 Post subject: |
|
|
Avada wrote: | В предложенном скрипте этого, разумеется, нет. |
Ну вот и разобрались! Осталось понять, как у Flasher этот вариант работает и запускает листер, а у меня нет. _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Aug 05, 2015 00:03 Post subject: |
|
|
gora
Просмотр (в т.ч. быстрый), как это ни странно, осуществляется вызовом листерного плагина VBScript. Поэтому утвеждение "У меня нет окна быстрого просмотра или окна листера!!!" как-то сомнительно выглядит, особенно на фоне "пишет Error in script: Требуется объект: WScript". Так нет или всё же есть?
Чтобы отработка клавиши [4] в окне не пребывала в статусе ожидания, вместо Popup, как и задано в условии, будет вызываться другой скрипт по .Run(с одним параметром)/.Exec. Т.е. он даст команду на вызов и сам закроется.
Да, WScript в этом плагине, не работает. Задержку можно осуществить, например, с помощью такого механизма:
Code: | T = Timer
Do Until Timer - T > 0.05 : Loop |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Wed Aug 05, 2015 06:50 Post subject: |
|
|
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 |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Aug 05, 2015 07:37 Post subject: |
|
|
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 |
|
|
|
|
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
|