Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Заблокирован
1

Закрытие окна зная его имя

09.06.2012, 21:31. Просмотров 1568. Ответов 5
Метки нет (Все метки)

Ребят есть просьба, помогите с кодом. К примеру знаю имя окна "Панель управления" как мне сделать закрытие окна? В Интернете видел пример, но не могу вспомнить сайт.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2012, 21:31
Ответы с готовыми решениями:

Как взять текст из окна, зная его Handle?
К примеру я знаю хэндл (hWnd) текстового окна в любой запущенной программе. Как мне взять из неё...

Как зная дескриптор чужого окна сделать его неактивным?
Подскажите пожалуйста, как зная дескриптор чужого окна сделать его неактивным (невосприимчивым к...

Как получить хэндл окна зная текст его заголовка и ID процесса?
Как получить хэндл окна зная текст его заголовка и ID процесса? Желательно привязаться в ID -а то...

Определить заголовок(имя) окна, зная PID его процесса
Сабж! Уже 2ой день не могу найти - как? У меня известе PID и hwnd процесса, как узнать имя окна(то...

5
366 / 127 / 28
Регистрация: 17.07.2011
Сообщений: 253
Записей в блоге: 1
09.06.2012, 22:02 2
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
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, ByVal lParam As Long) As Long
Private Const WM_CLOSE = &H10
Private Const WM_QUIT = &H12
 
Private Sub Command1_Click()
Dim hW As Long
hW = FindWindow(vbNullString, "Безымянный - Блокнот" & Chr(0))
If hW Then PostMessage hW, WM_CLOSE, 0, 0 Else MsgBox "Окно не найдено!"
End Sub
2
Заблокирован
10.06.2012, 07:30  [ТС] 3
Kogb, А если мне к примеру нужно будет построчно загружать из файла список имен окон которые нужно закрыть в твой код, как это можно сделать ?
0
366 / 127 / 28
Регистрация: 17.07.2011
Сообщений: 253
Записей в блоге: 1
10.06.2012, 10:51 4
Цитата Сообщение от inv.DS Посмотреть сообщение
как это можно сделать ?
Ты сам ответил:
Цитата Сообщение от inv.DS Посмотреть сообщение
построчно загружать из файла список имен окон которые нужно закрыть
Алгоритм примерно такой:

-Открываешь файл,
-считываешь строку с заголовком окна,
-ищешь хэндл окна с найденным заголовком и посылаешь ему команду закрыться,
-повторяешь цикл, пока не будет достигнут конец файла,
-закрываешь файл.
0
Заблокирован
10.06.2012, 10:53  [ТС] 5
Делал не идет, с психа удалил все что писал Я в базах силен, но не в работе с OS, а вот понадобилось, поможешь ?
0
366 / 127 / 28
Регистрация: 17.07.2011
Сообщений: 253
Записей в блоге: 1
10.06.2012, 11:07 6
В файле списка каждый заголовок окна расположен на навой строке.
Если заголовки расположены по другому принципу, то соответственно надо отредактировать код.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit
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, ByVal lParam As Long) As Long
Private Const WM_CLOSE = &H10
Private Const WM_QUIT = &H12
 
Private Sub Form_Load()
Dim f As Long, capt As String, p As String
p = "c:\1.txt"
f = FreeFile
Open p For Input As #f
Do While Not EOF(f)
Line Input #f, capt
PostMessage FindWindow(vbNullString, capt & Chr(0)), WM_CLOSE, 0, 0
Loop
Close #f
End Sub
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2012, 11:07

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

Как узнать имя окна (обьекта), зная его хэндл?
Допустим, хэндл окна я узнаю так: HANDLE h=WindowFromPoint(Mouse->CursorPos); Класс так:...

Как узнать полное имя файла зная его краткое имя?
например при запуске программы достаточно написать "Excel" или "Calc" при этом система уже в курсе...

Зная ip адрес компьютера и его имя вывести имя пользователя
Зная ip адрес компьютера и его имя вывести имя пользователя в текстовое поле. я смог осилить...

Как, зная Handle окна программы, определить имя EXE
Добрый вечер, вот такая проблема: нужно найти имя активного окна. Handle узнаётся с помощью...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.