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

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

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

Студворк — интернет-сервис помощи студентам
Суть такая. У меня в программе есть кнопка, которая запускает программу командой
C++
1
ShellExecute(NULL,NULL,D:\\Program Files\\Fraps\\fraps.exe,D:\\Program Files\\Fraps,NULL,SW_SHOW);
(программа любая может быть).
Так вот. Нужно сделать другую кнопку, чтобы запущенная прошлой кнопкой программа закрылась.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.04.2013, 13:10
Ответы с готовыми решениями:

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

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

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

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

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

Добавлено через 1 минуту
Попробовал ещё
C++
1
system("taskkill /IM fraps.exe");
Но тоже не работает. Пишет "Невозможно завершить процесс"
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
14.04.2013, 16:03
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  [ТС]
Цитата Сообщение от Ddv122 Посмотреть сообщение
MailsProuler, я так завершаю
C++
1
2
    AnsiString command =  AnsiString("taskkill.exe /f /im " + ExtractFileName(Oscam));
    WinExec(command.c_str(),SW_HIDE);
Что-то не работает. Или я что-то делаю не так.
Сначало выдало, что символ "Oscam" не определён. Я подумал, что это название ЕХЕшника, но вставив ЕХЕшник туда тоже ничего не произошло.
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
14.04.2013, 18:25
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  [ТС]
Цитата Сообщение от 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
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
14.04.2013, 18:59
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  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
C++
1
system("taskkill /IM Edit3->Text");
так вставлял?
Да.

Добавлено через 4 минуты
C++
1
2
AnsiString filename = Edit3->Text;
system("taskkill /IM filename");
Попробовал - не работает.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
14.04.2013, 19:23
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  [ТС]
Цитата Сообщение от 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2013, 20:04
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru