С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
3 / 3 / 0
Регистрация: 02.08.2012
Сообщений: 96

Закрытие стороннего приложения

13.08.2012, 15:06. Показов 2310. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите плиз. МОжно ли сделать так: (говорю как бы уже про готовую программу): на форме есть кнопка, при нажатии на эту кнопку, закрывается приложение, местонахождение которого мы указывали в коде.

Вот допустим у меня включен Браузер, и открываю это приложение, жму на кнопку и браузер закрывается вместе с приложением. Ну если без приложение, то тоже норм...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.08.2012, 15:06
Ответы с готовыми решениями:

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

Запуск стороннего приложения
Привет, простите если затрудняю... МОжно реализовать запуск стороннего приложения, находдящегося на рабочем столе, и имеющее...

Запуск стороннего приложения в WindowsXP
В Windows98 код Shell App.Path + 'mir32ex.bat' нормально запускал EXE-файл через пакетный файл mir32exe.bat со следующим содержимым:...

10
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38165 / 21100 / 4307
Регистрация: 12.02.2012
Сообщений: 34,688
Записей в блоге: 14
13.08.2012, 15:15
Цитата Сообщение от Sac Svipe Посмотреть сообщение
приложение, местонахождение которого мы указывали в коде
- а что такое "местонахождение приложения"? Закрыть можно окно (найдя его в списке окон). Или уничтожить процесс (но нужно знать его имя, а лучше - PID).
0
Заблокирован
13.08.2012, 18:04
Ну а так !?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38165 / 21100 / 4307
Регистрация: 12.02.2012
Сообщений: 34,688
Записей в блоге: 14
13.08.2012, 18:16
Я примерно это и имел в виду: если послать главному (а лучше - единственному) окну приложения сообщение QUIT - приложение закроется. Но нужно уметь находить окна. А приложение должно иметь главное окно (не все приложения являются таковыми).
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
13.08.2012, 18:36
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Sac Svipe Посмотреть сообщение
на форме есть кнопка, при нажатии на эту кнопку, закрывается приложение, местонахождение которого мы указывали в коде.
Исполнено!
На форму положите кнопку. В коде напишите название программы в соответствии с примером и комментариями к коду
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 
Private Const WM_CLOSE = &H10
Private Sub CloseProg(hwnd As Long)
SendMessage hwnd, WM_CLOSE, 0, 0
End Sub
Private Sub Command1_Click()
Dim hand As Long
Do
Sleep 200
' Тут название нашей программы, которую надо остановить
hand = FindWindow("IEFrame", vbNullString) ' в случае с IE проще использовать имя класса окна ( название всегда разное)
'hand = FindWindow(vbNullString, "Калькулятор Плюс") ' или точное название окна - если оно постоянно
CloseProg hand
Loop While hand <> 0
MsgBox "Вырубилась!"
DoEvents
End Sub
Добавлено через 5 минут
Если по хорошему не хочет закрываться, то можно и "по плохому"
Дополним объявления и исправим Sub CloseProg
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Declare Function GetWindowThreadProcessId Lib "user32" _
(ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" _
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
 
Private Const PROCESS_TERMINATE = &H1
 
Private Const WM_QUERYENDSESSION = &H11
Private Const WM_ENDSESSION = &H16
 
 
 
Private Sub CloseProg(hwnd As Long)
 
Dim pID As Long
Dim hProc As Long
GetWindowThreadProcessId hwnd, pID
hProc = OpenProcess(PROCESS_TERMINATE, False, pID)
Call SendMessage(hwnd, WM_QUERYENDSESSION, 0, 1)
Call SendMessage(hwnd, WM_ENDSESSION, -1, 1)
TerminateProcess hProc, 0
CloseHandle hProc
 
End Sub
3
Заблокирован
13.08.2012, 18:55
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Если по хорошему не хочет закрываться, то можно и "по плохому"
Дополним объявления и исправим Sub CloseProg

Не по теме:

Челябинские программисты настолько суровы, что приложения закрывают кнопкой "Reset" :D

2
3 / 3 / 0
Регистрация: 02.08.2012
Сообщений: 96
14.08.2012, 10:43  [ТС]
Цитата Сообщение от inv.DS Посмотреть сообщение
Челябинские программисты настолько суровы, что приложения закрывают кнопкой "Reset"
, спасибо...


Цитата Сообщение от Catstail Посмотреть сообщение
а что такое "местонахождение приложения"?
Место нахождение приложения: ну вот я дуал, что код должен был быть примерно такой:
...ля ля ля, тополя, коды коды....
Затем код, и дальше ссылка к месту расположения файла...
0
 Аватар для vodav
572 / 141 / 37
Регистрация: 12.03.2012
Сообщений: 403
14.08.2012, 13:47
Как мне помнится, есть такой мэтр VB - Падре (на "Народе" есть его страница, а можно и через Яндекс поискать). Так вот, он, еще на Win98, путем перебора всех активных ID, захлопывал все рабочие процессы.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
14.08.2012, 14:47
Sac Svipe, так?
Visual Basic
1
2
3
4
5
6
7
8
Sub Test()
ShutDownProc "C:\Windows\system32\calc.exe"
End Sub
 
Sub ShutDownProc(sPath As String)
sPath = Mid$(sPath, InStrRev(sPath, "\") + 1)
Shell "cmd /c taskkill /f /t /im:" & sPath, 0
End Sub
2
 Аватар для dzug
695 / 236 / 18
Регистрация: 17.01.2011
Сообщений: 583
Записей в блоге: 1
14.08.2012, 17:21
Если знаешь имя приложения, тогда можно дёшево и сердито закрыть, например приложение "День"
Visual Basic
1
2
3
4
5
6
Dim Process As Object
        For Each Process In GetObject("winmgmts:").ExecQuery("Select * from Win32_Process")
                If Process.Caption Like "День*" Then
                        Process.Terminate
                End If
        Next
2
3 / 3 / 0
Регистрация: 02.08.2012
Сообщений: 96
14.08.2012, 18:17  [ТС]
Да, так...

Ну, спасибо вам всем, даже не знаю чтобы я без вас делал)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.08.2012, 18:17
Помогаю со студенческими работами здесь

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

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

Запуск стороннего EXE-приложения
Приветствую! ПОдскажите, каким образом запустить из работающего приложения на VB какой-нибудь EXE-файл, например обычный калькулятор? ...

Как завершить процесс стороннего приложения
Например есть какойто запущеный процес &quot;pro&quot;, путь - &quot;D:\pro.exe&quot;. Какой код, чтоб проверить запущен ли процесс &quot;pro&quot; , если...

Как сделать запуск стороннего приложения
как сделать запуск стороннего приложения. В bat файле это выглядит вот так вот: start system\1488.exe startsalo


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru