Task List (Ctrl+W) — Список задач

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
2useven10
Posts: 4053
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 188 times

Task List (Ctrl+W)

Post by 2useven10 »

Latest post of the previous page:

DrKnS wrote:
Sat 21 Apr, 2018 22:20
Возможно, помимо STATE_SYSTEM_INVISIBLE стоит также проверять отсутствие STATE_SYSTEM_OFFSCREEN, STATE_SYSTEM_UNAVAILABLE и наличие STATE_SYSTEM_FOCUSABLE.
STATE_... у переключабельных окон и мертвого идентичны.
Единственная зацепка: WS_EX_NOREDIRECTIONBITMAP, т.е. такой код убирает ненужное окно
if (GetWindowLongPtr(Window, GWL_EXSTYLE) & (WS_EX_TOOLWINDOW | WS_EX_NOREDIRECTIONBITMAP)) return false;
MSDN говорит
WS_EX_NOREDIRECTIONBITMAP
The window does not render to a redirection surface. This is for windows that do not have visible content or that use mechanisms other than surfaces to provide their visual.
Так что на мой взгляд вполне можно по этому флагу фильтровать.
Last edited by 2useven10 on Sun 22 Apr, 2018 18:23, edited 1 time in total.

2useven10
Posts: 4053
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 188 times

Task List (Ctrl+W)

Post by 2useven10 »

Хотя нет, не годится.
Пропало окно Settings с настройками десятки, и другие с таким же интерфейсом (Windows Mail).
Last edited by 2useven10 on Sun 22 Apr, 2018 18:31, edited 1 time in total.

2useven10
Posts: 4053
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 188 times

Task List (Ctrl+W)

Post by 2useven10 »

Вот это окно в Spy: Image

2useven10
Posts: 4053
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 188 times

Task List (Ctrl+W)

Post by 2useven10 »

Размер окна - весь экран кроме таскбара.
У меня нет идей как отсеять это окно на основании его параметров (кроме пустого заголовка).
Для себя я вернул фильтрацию по пустому имени - 'нормальное' окно анонимным быть не должно.

User avatar
DrKnS
Posts: 5620
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 302 times

Task List (Ctrl+W)

Post by DrKnS »

2useven10 wrote:
Mon 23 Apr, 2018 09:02
У меня нет идей как отсеять это окно на основании его параметров (кроме пустого заголовка).
https://stackoverflow.com/a/33577647

2useven10
Posts: 4053
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 188 times

Task List (Ctrl+W)

Post by 2useven10 »

DrKnS, попробовал - на первый взгляд работает.

User avatar
HaRT
Moderator
Posts: 9446
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 106 times
Been thanked: 223 times

Task List (Ctrl+W)

Post by HaRT »

DrKnS wrote:
Sat 21 Apr, 2018 20:34
HaRT, а что это у вас за в первой строке? Я в коде такого не вижу.
У меня галкой помечаются приложения, прицепленные к текущей консоли.
Фар есть инструмент, а не нянька. © 2009 DrKnS

2useven10
Posts: 4053
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 188 times

Task List (Ctrl+W)

Post by 2useven10 »

2useven10 wrote:
Mon 23 Apr, 2018 12:21
первый взгляд работает.
Почему-то не работает (не фильтрует проблемное окно) в gcc (7.2) сборке.

User avatar
DrKnS
Posts: 5620
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 302 times

Task List (Ctrl+W)

Post by DrKnS »

2useven10 wrote:
Mon 23 Apr, 2018 17:44
Почему-то не работает (не фильтрует проблемное окно) в gcc (7.2) сборке.
Я gcc дебажить не умею, но отладочная печать вроде бы должна работать везде.

2useven10
Posts: 4053
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 188 times

Task List (Ctrl+W)

Post by 2useven10 »

DrKnS wrote:
Mon 23 Apr, 2018 19:51
печать вроде бы должна работать везде.
Судя по ней у меня IsWindows10OrGreater() неправильно отработала.
Для начала просто попробую 7.3 собрать, а можно вообще не проверять - всё равно ф-я через imports вызывается.
Last edited by 2useven10 on Mon 23 Apr, 2018 21:01, edited 1 time in total.

User avatar
DrKnS
Posts: 5620
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 302 times

Task List (Ctrl+W)

Post by DrKnS »

2useven10 wrote:
Mon 23 Apr, 2018 20:58
IsWindows10OrGreater() неправильно отработала
MSDN про DWMWA_CLOAKED говорит "Windows 7 and earlier: This value is not supported". Так что если проверять, то корректнее, видимо, IsWindows8OrGreater().

User avatar
DrKnS
Posts: 5620
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 302 times

Task List (Ctrl+W)

Post by DrKnS »

HaRT wrote:
Mon 23 Apr, 2018 13:39
У меня галкой помечаются приложения, прицепленные к текущей консоли
Спасибо.

Здесь, кстати, у нас есть забавный баг, который непонятно как чинить: для показа пида и имен по F2 мы используем функцию GetWindowThreadProcessId, которая "Retrieves the identifier of the process that created the window".
Консольное окно, однако, вполне может пережить своего создателя - достаточно там же запустить еще один фар, а старый прибить (или воспользоваться update-плагином).
GetWindowThreadProcessId при этом продолжает возвращать пид почившего процесса.

2useven10
Posts: 4053
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 188 times

Task List (Ctrl+W)

Post by 2useven10 »

DrKnS wrote:
Mon 23 Apr, 2018 21:11
то корректнее, видимо, IsWindows8OrGreater().
Да.
На 7.3, кстати с IsWindows10OrGreater() проблем нет.
Закоммитил b5195.

Yegor
Posts: 1076
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 14 times
Been thanked: 25 times

Task List (Ctrl+W)

Post by Yegor »





Отлично, спасибо!

(но я бы Task List все равно в плагин выкинул)
Last edited by Yegor on Mon 23 Apr, 2018 22:28, edited 2 times in total.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин

User avatar
HaRT
Moderator
Posts: 9446
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 106 times
Been thanked: 223 times

Task List (Ctrl+W)

Post by HaRT »

HaRT wrote:
Mon 23 Apr, 2018 13:39
DrKnS wrote:
Sat 21 Apr, 2018 20:34
HaRT, а что это у вас за в первой строке? Я в коде такого не вижу.
У меня галкой помечаются приложения, прицепленные к текущей консоли.
@DrKnS Не будет ли тут конфликта со свежими изменениями?:
changelog wrote:
drkns 06.12.2019 18:23:09 +0000 - build 5519 […] 2. Cписок задач: пометка текущего окна
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5620
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 302 times

Task List (Ctrl+W) — Список задач

Post by DrKnS »

HaRT, понятия не имею, попробуйте и расскажите :)

Post Reply

Return to “Предложения и идеи”