не отвечающая программа, не завершается изящно при запросе на завершение, для тестирования - PullRequest
0 голосов
/ 02 декабря 2010

Я хочу написать простую программу, которая ничего не делает, но не легко завершается при запросе.Я хочу увидеть диалоговое окно Windows, которое говорит: «Эта программа не отвечает, вы хотите подождать, пока она завершит свою работу или завершит ее сейчас?».После того, как пользователь выберет «прекратить его сейчас», он, конечно, должен выйти.

Причина, по которой я хочу, это для среды тестирования.Я хочу протестировать сценарий, в котором пользователь пытается выйти из системы, но система не выходит из него сразу же из-за не отвечающей программы.

Я попытался ответить на WM_DESTROY, вызвав Sleep (), но это, похоже, не делает этого.Программа по-прежнему немедленно завершает свою работу при удалении из диспетчера задач.Опять же, я не пытаюсь написать что-то действительно «неубиваемое», просто простую программу, которая заставляет это диалоговое окно спрашивать, хочет ли пользователь ждать завершения программы.

Большое спасибо за любыепомощь.

1 Ответ

0 голосов
/ 02 декабря 2010

Вы можете попробовать изменить цикл основного сообщения.Используйте PeekMessage (...) с NO_REMOVE и игнорируйте сообщения WM_QUIT

РЕДАКТИРОВАТЬ: удалить каждое сообщение (кроме WM_QUIT) перед обработкой (GetMessage( &msg ,msg.hWnd ,msg.message ,msg.message ))

...