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

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
CDK
Posts: 288
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 8 times
Been thanked: 2 times
Contact:

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

Post by CDK » Sun 22 Mar, 2015 12:36

Скажите, пожалуйста, как правильнее всего изменять настройки самого фара из макросов?

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


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


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

PS: Far 3.0 (build 4305)

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

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

Post by Shmuel » Sun 22 Mar, 2015 16:14

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

User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

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

Post by zg » Sun 22 Mar, 2015 16:30

Shmuel wrote:

Code: Select all

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

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

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

Post by Shmuel » Sun 22 Mar, 2015 16:40

Спасибо, не знал.

User avatar
CDK
Posts: 288
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 8 times
Been thanked: 2 times
Contact:

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

Post by CDK » Sun 22 Mar, 2015 18:51

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

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

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

Post by Shmuel » Sun 22 Mar, 2015 19:49

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

User avatar
CDK
Posts: 288
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 8 times
Been thanked: 2 times
Contact:

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

Post by CDK » Mon 23 Mar, 2015 18:20

Shmuel, спасибо. Теперь это выглядит так:


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

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

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

Post by Shmuel » Mon 23 Mar, 2015 18:38

Доступ только для чтения. Используйте Far.GetConfig (предпочтительно) или Far.Cfg_Get.

User avatar
DrKnS
Posts: 4648
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

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

Post by DrKnS » Mon 23 Mar, 2015 18:40

Можно засунуть в батник Far.exe /set:system.elevationmode=<mode>

User avatar
CDK
Posts: 288
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 8 times
Been thanked: 2 times
Contact:

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

Post by CDK » Sun 16 Apr, 2017 07:50

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

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

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

Post by Shmuel » Sun 16 Apr, 2017 08:03

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

User avatar
CDK
Posts: 288
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 8 times
Been thanked: 2 times
Contact:

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

Post by CDK » Sun 16 Apr, 2017 08:40

Shmuel wrote: уже давно можно 3*Down
Оу! Читерство :) Спасибо.

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

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

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

Post by Shmuel » Sun 16 Apr, 2017 09:50

CDK wrote: А нет ли возможности вызывать стандартные диалоги (в данном случае настройки) по GUID?
Нет такой возможности.

Post Reply

Return to “Нужна помощь”