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

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

13.08.2012, 15:06. Показов 2317. Ответов 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
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
13.08.2012, 15:15
Цитата Сообщение от Sac Svipe Посмотреть сообщение
приложение, местонахождение которого мы указывали в коде
- а что такое "местонахождение приложения"? Закрыть можно окно (найдя его в списке окон). Или уничтожить процесс (но нужно знать его имя, а лучше - PID).
0
Заблокирован
13.08.2012, 18:04
Ну а так !?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 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 считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru