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:Source of the post Скажите, пожалуйста, как правильнее всего изменять настройки самого фара из макросов?

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:Source of the post API такого нет, чтобы произвольные настройки менять.

т.е. ничего аналогичного ECTL_SETPARAM нет?

Shmuel wrote:Source of the post Вот вариант вашего макроса, который не будет "мерцать диалогом":

А за счет чего убирается мерцание? Т.е. что именно в моем варианте его вызывает? (что неправильно у меня?)

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

Posted: Sun 22 Mar, 2015 19:49
by Shmuel
CDK wrote:Source of the post ничего аналогичного ECTL_SETPARAM нет?
Вроде бы нет.
CDK wrote:Source of the post А за счет чего убирается мерцание? Т.е. что именно в моем варианте его вызывает? (что неправильно у меня?)
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:Source of the post уже давно можно 3*Down

Оу! Читерство :) Спасибо.

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

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

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