Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 14.04.2013
Сообщений: 8
1

ShellExecute и закрытие сторонней программы

14.04.2013, 13:10. Показов 4969. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть такая. У меня в программе есть кнопка, которая запускает программу командой
C++
1
ShellExecute(NULL,NULL,D:\\Program Files\\Fraps\\fraps.exe,D:\\Program Files\\Fraps,NULL,SW_SHOW);
(программа любая может быть).
Так вот. Нужно сделать другую кнопку, чтобы запущенная прошлой кнопкой программа закрылась.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2013, 13:10
Ответы с готовыми решениями:

Закрытие сторонней программы средствами VBA
Доброго времени суток)) Прошу не пинать, ибо не являюсь программером на VBA Но мое искреннее...

Закрытие сторонней программы через определенное время
Может кто нибудь скинуть рабочий пример таймера, который закрывает стороннее приложение?

Закрытие книги Excel при завершении сторонней программы
Подскажите, пожалуйста, как можно реализовать? Сам вижу это так, есть процедура, которая определяет...

Отследить закрытие задачи, открытой с помощью ShellExecute
Доброго времени суток. Можно ли как-то отследить состояние (в частности закрытие) задачи...

14
LK
Заблокирован
14.04.2013, 13:27 2
никакого экстрима - ищете программу (окно) по названию или классу окна, шлете сообщение о зарытии, наслаждаетесь результатом.
0
1 / 1 / 0
Регистрация: 14.04.2013
Сообщений: 8
14.04.2013, 13:35  [ТС] 3
Цитата Сообщение от LK Посмотреть сообщение
никакого экстрима - ищете программу (окно) по названию или классу окна, шлете сообщение о зарытии, наслаждаетесь результатом.
Ну вот мне бы это в коде увидеть. А то я не знаю как.
0
LK
Заблокирован
14.04.2013, 13:41 4
Есть такая вещь - умные книги.
Ну и это есть:Мечты вуайериста - чужие окна
и
Мечты вуайериста - чужие окна 2
и, главное, есть это:
Библиотека VCL и сопутствующие материалы
- на самом видном месте.
0
1 / 1 / 0
Регистрация: 14.04.2013
Сообщений: 8
14.04.2013, 14:01  [ТС] 5
Цитата Сообщение от LK Посмотреть сообщение
Есть такая вещь - умные книги.
Ну и это есть:Мечты вуайериста - чужие окна
и
Мечты вуайериста - чужие окна 2
и, главное, есть это:
Библиотека VCL и сопутствующие материалы
- на самом видном месте.
Что-то ищу там ищу и ничего не понятно.

Добавлено через 4 минуты
Нашёл тут же на форуме
C++
1
WinExec("taskkill.exe /f /im Opera.exe", SW_HIDE);
Такое подойдёт?
0
LK
Заблокирован
14.04.2013, 14:39 6
а попробовать?
0
1 / 1 / 0
Регистрация: 14.04.2013
Сообщений: 8
14.04.2013, 16:00  [ТС] 7
Цитата Сообщение от LK Посмотреть сообщение
а попробовать?
Не работает.

Добавлено через 1 минуту
Попробовал ещё
C++
1
system("taskkill /IM fraps.exe");
Но тоже не работает. Пишет "Невозможно завершить процесс"
0
Почемучка)
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
14.04.2013, 16:03 8
MailsProuler, я так завершаю
C++
1
2
    AnsiString command =  AnsiString("taskkill.exe /f /im " + ExtractFileName(Oscam));
    WinExec(command.c_str(),SW_HIDE);
1
1 / 1 / 0
Регистрация: 14.04.2013
Сообщений: 8
14.04.2013, 16:47  [ТС] 9
Цитата Сообщение от Ddv122 Посмотреть сообщение
MailsProuler, я так завершаю
C++
1
2
    AnsiString command =  AnsiString("taskkill.exe /f /im " + ExtractFileName(Oscam));
    WinExec(command.c_str(),SW_HIDE);
Что-то не работает. Или я что-то делаю не так.
Сначало выдало, что символ "Oscam" не определён. Я подумал, что это название ЕХЕшника, но вставив ЕХЕшник туда тоже ничего не произошло.
0
Почемучка)
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
14.04.2013, 18:25 10
MailsProuler,
C++
1
2
    AnsiString command =  AnsiString("taskkill.exe /f /im fraps.exe");
    WinExec(command.c_str(),SW_HIDE);
Но, возможно у программы не один процесс...
Попробуйте через командную строку (CMD) с помощью taskkill завершить процесс
0
1 / 1 / 0
Регистрация: 14.04.2013
Сообщений: 8
14.04.2013, 18:54  [ТС] 11
Цитата Сообщение от Ddv122 Посмотреть сообщение
MailsProuler,
C++
1
2
    AnsiString command =  AnsiString("taskkill.exe /f /im fraps.exe");
    WinExec(command.c_str(),SW_HIDE);
Но, возможно у программы не один процесс...
Попробуйте через командную строку (CMD) с помощью taskkill завершить процесс
Прописал taskkill.exe /f /im fraps.exe в цмд просто - отказало в доступе. Запустил цмд от админа - завершил. Как тогда решить проблему доступа в билдере?

Добавлено через 3 минуты
Блииииин. Всего-то запустил Билдер от админа и завершает это командой.
C++
1
system("taskkill /IM fraps.exe");
Добавлено через 8 минут
Только теперь всплыла другая проблема. Если вместо "fraps.exe" вписать "Edit3->Text" или "Edit3->Text.c_str()"(а мне по сути так и надо), то работать перестаёт.
0
LK
Заблокирован
14.04.2013, 18:59 12
C++
1
AnsiString filename = Edit3->Text;
Добавлено через 1 минуту
C++
1
system("taskkill /IM Edit3->Text");
так вставлял?
0
1 / 1 / 0
Регистрация: 14.04.2013
Сообщений: 8
14.04.2013, 19:10  [ТС] 13
Цитата Сообщение от LK Посмотреть сообщение
C++
1
system("taskkill /IM Edit3->Text");
так вставлял?
Да.

Добавлено через 4 минуты
C++
1
2
AnsiString filename = Edit3->Text;
system("taskkill /IM filename");
Попробовал - не работает.
0
LK
Заблокирован
14.04.2013, 19:23 14
C++
1
2
3
system("taskkill /IM "+Edit3->Text);
AnsiString filename = Edit3->Text;
system("taskkill /IM "+filename);
0
1 / 1 / 0
Регистрация: 14.04.2013
Сообщений: 8
14.04.2013, 20:04  [ТС] 15
Цитата Сообщение от LK Посмотреть сообщение
C++
1
2
3
system("taskkill /IM "+Edit3->Text);
AnsiString filename = Edit3->Text;
system("taskkill /IM "+filename);
Ошибка вылезает - E2085 Invalid pointer addition

Добавлено через 8 минут
Вобщем в итоге рабочим оказался код.
C++
1
2
3
AnsiString filename = Edit3->Text;
AnsiString command =  AnsiString("taskkill.exe /f /im "+filename);
WinExec(command.c_str(),SW_HIDE);
1
14.04.2013, 20:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2013, 20:04
Помогаю со студенческими работами здесь

Программное открытие и закрытие таблиц в сторонней БД
Доброго времени суток уважаемые форумчане! Пытаюсь из текущей БД программно открыть и закрыть...

Как закрыть порожденную ShellExecute программу, либо отследить ее закрытие
Доброго времени суток. Есть программа работающая с БД MS SQL. В одной из таблиц в двух полях...

ShellExecute: задержка выполнения программы до отработки внешней программы
Вообщем, нужно запустить на исполнение gbak, приостановить программу на период его исполнения, и...

Закрытие дочернего окна вызывает закрытие программы
Здравствуйте! Не могу никак разобраться, как сделать так, чтобы дочернее окно при его закрытии не...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru