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 ... 114, 115, 116 ... 130, 131, 132  Next
 
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: Sat Jun 06, 2020 01:26    Post subject: Reply with quote

Loopback wrote:
Тут, раздел Объявление переменных.
Понятно. Без обоснования только.

Loopback wrote:
Ну давай подведем краткое резюме.
В справке, надеюсь, это всё отражено будет. Добавил пока пост в закладки, чтобы сперва сюда при ошибках смотреть.
А теперь вопрос. Сейчас у нас не КЗ/ФЗ, а КЗ+ФЗ? Или как? На КЗ новинки (функции, циклы и т. д.) заведуться или надо между прагмами переключаться?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 178

Post (Separately) Posted: Sat Jun 06, 2020 01:32    Post subject: Reply with quote

Loopback wrote:
Только так
ControlSetMouseAction ... SendCommand 123
Или так
ControlSetMouseAction( ... , SendCommand, 123)

Code:
ControlSetMouseAction /L /K:C /K:S /B:3 17 SendCommand 1004

Работает.
Code:
ControlSetMouseAction(/L, /K:C, /K:S, /B:3, 17, SendCommand, 1004)

«Left value conversion error: / L» при запуске ТС.
ЧЯДНТ?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Jun 06, 2020 01:51    Post subject: Reply with quote

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



Joined: 04 May 2014
Posts: 178

Post (Separately) Posted: Sat Jun 06, 2020 02:35    Post subject: Reply with quote

Flasher
Спасибо, с этим разобрался. А вот из такой КЗ (сама эта строка — рабочая):
Code:
ControlSetMouseAction /R /K:A /B:1 17 ShellExec %AUTOIT% "%COMMANDER_PATH%\Profile\scripts\FButtonHint.au3 /f3"

у меня никак не получается сделать рабочую ФЗ.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Jun 06, 2020 02:40    Post subject: Reply with quote

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



Joined: 04 May 2014
Posts: 178

Post (Separately) Posted: Sat Jun 06, 2020 02:47    Post subject: Reply with quote

Flasher
А, нет, пардон Embarassed , вот эта заработала:
Code:
ControlSetMouseAction('~/R /K:A /B:1 17', ShellExec, %AUTOIT%, "%COMMANDER_PATH%\Profile\scripts\FButtonHint.au3 /f3")
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1274

Post (Separately) Posted: Sat Jun 06, 2020 14:05    Post subject: Reply with quote

Flasher wrote:
В справке, надеюсь, это всё отражено будет.

Конечно, будет отдельный раздел по синтаксису. Иначе не разберешься. Пожалуй, всё описанное здесь можно уже сейчас на бета-страницу перенести.

Flasher wrote:
Сейчас у нас не КЗ/ФЗ, а КЗ+ФЗ? Или как? На КЗ новинки (функции, циклы и т. д.) заведуться или надо между прагмами переключаться?

Да, КЗ+ФЗ. Просто надо понимать, что уточнение "командная запись", равно как и "функциональная запись" относится не к скрипту в целом, а только к методу записи отдельных команд/функций. Иными словами, в КЗ может быть записан только вызов команды или функции. Выражения всегда записываются только в ФЗ, если в выражении используется функция, она тоже записывается в ФЗ, по другому просто невозможно. Поэтому говоря о выражениях, можно даже не упоминать, в какой они записи - это всегда ФЗ. То же самое объявление переменной и присваивание - это всегда ФЗ.

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

Вполне очевидно, что все новинки так или иначе работают с выражениями в ФЗ. Была попытка скрестить ужа с ежом, в виде функций в командной записи FileExist/ProcessExist в условиях, но она, что очевидно, провалилась. Но это не отменяет возможности по прежнему записывать команды в КЗ внутри блоков условий, циклов и пользовательских функций:

Code:

If a = 0 then   -- ФЗ (выражение a = 0)
  MsgBox %a%    -- КЗ (команда)
  MsgBox(a)     -- ФЗ (команда)
  b = a + 1     -- ФЗ (присваивание)
endif

MyFunc 123 456   -- КЗ (функция)
MyFunc(123, 456) -- ФЗ (функция)

Func MyFunc(a, b = 1)  -- ФЗ (объявление функции)
  Local c  = 1         -- ФЗ (объявление переменной)   
  MsgBox %a%           -- КЗ (команда)
  MsgBox(a)            -- ФЗ (команда)
EndFunc


Так что переключаться между прагмами не нужно, скрипт в целом будет работать при любой. Прагма будет только переключать два режима работы парсера выражений:

1. Старый - строки могут быть в кавычках (любых из двух типов), либо без кавычек, переменные только в %%. В случае отсутствия переменной возвращается само имя переменной (можно и пустую строку возвращать, но это "потеря совместимости"). Ошибок не выдавалось. Есть неопределенности при работе со строками.
2. Новый - строки в кавычках (любых из двух типов), переменные в выражениях могут быть либо в %%, либо без них (предпочтительнее без, чтобы было лучше видно отличие от КЗ, где %% обязательны). При отсутствии переменной выдается ошибка. Неопределенностей нет.

Вот пример с особенностями (возможно что-то упустил):
Code:

1: Старый
a = zxc                     -- ок
с = %a%                     -- ок, присвоит значение a
с = a                       -- ок, присвоит строку "a"
a = "zxc asd"               -- ок
a = zxc asd                 -- некорректная запись, вернет  "zxcasd" без пробела
b = StrLen(qwerty)          -- ок
b = StrLen("qwerty")        -- ок
b = StrLen(%a%)             -- ок
b = StrLen(a)               -- ок, вернет "1", длину строки "a"
b = StrLen("qwerty asdf")   -- кавычки все равно обязательны, т.к. пробел
b = StrLen("qw(er)ty,asdf") -- кавычки все равно обязательны, т.к. в строке есть разделители ",()"
b = StrLen(%a% & qwerty)    -- ок

2: Новый
a = "zxc"                -- ок
с = %a%                  -- ок, присвоит значение a
с = a                    -- ок, присвоит значение a
b = StrLen("qwerty")     -- ок
b = StrLen(%a%)          -- ок
b = StrLen(a)            -- ок
b = StrLen(a & "qwerty") -- ок
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Jun 06, 2020 19:10    Post subject: Reply with quote

Loopback
Спасибо за подробности, стало куда более понятно.

Loopback wrote:
в командной записи FileExist/ProcessExist в условиях, но она, что очевидно, провалилась. ... (возможно что-то упустил)
Вот это упустил. Как с этим будет в каждом режиме?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1274

Post (Separately) Posted: Sat Jun 06, 2020 21:23    Post subject: Reply with quote

Flasher wrote:
Вот это упустил. Как с этим будет в каждом режиме?

Так же, как с любыми другими командами. Но в условиях запись только в ФЗ, "if FileExist name then" убрана, я об этом писал еще в посте с самой первой бетой.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Jun 06, 2020 21:35    Post subject: Reply with quote

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



Joined: 07 Sep 2009
Posts: 1274

Post (Separately) Posted: Sat Jun 06, 2020 21:59    Post subject: Reply with quote

Flasher wrote:
В формате или режиме?

Вроде как ФЗ везде используется в контексте формата записи. Причем тут какой-то режим?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Jun 06, 2020 22:02    Post subject: Reply with quote

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



Joined: 07 Sep 2009
Posts: 1274

Post (Separately) Posted: Sat Jun 06, 2020 22:32    Post subject: Reply with quote

Flasher wrote:
Так мы говорим не про то, как сейчас (КЗ+ФЗ), а как будет (КЗ/ФЗ) с прагмами

А как будет? Будет точно так же, КЗ+ФЗ. Командный синтаксис никуда не денется. Прагма влияет исключительно на интерпретацию ФЗ.

Я уже вообще перестал понимать, то тут еще непонятно.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Jun 06, 2020 23:18    Post subject: Reply with quote

Loopback wrote:
Будет точно так же, КЗ+ФЗ.
Т. е. как и сейчас, с любой из прагм?
Code:
If Not ProcessExist('~/F', '...') Then
Так?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1274

Post (Separately) Posted: Sat Jun 06, 2020 23:41    Post subject: Reply with quote

Flasher
Всё верно.
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 ... 114, 115, 116 ... 130, 131, 132  Next
Page 115 of 132

 
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