Alt+F4 – универсальная комбинация для закрытия любых программ. Полазили по сети? Alt+F4 – браузер закрыт. Поработали в Photoshop? Alt+F4!
Фактически, при желании с Alt+F4 вы можете выйти из windows вплоть до команды выключения.
Но иногда не все так просто. Программа может зависнуть, и отказаться закрываться даже по команде Alt+F4. В этом случае следующий шаг – Ctrl+Alt+Del, правильно? Но что если и это не срабатывает или если Диспетчер задач остается скрыт повисшим окном программы? Выход есть, и не один.
Как определить, что программа зависла?
Обычно программа перестаёт отвечать на действия пользователя, а курсор превращается в песочные часики. В этом случае в заголовке программы в скобках может быть написано «(Не отвечает)». Все попытки закрыть программу на «крестик» ничего не дают, либо крестик нажать не удаётся. Также надо понимать, что ресурсоёмкие операции требуют времени выполнения.
Т.е., если вы чем-то тяжёлым «загрузили» весь компьютер, то программы могут вести себя как зависшие, особенно если комп слабый и старый. В этом случае нужно просто подождать, но не больше 5-10 минут.
Как закрыть программу если она зависла, или перестала работать Windows 10
Подождите, пока Windows завершит работу неотвечающего приложения
Когда приложение перестает отвечать в Windows 10, подождите несколько секунд. Если приложение действительно не отвечает, Windows автоматически отвечает, давая приложению возможность восстановиться. Вы заметите, что в заголовке окна приложения появляется неотвечающий тег, который указывает на то, что Windows начинает обратный отсчет для завершения работы приложения.
У Windows нет установленного времени для этого, но обычно она пытается решить проблему с запущенным приложением в течение нескольких секунд. Это может означать автоматическое закрытие приложения (в случае полного сбоя приложения) или, если на ответ требуется больше времени или есть шанс, что приложение может восстановиться, Windows позволит вам решить, что делать дальше.
Это включает в себя возможность принудительно закрыть и перезапустить приложение, закрыть его и оставить закрытым или дать приложению больше времени для восстановления. Вы можете решить сделать последнее, если приложение использует много системной памяти и вы уверены, что через несколько секунд оно восстановится.
После того, как вы сделали свой выбор, Windows должна довести его до конца. Однако, если вы решили принудительно закрыть приложение в Windows, но оно по-прежнему не отвечает, вам необходимо принять более решительные меры (например, перечисленные ниже).
Что не нужно делать, если программа зависла
Многие пользователи при этом делают массу не нужных действий, теряя своё время.
Во-первых, не стоит сразу тянуться к кнопке «Reset» или выключать компьютер. Хотя, это самый радикальный способ закрыть программу (и все остальные программы :)). Но вы что, каждый раз будете перезагружать компьютер? За этим занятием можно провести весь день и ничего не успеть! К тому же, несохранённые данные в других программах можно потерять.
Во-вторых, не нужно пытаться запустить зависшую программу ещё раз. Помочь делу это никак не сможет, а вот усугубить проблему ещё как!
И в-третьих, не стоит запускать другие программы. Этим вы только затормозите систему ещё больше.
Как закрыть программу, если она «висит»
Раз уж «крестиком» программу закрыть не удаётся, можно попробовать нажать «ALT + F4». Эта комбинация клавиш закрывает активную программу. Или нажать на значок программы в левом верхнем углу и выбрать «Закрыть»
Ещё безобидный способ как можно закрыть зависшую программу, это нажать правой кнопкой по программе в панели задач и выбрать там «Закрыть программу».
Если это не помогает, переходим к самому ходовому способу – запускаем «Диспетчер задач» клавишами «Ctrl + Shift + Esc» или через «Ctrl + Alt + Del» и выбираем «Запустить Диспетчер задач» (если у вас возникли проблемы на этом шаге, то почитайте как включить диспетчер задач).
- В диспетчере задач на вкладке «Приложения» находим нашу программу и нажимаем по ней правой кнопкой мышки
- В контекстном меню выбираем «Снять задачу» (или вместо меню нажимаем одноимённую кнопку). Если программа не закрылась сразу, то немного подождите, должно появиться окно подтверждения завершения приложения
- Если и после подтверждения программа всё ещё «висит», тогда ещё раз нажимаем по ней правой кнопкой, но на этот раз выбираем «Перейти к процессу». Каждая запущенная программа имеет один или несколько процессов в памяти компьютера. Если закрыть соответствующий процесс, то и программа закроется.
- После перехода на вкладку «Процессы» курсор уже должен стоять на процессе зависшей программы. Смело нажимаем по нему правой кнопкой и выбираем «Завершить процесс» или, чтобы наверняка, «Завершить дерево процессов». Программа должна почти сразу закрыться.
Рекомендации пользователей
Читателю уже, должно быть, понятно, как принудительно закрыть программу на Windows. Все перечисленные способы помогают без особого труда воплотить задумку в жизнь. Какие советы помогут избежать зависания приложения в следующий раз?
Среди них чаще всего встречаются следующие рекомендации:
- Убедиться в том, что зависла именно программа, а не компьютер. Список действий в том или ином случае будет отличаться. Чаще всего при зависании компьютера помогает экстренная перезагрузка или выключение.
- Проверить компьютер на наличие вирусов. При необходимости пролечить его.
- Переустановить зависающую программу. Иногда такой метод помогает весьма эффективно.
- Не открывать много программ и приложений при работе с проблемным софтом. Чем меньше будет загружен процессор, тем быстрее на нем выполнятся те или иные операции.
- Научиться ждать. Как уже было сказано, иногда процессы просто долго обрабатываются. И поэтому начинает казаться, что компьютерная программа зависла.
- Перепробовать все перечисленные методы. Перезагрузку и выключение компьютера рекомендуется отложить на крайний случай.
Вот и все. На самом деле нет ничего сложного в завершении зависшей программы. Все перечисленные методы успешно используются пользователями ПК в той или иной степени.
- Как запустить от имени администратора любую программу: все способы
Похожие статьи
Alt+F4 – универсальная комбинация для закрытия любых программ. Полазили по сети? Alt+F4 – браузер закрыт. Поработали в Photoshop? Alt+F4!
Фактически, при желании с Alt+F4 вы можете выйти из windows вплоть до команды выключения.
Но иногда не все так просто. Программа может зависнуть, и отказаться закрываться даже по команде Alt+F4. В этом случае следующий шаг – Ctrl+Alt+Del, правильно? Но что если и это не срабатывает или если Диспетчер задач остается скрыт повисшим окном программы? Выход есть, и не один.
Что делать, если программы нет на вкладке «Приложения»
Может быть и такое, что вызвав диспетчер задач, нашей программы нет в списке запущенных программ. Тогда прийдётся перейти на вкладку «Процессы» и найти самостоятельно нужный процесс. Для этого можно кликнуть на заголовке столбца «ЦП» (загрузка процессора), тем самым отсортировав все процессы по степени загрузки процессора, и посмотреть процесс, который больше всего грузит процессор, и завершить его.
Но не всегда зависшая программа будет грузить процессор, тогда нужно отсортировать процессы по имени и поискать похожий на название программы. Более точно определить искомый процесс можно узнав имя запускаемого файла нашей программы. Для этого нажимаем правой кнопкой по ярлыку программы (будь-то на рабочем столе или в меню «Пуск») и выбираем «Свойства».
В строчке «Объект» смотрим имя запускаемого файла, которое заканчивается на «.exe». Это и будет имя процесса, который нужно найти в диспетчере задач и завершить.
Используем компьютерную мышь
Этот способ работает только в том случае, если программа была открыта не на весь экран и мышка реагирует на движение. Следует выполнить такие действия:
- В правом верхнем углу окна кликнуть на красный крестик;
- Вызвать контекстное меню, кликнув на панели задач по ярлыку программы. Из выпавшего списка кликнуть на «Закрыть» или «Выход».
Если мышкой невозможно произвести подобные действия, следует воспользоваться набором горячих клавиш.
Как закрыть программу другим способом?
Ещё можно закрыть программу с помощью сторонних программ, например Process Explorer от компании Sysinternals. Это лёгкая и бесплатная программка не требующая устновки. Просто скачайте и запустите «procexp.exe» из архива.
В окне программы найдите процесс зависшей программы и по правой клавише мыши выберите «Kill Process» или «Kill Process Tree», или просто кнопками «Del» и «Shift + Del» соответственно. Также существует и другая альтернатива диспетчеру задач.
Автоматическое «закрытие» приложений, которые не отвечают
Первый метод заключается во внесении изменений в настройки системы, благодаря чему Windows автоматически закрывает приложения, которые находятся в статусе «Не отвечает», то есть те что зависли.
Чтобы активировать эту функцию, перейдите в Редактор реестра. Для этого нажмите сочетание клавиш Windows + R, введите в окно Выполнить команду regedit и подтвердите её запуск на Enter. В окне редактора перейдите по следующему пути:
Затем щелкните правой кнопкой мыши на записи Desktop и выберите «Создать — Строковый параметр».
Созданный параметр именуем как AutoEndTasks, затем щелкните на него дважды и присвойте ему значение «1», чтобы активировать. После этого следует перезапустить систему и готово – теперь все приложения запущенные под учетной записью пользователя Windows будут автоматически закрываться в момент, когда зависнут.
Есть ещё способ?
Для самых продвинутых есть ещё способ как закрыть зависшую программу из командной строки. Для этого вызываем окно «Выполнить» либо через меню «Пуск -> Выполнить», либо горячими клавишами «Win + R» и пишем там «cmd». В открывшемся чёрном окне пишем:
«taskkill /f /im имя_процесса.exe /t»
где «имя_процесса.exe» — это имя процесса зависшей программы, например «explorer.exe»
При успешном выполнении будет написано соответствующее сообщение.
В качестве некоего экзотического способа есть программа Kerish Doctor 2021, у неё есть уникальная функция Kerish Deblocker, обязательно прочитайте мою статью.
С помощью сторонних утилит
Диспетчер задач – это встроенный механизм по контролю работы всех приложений и процессов в системе. Он не всегда справляется с возникшей проблемой, поэтому хорошо иметь на компьютере его замену в виде установленных утилит. Самые действенные и качественные из них:
Process Explorer
- Открыть программу;
- в верхней части экрана выбрать необходимый процесс.
- нажать клавишу Delete.
SuperF4
Утилита создает новую команду для горячей комбинации Ctrl + Alt + F4, которая будет закрывать окна мгновенно.
ProcessKO
Фоновая программа, также работающая с горячими клавишами.
После установки утилита будет работать вместе с системой. При включении компьютера ее необходимо будет запускать вручную.
Чтобы программа запомнила горячие клавиши необходимо открыть меню и кликнуть на закладку «Kill Hotkey» и выбрать первый вариант.
После этого комбинация Ctrl + Alt + F4 будет сразу же закрывать программу.
Все перечисленные способы позволяют закрыть зависшую программу без ущерба для системы и компьютера. После принудительного завершения их можно сразу же открывать заново.
Наша статья посвящена ситуациям, когда компьютерные игры для РС или смартфонов зависают. Наверняка каждый из наших читателей сталкивался с подобной неприятной ситуацией и далеко не всегда удавалось закрыть зависшую игру без перезагрузки. Давайте же рассмотрим способы решения таких проблем!
Почему программы зависают?
Вместо того чтобы заниматься вопросом как закрыть программы, лучше чтобы они не зависали. Вот основные причины, почему программы зависают:
- Ошибка в коде программы. Банальные ошибки программистов, недочёты, конфликты с другими программами. Попробуйте обновиться на сайте производителя ПО
- Захламленная операционная система. Нередко программы начинают глючить и зависать на неухоженной операционной системе. В этом случае надо либо переустановить, либо оптимизировать операционную систему
- Конфликт оборудования или драйверов. При наличии конфликтов между оборудованием, драйверами или программами между собой могут быть зависания не только программ, но и всей системы
- Не подходящая версия Windows. Если программа не предназначена для, например, Windows 7, а вы её там запускаете, то могут быть глюки и конфликты. В этом случае попробуйте обновиться или в свойствах ярлыка программы или запускаемого файла на вкладке «Совместимость» выбрать другую операционную систему.
- Ошибки на жестком диске. При ошибках файловой системы или при наличии сбойных секторов могут быть временные или постоянные подвисания. Проверьте свой жесткий диск на ошибки.
- Недостаточно оперативной памяти. Это видно в диспетчере задач, если вся память постоянно занята. Можно попробовать увеличить размер файла подкачки, но лучше добавить оперативной памяти или перейти на другую версию Windows и/или программы.
- Взломанные программы. В случае использования «крякнутых» программ также могут быть проблемы. Совет: либо используйте лицензионную версию, либо крякнутую, но из другого источника
Источник: kotelsibir.ru
Не удается закрыть программу GUI
В моем проекте у меня есть диалоговое окно с двумя кнопками. Если кто-то нажмет «Да», я хочу, чтобы программа закрылась. Но я не могу заставить его работать. Я пробовал все это.
qApp->exit();
qApp->quit();
QApplication::exit();
QApplication::quit();
QCoreApplication::exit();
QCoreApplication::quit();
И ни одна из них не закрывает программу. Я попытался переместить их в main.cpp, я попытался сделать вторую функцию только для закрытия, и ничего не работает. Будет ли это иметь какое-либо отношение к моему циклу событий ранее, который проверяет наличие обновлений? Если так, я опубликую его. РЕДАКТИРОВАТЬ: Вот моя main.cpp и функция, в которой я хочу закрыть мою программу:
#include «mainwindow.h»
#include
int main(int argc, char *argv[])
Q_INIT_RESOURCE(icons);
QApplication a(argc, argv);
MainWindow w;
w.show();
w.checkVersion();
return a.exec();
>
void MainWindow::checkVersion()
if((version != «1.0.0») (version != «»))//version is a string that is filled when the mainwindow first opens.
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, «Update», «Version » + version + » is now available. Would you like to update now?nnOr visit http://www.youtube.com/oPryzeLP to download manually.», QMessageBox::Yes | QMessageBox::No);
if(reply == QMessageBox::Yes)
>
QApplication::exit();//moved out of reply just to test closing
>
>
Это функция, которая содержит цикл событий:
void MainWindow::downloadFile(const QString aPathInClient)
QNetworkAccessManager* m_NetworkMngr = new QNetworkAccessManager(this);
QNetworkReply *reply = m_NetworkMngr->get(QNetworkRequest(QUrl(url)));
QEventLoop loop;
connect(reply, SIGNAL(finished()),
loop.exec();
QUrl aUrl(url);
QFileInfo fileInfo=aUrl.path();
QFile file(aPathInClient+»\»+fileInfo.fileName());
file.open(QIODevice::WriteOnly);
file.write(reply->readAll());
delete reply;
loop.quit();
>
Это функция, которая вызывает downloadFile():
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
ui->setupUi(this);
downloadFile(«link», «stuff»);
QFile info(«stuff\info.txt»);
if(info.open(QIODevice::ReadOnly))
QTextStream in(
while(!in.atEnd())
version = in.readLine();
versionLink = in.readLine();
vidLink = in.readLine();
>
>
info.close();
setCentralWidget(ui->tabWidget);
ui->creativeFlag->setEnabled(false);
ui->structures->setEnabled(false);
ui->raining->setEnabled(false);
ui->thundering->setEnabled(false);
ui->hardcore->setEnabled(false);
AddSlotsToGroup();
AddBlocksToGroup();
QPalette palette = ui->blockFrame->palette();
palette.setColor( backgroundRole(), QColor( 139, 139, 139 ) );
ui->blockFrame->setPalette( palette );
ui->blockFrame->setAutoFillBackground( true );
QPixmap map_bg(«:/images/mapbg.png»);
ui->mapBgLabel->setPixmap(map_bg.scaled(224, 224, Qt::IgnoreAspectRatio, Qt::FastTransformation));
QShortcut *returnShortcut = new QShortcut(QKeySequence(«Return»), ui->tab_4);
QObject::connect(returnShortcut, SIGNAL(activated()), ui->blockFind, SLOT(click()));
>
спросил(а) 2013-10-31T23:32:00+04:00 9 лет, 7 месяцев назад
добавить комментарий
пожаловаться
Вы пытаетесь выйти из QEventLoop, пока он еще не запущен. Используйте std :: exit(), чтобы остановить вашу программу в этом случае.
ответил(а) 2013-11-01T10:42:00+04:00 9 лет, 7 месяцев назад
добавить комментарий
пожаловаться
Функции выхода из списка выходят из цикла событий Qt. В MainWindow::checkVersion() вы вызываете exit до того, как цикл события был запущен. Даже если у вас уже был цикл, вы можете запустить его снова (что делает ваш код). Решение: сделайте так, чтобы MainWindow::checkVersion() возвращал код результата или просто bool , а затем запускал цикл событий Qt, только если он в порядке. Код (не забудьте изменить прототипы для соответствия):
bool MainWindow::checkVersion()
//version is a string that is filled IN MAINWINDOW CONSTRUCTOR, IT SEEMS
if((version != «1.0.0») (version != «»))
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, «Update», «Version » + version + » is now available. Would you like to update now?nnOr visit http://www.youtube.com/oPryzeLP to download manually.», QMessageBox::Yes | QMessageBox::No);
// return true if current version is ok
return !(reply == QMessageBox::Yes);
>
else // version is either 1.0.0 or empty
return true;
>
И тогда функция main() будет соответствовать:
int main(int argc, char *argv[])
Q_INIT_RESOURCE(icons);
QApplication a(argc, argv);
MainWindow w;
w.show();
if (w.checkVersion()) // version is ok, start the main event loop
return a.exec();
> else // user wants to upgrade, do something, or just exit?
return 0; // or whatever exit code you want
>
>
Обратите внимание, что ваш код вопроса, кажется, имеет 3 цикла событий (с уверенностью с частичным кодом), один за другим. Локальный цикл событий в конструкторе MainWindow , который выполняется во время loop.exec() , и возвращается, когда QNAM отправляет ему сигнал для выхода.
Цикл событий начинается с метода QMessageBox::question() , который показывает диалоговое окно и выходит и возвращается с результатом, когда диалог закрыт (я не уверен, что MainWindow нарисован на экране этим циклом события или нет, поскольку вы show его до этого). Цикл основных событий приложения, который вы вводите с помощью a.exec() , а затем возвращаете возвращаемое значение в качестве кода выхода программы при его выходе (обычно это автоматически срабатывает при закрытии последнего окна).
Обратите внимание, что w.show() просто устанавливает флаг, что w должен быть видимым и отправляет какое-либо событие. Он еще ничего не рисует, и никакие события Qt не доставлены нигде, пока цикл событий не поставляет их (duh). Что-то происходит только, когда вы запускаете цикл событий для доставки событий.
Другое примечание: MainWindow consturctor — совершенно неправильное место, чтобы сделать что-то подобное. В идеале конструктор QWidget должен просто настроить виджет, ничего другого (без взаимодействия с пользователем, без доступа к сети). Типичный шаблон состоит в том, чтобы просто настроить видимый материал там, затем иметь дополнительный метод инициализации, который вы запускаете, когда окно действительно видимо (например, с таймером с одним выстрелом или с помощью overriden showEvent() ). Я подозреваю, что это то, что вы на самом деле хотите использовать для своего кода.
Источник: progi.pro
Не удается закрыть программу
Иногда та или иная программа зависает, т.е. перестает отвечать на Ваши действия мышкой и на нажатия клавиш. Бывает, что ее даже не удается закрыть крестиком в правом верхнем углу окна.
Если такое случилось во время Вашей работы, то можно попытаться закрыть зависшую программу не перезагружая компьютер.
Для этого вызовите «Диспетчер задач» — специальное средство для управления запущенными программами. Чтобы его вызвать, нужно на «Панели задач» (это полоска, на которой находится кнопка «Пуск») кликнуть правой кнопкой мыши и выбрать пункт «Диспетчер задач». Обратите внимание, что правой кнопкой нужно кликать НА СВОБОДНОМ МЕСТЕ «Панели задач», т.е. на области, свободной от кнопок, иконок и индикаторов.
Также Вы можете нажать комбинацию клавиш Shift+Ctrl+Esc, тогда тоже откроется «Диспетчер задач».
Теперь в «Диспетчере задач» откройте вкладку «Приложения» (вообще, она открывается по умолчанию) и в ней будет список всех запущенных в данный момент программ, включая ту, которая зависла.
Выделите в списке эту программу и нажмите на кнопку «Снять задачу»:
Если системе удастся завершить работу зависшей программы, она исчезнет из списка запущенных программ и с «Панели задач».
Иногда системе не удается это сделать сразу (после нажатия кнопки «Снять задачу» ничего не меняется), тогда нужно подождать 1-2 минуты, возможно, за это время зависшая программа закроется.
Все права защищены.
Использование материалов сайта без разрешения автора запрещено и преследуется по закону.
Источник: antichajnik.com