![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Client |
![]()
Сообщение
#1
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Привет!
Сходил по ссылке, почитал. Код там для Си, а функции для Delphi работают и остаются такими же? Хочу начать с самого простого - узнать заголовок окна (любое окно). Как делать не знаю. Надо создавать консольное приложение или не обязательно? И если можно ссылку для дельфи |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Код там для Си, а функции для Delphi работают и остаются такими же? Да, названия функций не меняются. На то и API, чтобы можно было хоть из С, хоть из Дельфи, хоть из Ассемблера, или из Фортрана вызывать.Цитата Хочу начать с самого простого - узнать заголовок окна (любое окно). Как делать не знаю. Надо создавать консольное приложение или не обязательно? Ни разу не обязательно делать это именно консольным приложением. Хочешь - добавь кнопку в обычное VCL-приложение, и повесь на нее нужный код.Цитата И если можно ссылку для дельфи DRKB устроит? |
Client |
![]()
Сообщение
#3
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
GetWindowText() функция с 3 параметрами, но какими?
Добавлено через 8 мин. стоп, сначала же надо найти окно, а потом узнать заголовок? |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата сначала же надо найти окно, а потом узнать заголовок? Вот именно. Поэтому ты сначала определись, что тебе вообще известно, и что ты хочешь найти, а потом будем думать, та ли это функция или надо использовать другую. |
Client |
![]()
Сообщение
#5
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Открыт блокнот. При нажатии на кнопку в Label должен поместиться заголовок блокнота.
Для этого нужна переменная типа HWND. Она вроде содержит код окна... |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Ага... А рядом с блокнотом открыть еще один блокнот, и Word с тем же заголовком, что первый блокнот. И что будет? КАК твоя программа определит, блокнот это или нет, и какой из блокнотов тебе нужен? Постановку задачи давай, а не то, что ты хочешь видеть...
Как пример можешь посмотреть: "DRKB -> WinAPI и Железо -> Приложения и процессы -> Работа с чужими процессами -> Список окон + определение приложения, создавшего эти окна" Ты все еще хочешь то, что написал выше? ![]() |
Client |
![]()
Сообщение
#7
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Постановки задачи нету, сам придумал ) открыт 1 блокнот, мне хотя бы это
![]() Цитата Ты все еще хочешь то, что написал выше? ДаСообщение отредактировано: Client - 9.07.2009 18:26 |
Unconnected |
![]()
Сообщение
#8
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Хм... Хэндл окна, и его заголовок - это ведь разные вещи? Тогда, если искать окно блокнота так:
Код FindWindow(nil, 'Безымянный - notepad2') , то его заголовок естесственно и будет равен "Безымянный - notepad2", значит, надо заранее узнать вручную хендл блокнота?..-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Client |
![]()
Сообщение
#9
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Wnd := FindWindow('Notepad', nil);Так ищется окно, а вот как из Wnd вытащить заголовок... Вроде метод GetWindowText, но не получается у меня |
Unconnected |
![]()
Сообщение
#10
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
var wnd:THandle; У меня блокнот нестандартный, замени Notepad2 на Notepad. ![]() Сообщение отредактировано: Unconnected - 9.07.2009 20:49 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Client |
![]()
Сообщение
#11
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Делал так же, только переменная типа HWND и
GetWindowText(wnd, TmpArray, MAX);//а не @TmpArrayЧто значит @ (адресация?)? Спасиб, работает Сообщение отредактировано: Client - 9.07.2009 20:58 |
Unconnected |
![]()
Сообщение
#12
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Как мне подсказали, в Windows надо работать с указателем на начало массива:)
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 10:00 |