Page 1 of 1

Изменение настроек Far макросом

Posted: Sun 22 Mar, 2015 12:36
by CDK
Скажите, пожалуйста, как правильнее всего изменять настройки самого фара из макросов?

Нужно это для макроса, который при запуске проверяет запущен фар под админом или нет и в зависимости от этого изменяет "System settings"


Сейчас у меня это выглядит так:


Оно работает, но мне не очень нравится Keys(...) и SendDlgMessage с указанием номера чекбокса. Да и мерцает диалогом оно иногда при запуске.

PS: Far 3.0 (build 4305)

Изменение настроек Far макросом

Posted: Sun 22 Mar, 2015 16:14
by Shmuel
CDK wrote: Скажите, пожалуйста, как правильнее всего изменять настройки самого фара из макросов?
API такого нет, чтобы произвольные настройки менять.
Вот вариант вашего макроса, который не будет "мерцать диалогом":

Изменение настроек Far макросом

Posted: Sun 22 Mar, 2015 16:30
by zg
Shmuel wrote:

Code: Select all

if state ~= Hdlg:send("DM_GETCHECK",pos) then Keys("Space") end
есть же gray+/gray-.

Изменение настроек Far макросом

Posted: Sun 22 Mar, 2015 16:40
by Shmuel
Спасибо, не знал.

Изменение настроек Far макросом

Posted: Sun 22 Mar, 2015 18:51
by CDK
Shmuel wrote: API такого нет, чтобы произвольные настройки менять.
т.е. ничего аналогичного ECTL_SETPARAM нет?
Shmuel wrote: Вот вариант вашего макроса, который не будет "мерцать диалогом":
А за счет чего убирается мерцание? Т.е. что именно в моем варианте его вызывает? (что неправильно у меня?)

Изменение настроек Far макросом

Posted: Sun 22 Mar, 2015 19:49
by Shmuel
CDK wrote: ничего аналогичного ECTL_SETPARAM нет?
Вроде бы нет.
CDK wrote: А за счет чего убирается мерцание? Т.е. что именно в моем варианте его вызывает? (что неправильно у меня?)
DM_SETCHECK его вызывает. Не потому, что это неправильно у вас, а потому, что это так устроено в Фаре/LuaMacro (видимо, не идеально).

Изменение настроек Far макросом

Posted: Mon 23 Mar, 2015 18:20
by CDK
Shmuel, спасибо. Теперь это выглядит так:


Но я тут открыл для себя far:config и соответственно возник вопрос - к нему тоже нет доступа из макросов для обращения напрямую к свойствам типа System.ElevationMode?

Изменение настроек Far макросом

Posted: Mon 23 Mar, 2015 18:38
by Shmuel
Доступ только для чтения. Используйте Far.GetConfig (предпочтительно) или Far.Cfg_Get.

Изменение настроек Far макросом

Posted: Mon 23 Mar, 2015 18:40
by DrKnS
Можно засунуть в батник Far.exe /set:system.elevationmode=<mode>

Изменение настроек Far макросом

Posted: Sun 16 Apr, 2017 07:50
by CDK
Опять пришлось городить страшное "Down Down Down...". В связи с этим возник вопрос: а сделать SetConfig, хотя бы для части тех параметров, изменение которых доступно из интерфейса не хотите по соображениям безопасности - это будет наружу доступно не только макросам?

Изменение настроек Far макросом

Posted: Sun 16 Apr, 2017 08:03
by Shmuel
SetConfig - на мой взгляд - никакой безопасности не повредит, т.к. у макроса и так есть тыща способов эту безопасность сломать.
Посмотрите на мантисе: если ещё нет такого виша - поместите.
А вместо Down Down Down уже давно можно 3*Down.

Изменение настроек Far макросом

Posted: Sun 16 Apr, 2017 08:40
by CDK
Shmuel wrote: уже давно можно 3*Down
Оу! Читерство :) Спасибо.

А нет ли возможности вызывать стандартные диалоги (в данном случае настройки) по GUID? Плагины вижу как вызывать, а диалоги что-то не нахожу.
PS: кажется этот вопрос уже всплывал.

Изменение настроек Far макросом

Posted: Sun 16 Apr, 2017 09:50
by Shmuel
CDK wrote: А нет ли возможности вызывать стандартные диалоги (в данном случае настройки) по GUID?
Нет такой возможности.