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

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

13.08.2012, 15:06. Показов 2334. Ответов 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
38190 / 21125 / 4307
Регистрация: 12.02.2012
Сообщений: 34,731
Записей в блоге: 14
13.08.2012, 15:15
Цитата Сообщение от Sac Svipe Посмотреть сообщение
приложение, местонахождение которого мы указывали в коде
- а что такое "местонахождение приложения"? Закрыть можно окно (найдя его в списке окон). Или уничтожить процесс (но нужно знать его имя, а лучше - PID).
0
Заблокирован
13.08.2012, 18:04
Ну а так !?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38190 / 21125 / 4307
Регистрация: 12.02.2012
Сообщений: 34,731
Записей в блоге: 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
18033 / 7736 / 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
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru