не повреждает использовать оба AppDomain. CurrentDomain. Приложение UnhandledException. ThreadException
, но имеет в виду, что исключения на вторичных потоках не пойманы этими обработчиками; используйте SafeThread для вторичных потоков в случае необходимости
here is a technique to spy on window handles. You can inspect all the handles which are open and wait for the move messages.
EDIT
Чтобы получать уведомления для всех окон, а не только для Windows Forms, вам необходимо использовать ловушку, установленную функцией API SetWindowsHookEx (). Вам понадобится ловушка WH_CALLWNDPROC
, чтобы вы могли видеть сообщение WM_MOVE, которое Windows отправляет окну.
К сожалению, это глобальная ловушка. Код, реализующий обратный вызов ловушки, должен быть упакован в DLL, чтобы его можно было внедрить во все целевые процессы. Это пробивает ваши планы по использованию C # для этого, вы не можете внедрить CLR. DLL должна быть написана в неуправляемом коде.
Этот проект кода предлагает подход, включая неуправляемую внедряемую DLL, которая вам понадобится.