#c
#c
Вопрос:
Есть ли способ запретить пользователю закрывать командную строку до завершения работы программы? Например, если в выводе командной строки отображается таймер обратного отсчета, я хочу сделать невозможным закрытие командной строки нажатием X до завершения работы программы.
Комментарии:
1. Вы действительно, действительно не хотите этого делать, независимо от того, сколько вы думаете, что делаете. Само окно командной строки — это еще одна программа, которую пользователь сознательно запустил и хочет контролировать. Представьте, если бы я написал флеш-игру, которая каким-то образом не позволяла бы вам закрывать ваш веб-браузер до тех пор, пока вы не выйдете из игры — как бы вы к этому отнеслись? Я бы надеялся , что вы будете проклинать как меня за то, что я это делаю, так и Adobe за то, что она позволила мне это сделать.
2. Даже если бы вы могли это сделать, пользователь всегда может завершить работу программы из диспетчера задач.
3. Было бы лучше просто отобразить окно подтверждения с вопросом, действительно ли пользователь хочет закрыть приложение — это, как правило, предотвращало бы случайное завершение программы пользователями, не снимая при этом управление с пользователя.
4. @user505255 IIRC это не работает таким образом для консольных приложений. И приложения Windows будут «возвращаться» на консоль при запуске оттуда, все еще работая.
5. Возможно, вы правы, я никогда не писал консольных приложений для Windows.
Ответ №1:
Вы можете захватить мышь, чтобы пользователь не мог ее переместить или щелкнуть. Но тогда они могли бы использовать сочетания клавиш, чтобы сделать то же самое, поэтому вам также нужно заблокировать клавиатуру.
Иногда вы хотите сделать подобные вещи, когда выполняете автоматизацию, скажем, при выполнении единого входа в приложении, которому требуется ввод с клавиатуры raw и фокусировка на фоновом режиме. Вы не можете позволить пользователю изменять фокус или вводить что-либо одновременно. Но вы делаете это в качестве последнего средства.