Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 18.03.2009
Сообщений: 13
1

Захват окна

18.03.2009, 12:31. Просмотров 3172. Ответов 9
Метки нет (Все метки)


Я еще новичек в програмиировании, пожалуста подскажите подробно как реализовать захват другого окна. Пример: моя программа должна захватить управление окном (захват можно по имени окна например), при запущенной моей прграмме она перехватывает определенные клавиши на клавиатуре и направляет в выбранное окно, т.е. эмулирует нажатия клавиш в том окне. И 2 условия должнывыполнятся:
1. В моей программе настраивается при нажатии какой кнопки какой код передается в другое окно, например при нажатии кнопки F1 на окно передавалось что нажата кнопка F10
2. Второе окно чтобы было просто свернуто, активное оно не нужно чтобы было.

Оч.прошу помочь!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2009, 12:31
Ответы с готовыми решениями:

Delphi WEBBROWSER. Захват нажатия на HYPERLINK.
Как в DELPHI можно взять обработку нажатия на гиперссылку в HTML документе в WEBBROWSER.

Дочерние окна сворачивать в пределах главного окна (Delphi 7)
Здравствуйте, подскажите как сделать чтоб дочернее окно при свертывании не уходило на панель задач...

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

Захват видео с экрана
Здравствуйте, каким способом можно сделать захват видео с экрана?

9
PB
Просто прогер
1286 / 1073 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
18.03.2009, 12:51 2
через SendMessage можно
0
0 / 0 / 0
Регистрация: 18.03.2009
Сообщений: 13
18.03.2009, 13:16  [ТС] 3
А можно хоть как-нибудь подробнее, а то мне это мало о чем-то говорит!
0
PB
Просто прогер
1286 / 1073 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
18.03.2009, 15:09 4
паскаля незнаю, поэтому привожу коды на бейсике.
А т. к. использованы только API функции, то перевести будет несложно

Если нужно щёлкнуть по экранной кнопке другого окна, можно использовать такой приём
PureBasic
1
2
3
4
5
6
7
handle=FindWindow_(#Null,"ПОЛНОЕ ИМЯ ЗАГОЛОКА ОКНА") 
If handle<>0 ; Окно с таким именем есть
  Button=FindWindowEx_(handle,0, 0,"ИМЯ ЭКРАННОЙ КНОПКИ"); ищем дочернее окно(кнопку) главного окна
  If Button<>0 ; Копка найдена
     PostMessage_(Button,#BM_CLICK,0,0); собственно нажимаем на экранную кнопку
  EndIf
EndIf
А если нужно послать код кнопки, то это делается примерно так

PureBasic
1
2
3
4
5
6
handle=FindWindow_(#Null,"ПОЛНОЕ ИМЯ ЗАГОЛОКА ОКНА") 
If handle<>0 ; Окно с таким именем есть
  Key=32 ; Код этой клавиши посылаем окну
  SendMessage_(handle,#WM_KEYDOWN, Key, 0)
  Debug 1
EndIf
0
0 / 0 / 0
Регистрация: 18.03.2009
Сообщений: 13
18.03.2009, 17:14  [ТС] 5
Спасибо, но ниче не понял, бейсик мне далек! МОжет есть пример для делфи?
0
PB
Просто прогер
1286 / 1073 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
18.03.2009, 17:41 6
Но там же чистый API
Я сознательно отказался от встроеных функций чтобы понятней было.
0
из интернетов
136 / 33 / 7
Регистрация: 16.01.2008
Сообщений: 392
18.03.2009, 18:35 7
yuri-it, короче всё это делается через хэндлы, как и написалPB. Качай учебник Delphi World 6 и вбей там в поиске хэндлы. Всё описано подробно.
Для начала я тебе советую скачать пару учебников и изучать ПОСТЕПЕННО. Пользы больше. Поверь
0
0 / 0 / 0
Регистрация: 18.03.2009
Сообщений: 13
19.03.2009, 09:27  [ТС] 8
спасибо всем за ответы, попробую.
0
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 88
02.04.2017, 18:17 9
как Переписать данный код для другой программы немного его изменив
Это написано на AutoIt v3
C++
1
2
3
WinWaitActive("[CLASS:TfmIdNotification]", "", 1)  Находит окно по классу [B][CLASS:TfmIdNotification][/B] - класс проги в место заголовка
 
ControlClick('[CLASS:TfmIdNotification]', '', '[CLASS:TButton; INSTANCE:2]') нажимает на кнопку ОК так же по классу окна.
[CLASS:TfmIdNotification]
[CLASS:TButton; INSTANCE:2] - кнопка

как данное окно откроется, нажать на ок.

буду благодарен)
0
2087 / 1239 / 438
Регистрация: 29.05.2013
Сообщений: 5,567
09.04.2017, 01:02 10
art22 AutoIt это просто обертка над API, так-что смотрим
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2017, 01:02

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

Захват области экрана
Подскажите как можно захватывать выделенную область экрана? Я имею ввиду принтскрин выбранной...

Захват клавиши клавиатуры
Здравствуйте, есть программа которя при нажатии клавиши записывает звук, а при отжатии прекращает,...

Захват изображения с веб-камеры
Привет всем! Накипело, много статеек пересмотрел как это сделать, везде свои касяки, т.к....

Захват и изменения байта в другом процессе
добрый вечер мне надо захватит и изменит байты в чит енгине выглядит так system.exe+F427C чет не...


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

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

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