Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2018, 13:07   #1
Максим_maks
Пользователь
 
Регистрация: 18.01.2015
Сообщений: 51
По умолчанию Найти программу по заголовку окна

Всем привет. Может быть уже делали или поможете как сделать. Суть: есть некая программа например TotalCommander, она свернута - как найти е е заголовок и развернуть эту программу?. Спасибо
Максим_maks вне форума Ответить с цитированием
Старый 08.04.2018, 15:00   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

http://delphikingdom.ru/asp/viewitem.asp?catalogid=432
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.04.2018, 15:53   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Используя утилиту WinSpy или аналог выяснить класс или полный заголовок окна.
Использовать функции FindWindow, по классу окна найти дескриптор окна, свернуть/развернуть/скрыть с пом. функции ShowWindow

если хотите искать по заголовку, то FindWindow не ищет по части заголовка окна. Тут нужно использовать EnumWindows функцию, перебрать все окна и соотв. найти нужное.
Отличный цикл по работе с окнами привел min@y™.
Человек_Борща вне форума Ответить с цитированием
Старый 08.04.2018, 19:15   #4
Максим_maks
Пользователь
 
Регистрация: 18.01.2015
Сообщений: 51
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Спасибо, обязательно ознакомлюсь.
Максим_maks вне форума Ответить с цитированием
Старый 08.04.2018, 19:15   #5
Максим_maks
Пользователь
 
Регистрация: 18.01.2015
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Используя утилиту WinSpy или аналог выяснить класс или полный заголовок окна.
Использовать функции FindWindow, по классу окна найти дескриптор окна, свернуть/развернуть/скрыть с пом. функции ShowWindow

если хотите искать по заголовку, то FindWindow не ищет по части заголовка окна. Тут нужно использовать EnumWindows функцию, перебрать все окна и соотв. найти нужное.
Отличный цикл по работе с окнами привел min@y™.
Спасибо.
Максим_maks вне форума Ответить с цитированием
Старый 10.04.2018, 22:16   #6
Максим_maks
Пользователь
 
Регистрация: 18.01.2015
Сообщений: 51
По умолчанию

Всем еще раз привет, не стал делать новую тему, т.к. все равно работаю в рамках данной темы. Почему в списках заголовков окон - нет русского языка и как его туда добавить??? Делал все по ссылке http://delphikingdom.ru/asp/viewitem.asp?catalogid=432
Изображения
Тип файла: jpg 1244242454.jpg (25.0 Кб, 104 просмотров)
Максим_maks вне форума Ответить с цитированием
Старый 11.04.2018, 06:57   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,694
По умолчанию

Потому что используете анси функции и неперекодируете строки.
p51x вне форума Ответить с цитированием
Старый 11.04.2018, 14:11   #8
Максим_maks
Пользователь
 
Регистрация: 18.01.2015
Сообщений: 51
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Потому что используете анси функции и неперекодируете строки.
Здравствуйте. Сможете помочь? Может быть есть ссылка на преобразование?
Максим_maks вне форума Ответить с цитированием
Старый 11.04.2018, 14:44   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Сообщение от Максим_maks Посмотреть сообщение
Здравствуйте. Сможете помочь? Может быть есть ссылка на преобразование?
Кусок кода покажи, тут нет телепатов.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось Человек_Борща; 21.04.2018 в 21:44.
min@y™ вне форума Ответить с цитированием
Старый 11.04.2018, 20:39   #10
Максим_maks
Пользователь
 
Регистрация: 18.01.2015
Сообщений: 51
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Кусок кода покажи, блть, тут нет телепатов.
Эта функция получает список окон
Код:
Function EnumWindowsProc (Wnd: HWND; ComboBox: TComboBox): BOOL; stdcall;
var
   caption: Array [0..128] of Char;
begin
     Result := True;
            if { skip invisible windows }
               IsWindowVisible(Wnd) and
               { only process truly top-level windows. GetWindowLong must be used, not GetParent }
               ((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or
               (HWND(GetWindowLong(Wnd, GWL_HWNDPARENT)) = GetDesktopWindow)) and
               { skip WS_EX_TOOLWINDOW windows }
               ((GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW) = 0)
               then
                   begin
                        SendMessage( Wnd, WM_GETTEXT, Sizeof( caption ), integer(@caption));
                        Form1.ComboBox1.Items.AddObject( caption, TObject( Wnd ));
                   end;
end;
Данное действие при нажатии на Chekbox - выводит список в ComboBox

Код:
procedure TForm1.RadioButton3Change(Sender: TObject);
begin
   CheckBox1.Enabled:=True;
   ComboBox1.clear;
   EnumWindows( @EnumWindowsProc, integer( ComboBox1 ));
end;
Максим_maks вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти столбец в DBGridEh по заголовку и удалить его? artemavd Общие вопросы Delphi 9 03.05.2012 13:41
Как найти окно по заголовку с определенным словом? tozter Общие вопросы Delphi 5 21.12.2011 17:00
двойной клик по заголовку окна andrew_jr20 C# (си шарп) 2 17.12.2011 20:03
Как найти программу по заголовку и закрыть ее? Catsys Общие вопросы Delphi 2 16.09.2011 23:26
Убить процесс по заголовку окна Nice42ru Помощь студентам 27 21.01.2010 11:55