Форум программистов, компьютерный форум CyberForum.ru

Закрытие программ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Wanee
52 / 52 / 13
Регистрация: 02.02.2011
Сообщений: 428
08.07.2012, 14:18     Закрытие программ #1
Как написать консольную программку, которая бы закрывала все запущенные программы?
Допустим открыть у меня Word, блаузер какой нибудь. Я запустил свою программку, и она все закрыла Word и блаузер. Как это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2012, 14:18     Закрытие программ
Посмотрите здесь:

C++ Открытие и Закрытие дисковода.
C++ закрытие программы
Закрытие потока C++
закрытие консоли C++
закрытие консоли C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
08.07.2012, 15:05     Закрытие программ #2
Это делать надо на WinApi.
Catstail
Модератор
 Аватар для Catstail
21435 / 10220 / 1666
Регистрация: 12.02.2012
Сообщений: 17,095
08.07.2012, 15:09     Закрытие программ #3
Не обязательно. Есть утилитка taskkill. Ее можно запустить в скрытом окне.
Wanee
52 / 52 / 13
Регистрация: 02.02.2011
Сообщений: 428
08.07.2012, 16:40  [ТС]     Закрытие программ #4
Catstail, можете привести простой пример как использовать эту утилиту в С++.
-=ЮрА=-
Заблокирован
Автор FAQ
08.07.2012, 23:10     Закрытие программ #5
Цитата Сообщение от Wanee Посмотреть сообщение
можете привести простой пример как использовать эту утилиту в С++.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <windows.h>
#include <iostream>
using namespace std;
 
int main()
{
    int PID;cin>>PID;
    char sMSG[256] = {0};
    sprintf(sMSG,"taskkill /f /im %d",PID);//"taskkill /f /im Интересующий нас PID процесса"
    system(sMSG);//Убиваем процесс с идентификатором PID
    return 0;
}
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
08.07.2012, 23:12     Закрытие программ #6
по логике вещей надо найти процесс explorer.exe и убить все его дочерние процессы
-=ЮрА=-
Заблокирован
Автор FAQ
08.07.2012, 23:17     Закрытие программ #7
А вот краткий мануал по taskkill
taskkill /? (справка короче)
TASKKILL [/S <система> [/U <пользователь> [/P [<пароль>]]]]
{ [/FI <фильтр>] [/PID <процесс> | /IM <образ>] } [/F] [/T]

Описание:
Эта команда позволяет завершить один или несколько процессов.
Процесс может быть завершен по имени образа или по идентификатору процесса.

Список параметров:
/S <система> Подключаемый удаленный компьютер.

/U [<домен>\]<пользователь> Пользовательский контекст, в котором
должна выполняться эта команда.

/P <пароль> Пароль для этого пользовательского контекста.

Запрашивает пароль, если он не задан.

/F Принудительное завершение процесса


/FI <фильтр> Отображение задач, отвечающих
указанному в фильтре критерию.

/PID <процесс> Идентификатор процесса, который требуется
завершить.

/IM <образ> Имя образа процесса, который требуется
завершить. Для указания всех процессов
можно использовать символ шаблона '*'.

/T Завершение указанного процесса
и всех его дочерних процессов.

/? Вывод справки по использованию.

Фильтры:
Имя фильтра Допустимые операторы Допустимые значения
----------- -------------------- -------------------
STATUS eq, ne RUNNING | NOT RESPONDING
IMAGENAME eq, ne Имя образа
PID eq, ne, gt, lt, ge, le Значение PID
SESSION eq, ne, gt, lt, ge, le Номер сессии
CPUTIME eq, ne, gt, lt, ge, le Время CPU в формате
hh:mm:ss.
hh - часы,
mm - минуты, ss - секунды
MEMUSAGE eq, ne, gt, lt, ge, le Использование памяти в КБ
USERNAME eq, ne Имя пользователя в формате
[<домен>\]<пользователь>
MODULES eq, ne Имя DLL
SERVICES eq, ne Имя службы
WINDOWTITLE eq, ne Заголовок окна

Примечание: Символ '*' для параметра /IM применим только совместно с фильтрами.

Примечание: Завершение удаленных процессов всегда будет принудительным,
независимо от того, был ли использован параметр /F или нет.

Примеры:
TASKKILL /S <система> /F /IM notepad.exe /T
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM notepad.exe /IM mspaint.exe
TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
TASKKILL /S <система> /U <домен>\<пользователь> /FI "USERNAME ne NT*" /IM *
TASKKILL /S <система> /U <пользователь> /P <пароль> /FI "IMAGENAME eq note*"


Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от alex_x_x Посмотреть сообщение
по логике вещей надо найти процесс explorer.exe и убить все его дочерние процессы
не соглашусь, поясню: если скажем броузер к примеру хром, он как по мне никак не дочерний проц explorer.exe
PS:Поздравления по поводу смены авы=)

defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
08.07.2012, 23:23     Закрытие программ #8
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
он как по мне никак не дочерний проц explorer.exe
лучше не гадать,а взять программу вроде ProcessExplorer и посмотреть

chrome не дочерний
firefox дочерний
punto switcher не дочерний и т.д.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2012, 23:34     Закрытие программ
Еще ссылки по теме:

C++ Открытие,закрытие { }
Открытие и закрытие файлов C++
C++ закрытие цикла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
08.07.2012, 23:34     Закрытие программ #9
запустил PE под wine'ом - действительно порождаются они не от explorer'а
странно, почему-то раньше всегда так считал

ну значит перебирать все видимые окна

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
PS:Поздравления по поводу смены авы=)
это вроде не праздник, но все равно спасибо)

Yandex
Объявления
08.07.2012, 23:34     Закрытие программ
Ответ Создать тему
Опции темы

Текущее время: 15:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru