Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 19.12.2011, 21:14   #1
Новичок
 
Регистрация: 19.12.2011
Сообщений: 3
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Dmiii пока неопределено
Вопрос Обработка ошибок WinAPI в C#

Пишу программу на C#, нужно работать с окнами посторонних процессов (тот же Айон). Работаю через unmanaged вызовы функций WinAPI, по хендлам. Все ок, но бывает что игра вылетает, и при обращении по устаревшему хендлу вылетает и прога. Установка собственного UnhandledExceptionEventHandler, игнорящего исключения, не помогает. Как корректно решать такую проблему?

Код:
// replacing default exception handler
            AppDomain currentDomain = AppDomain.CurrentDomain;
            currentDomain.UnhandledException += new UnhandledExceptionEventHandler(LastChanceHandler);
Dmiii вне форума   Ответить с цитированием
Старый 19.12.2011, 23:37   #2
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

насколько часто происходит обращение к этому окну по хендлу? если не слишком часто, попробуй перед стартом использования - получить список хендлов всех окон, и сравнить со старым хендлом.
типа если в списке новых хендлов старый присутствует, то выполняем дальше
если не присутствует, то алерт юзеру, дескать окно закрылось, надо запустить по новой.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 20.12.2011, 19:58   #3
Новичок
 
Регистрация: 19.12.2011
Сообщений: 3
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Dmiii пока неопределено
По умолчанию

Даж если проверять, все равно существует малая вероятность, что окно закрывается в момент проверки. Приложение фоновое, крутится 24/7, поэтому хотелось 100% вариант (вроде try-catch, но для WinAPI).

Вдогонку, существует функция проверки валидности хендла окна?
Dmiii вне форума   Ответить с цитированием
Старый 20.12.2011, 20:56   #4
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

function IsWindow(hWnd: HWND): BOOL; stdcall; external 'user32.dll' name 'IsWindow';
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:38.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!