Как я могу быть уведомлен, когда новое окно создается на Win32?

Вы можете использовать функцию array_split для numpy, например, np.array_split(np.array(data), 20), чтобы разбить на 20 почти одинаковых по размеру кусков.

Чтобы убедиться, что куски в точности равны по размеру, используйте np.split.

10
задан volody 19 February 2013 в 05:28
поделиться

4 ответа

Используйте SetWindowsHookEx , чтобы настроить перехватчик WH_SHELL и найдите ] Событие HSHELL_WINDOWCREATED .

12
ответ дан 3 December 2019 в 23:14
поделиться

Конечно - вы можете написать перехватчик CBT и следить за HCBT_CREATEWND . См. Также SetWindowsHookEx () .


Обратите внимание, что это позволит вам получать уведомления о создании всех окон до того, как создаваемые окна будут даже полностью инициализированы. Если все, что вам нужно, это окна верхнего уровня без владельца, предложение RichieHindle может сработать лучше ...

2
ответ дан 3 December 2019 в 23:14
поделиться

Объезд позволит вам присоединять хуки к произвольным функциям Win32. Однако опрос, вероятно, является более надежным способом решения проблемы: вам не нужно беспокоиться о том, пропустили ли вы конкретный метод создания окна (сколько их в Win32? Готов поспорить, более одного!), И , конечно, вы не будете переписывать машинный код для функций Windows во время выполнения .

Но, знаете, ваш звонок.

0
ответ дан 3 December 2019 в 23:14
поделиться

Вы можете попробовать библиотеку WinEventHook для autohotkey. Попробуйте изменить блокировщик всплывающих окон блокнота пример следующим образом:

HookProc (hWinEventHook, Event, hWnd, idObject, idChild, dwEventThread, dwmsEventTime) { если событие; СОБЫТИЕ_SYSTEM_FOREGROUND = 0x3 {
WinGetTitle, title, ahk_id% hWnd% Если (title = "your_window_name" msgbox, ваше окно создано } }

0
ответ дан 3 December 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: