Закрытие других программ Exe

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vlad_Ginz
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 17.04.2004 (Сб) 0:19

Закрытие других программ Exe

Сообщение Vlad_Ginz » 29.05.2004 (Сб) 1:34

Как при закрытии своего приложения, закрыть другие программы с известными названиями ?
Если требуется API, просьба расписать подробнее с Declare.

Tamahawk
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 03.02.2004 (Вт) 22:11

Сообщение Tamahawk » 29.05.2004 (Сб) 2:28

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
посылаеш WM_CLOSE

Vlad_Ginz
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 17.04.2004 (Сб) 0:19

Сообщение Vlad_Ginz » 01.06.2004 (Вт) 15:22

Есть несколько работающих EXE.
Как их закрыть из своей программы ?
Просьба вариант кода.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 01.06.2004 (Вт) 15:29

Вот тебе исходник. Там виден список процессов, ты можешь "убить" любой процесс, тем более если ты знаешь имена exe
Вложения
Список запущенных процессов.zip
(2.12 Кб) Скачиваний: 69

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 01.06.2004 (Вт) 15:46

Можно через FindWindow:
Положи на форму кнопку и вставь этот код:
Код: Выделить всё
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Const WM_CLOSE = &H10

Sub TerminateEXE(ByVal EXEName As String)
Dim S As String, Wnd As Long
S = EXEName
If LCase(Right(S, 4)) = ".exe" Then S = VBA.Left(S, Len(S) - 4)
Wnd = FindWindow(vbNullString, S)
If Wnd > 0 Then
PostMessage Wnd, WM_CLOSE, 0&, 0&
Else
MsgBox "Не найдено!"
End If
End Sub

Private Sub Command1_Click()
TerminateEXE InputBox("Введите имя exe файла, можно без "".exe"", вообще, нужно только без него, но в коде уже поставлено его отслеживание")
End Sub

Private Sub Form_Load()
Command1.Caption = "Закрыть EXE"
End Sub
Нет меня больше

Vlad_Ginz
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 17.04.2004 (Сб) 0:19

Сообщение Vlad_Ginz » 02.06.2004 (Ср) 1:26

Ну и порадовали Вы меня г.г. Sirik и Kofeinik !
Отлично работают оба варианта !
Тема закрыта. Большое спасибо !


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 6

    TopList