Как узнать, что FCTL_GETUSERSCREEN уже вызван?
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
Есть ли способ узнать, что FCTL_GETUSERSCREEN уже вызван? Например, это было сделано другим плагином ранее, и текущий вызван в некотором межплагиновом сценарии.
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
в текущей реализации десктоп будет модальным. это не то чтобы документированная фича, но пока так.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
Не понял ответ. Нельзя узнать? Можно, но недокументированно? Или что-то еще?
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
если FCTL_GETUSERSCREEN уже вызван, то у окна десктопа будет флаг WIF_MODAL, иначе — не будет.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
И само окно десктопа тоже недокументированная фича, оказывается. Энц. не упоминает. Это случайно забыто или умышленно умалчивается?
- HaRT
- Moderator
- Posts: 10823
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
Да ещё и название, напомню, неудачное.
И даже есть отдельная тема с его, названия, обсуждением.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
Ясно... Не критикую, но жалуюсь. Трудно пользоваться юзер скрином, недокументировано, меняется, написанное ломается. А пользоваться-то надо. Есть сценарии где надо писать на консоль, но при этом иметь возможность и UI Фара задействовать между выводом. Давнишний PowerShellFar и недавний FSharpFar - оболочки вокруг скриптовых REPL движков. Вывод на консоль кой-каких данных после команд для них типичен, я это "перехватываю", и вывожу на консоль с юзер скрином. В простых случаях работает. Сложности начинаются, когда скрипты еще что-то пытаются делать с UI или окнами (а иначе их можно было бы и вне Фара запускать, если они Фаром-то и не пользуются).
Подход GET/print/SET на каждый print не годится. 1) Медленно. 2) Лишние переводы строк, уродливый вывод. Приходится придерживать GET с отложенным SET, но тут вызываются другие модули или скрипты, которым тоже надо решать, как быть с консолью, сложность возрастает. Если бы информация о текущем состоянии была предоставлена Фаром (это ведь он делает GET/SET) центализованно и официально, было бы проще.
Подход GET/print/SET на каждый print не годится. 1) Медленно. 2) Лишние переводы строк, уродливый вывод. Приходится придерживать GET с отложенным SET, но тут вызываются другие модули или скрипты, которым тоже надо решать, как быть с консолью, сложность возрастает. Если бы информация о текущем состоянии была предоставлена Фаром (это ведь он делает GET/SET) центализованно и официально, было бы проще.
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
вы так пишите, как будто я вот от нечего делать беру и вношу изменения, которые ломают ваши скрипты. но это не так. был конкретный багрепорт. если у вас есть альтернативное предложение, такое же эффективное, но работающие так, как вам нужно, присылайте патч, обсудим.
я не в курсе, зачем нужен перевод строки, возможно стоит обсудить.
я вам способ привёл.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
Реальное спасибо. Обязательно воспользуюсь. Проблема только в том, что через год(?) это поменяется. Жалко тратить время в который раз на пере-прикручивание. Если был бы АПИ, пусть даже объявленный как тестовый, то было бы потенциально лучше. Какие-то изменения в Фаре можно было бы делать за ширмой этого АПИ без ломки.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
Консоль у Фара - это уникальная и мощная фича. А АПИ для нее для плагинов кот наплакал и документация секретная, ибо "экспериментальная функциональность".
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
если что-то поменяется, то возможности две: поменяется сильно или не сильно. второй вариант по временным затратам вряд ли стоит внимания, а если что-то поменяется сильно, значит текущий вариант не прошёл проверку временем и добавлять сейчас апи — это замораживать потенциально неудачную реализацию. в фаре и так в апи дофига всего, что слабо согласуется между собой.
а насчёт времени. ну мне тоже жалко тратить время на людей, до которых доходит с четвёртого раза. или пишущих такие багрепорты. я ж не привожу это в качестве аргумента.
что значит секретная документация?NightRoman wrote:Консоль у Фара - это уникальная и мощная фича. А АПИ для нее для плагинов кот наплакал и документация секретная, ибо "экспериментальная функциональность".
1. документацию никто не читает. этот форум каждый день доказывает это.
2. исходники открыты, читайте. вон John Doe, как научился собирать фар, реально стал писать меньше фигни.
3. я что-то не вижу конструктивного обсуждения расширения возможностей консоли в фаре с учётом текущих реалий.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Как узнать, что FCTL_GETUSERSCREEN уже вызван?
Конкретно и реально. Для начала добавить флаг IS_USER_SCREEN. Методы установки сброса есть. Метода проверки состояния нет. Заставляет плагины вести тракинг самим. Приемлемо в рамках одного плагина, но и то, зачем? Но при меж-плагинной работе становится сложно без центрального источника.
Сегодня это "если FCTL_GETUSERSCREEN уже вызван, то у окна десктопа будет флаг WIF_MODAL", завтра внутри Фара что-то иное, а плагины проверяют флаг и не ломаются. И не выдумывают тракинг состояния.
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact: