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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2009, 17:15   #1
StartMis
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 175
По умолчанию Окна

Помогите. Пользуюсь следующей функцией FindWindowEx(h,0,'TButton' ,'-');
как класс определить у компонента я знаю, а вот как определить WindowName нет. Отсюда и вопрос как определить?
StartMis вне форума Ответить с цитированием
Старый 25.10.2009, 17:18   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Ну определять не обязательно, можно написать Nil. А вообще WindowName-это надпись(в вашем случае на кнопке), можно выдернуть её Spy++
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 25.10.2009, 17:21   #3
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

Если есть хэндл окна то можно на место WindowName ставить nil
Gerzs вне форума Ответить с цитированием
Старый 25.10.2009, 17:22   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Дополню :
Код:
FindWindow(nil, 'Заголовок окна')
P.S. заголовок полный(!), например, "Безымянный - Блокнот" , а не просто "Блокнот"
Как пример :
Код:
if FindWindow(nil, 'Безымянный - Блокнот') <> 0 then  ShowMessage('Окно найдено');
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 25.10.2009, 17:38   #5
StartMis
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 175
По умолчанию

может я ошибаюсь но WindowName это не надпись на кнопке. и надпись в Spy++ можно определить а вот WindowName я что то не нашел.(в свойствах кнопки caption-это надпись а мне нужно свойство name). А делаю я следующее мне нужно нажать на кнопку и если я пишу nil то нажимается не та кнопка. а что бы нажалась именно та которую я хочу мне нужно указать WindowName если я правильно понемаю.
StartMis вне форума Ответить с цитированием
Старый 25.10.2009, 17:40   #6
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Не правильно вы понимаете. WindowName=WindowText=caption
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 25.10.2009, 17:58   #7
StartMis
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 175
По умолчанию

Вот смотрите пример
h:=FindWindow('TForm','Form2');
knopka:=FindWindowEx(h,0,'TButton' , 'Button2');/// Если здесь ввести caption а не name кнопка Button2 не нажмется
EnableWindow(sh,True);
sendMessage(knopka,WM_IME_KEYDOWN,V K_RETURN,0);
sendMessage(knopka,WM_IME_KEYUP,VK_ RETURN,0);

Если ввести caption а не name кнопка Button2 не нажмется

Вот смотрите пример
h:=FindWindow('TForm','Form2');
knopka:=FindWindowEx(h,0,'TButton' , 'Button2');/// Если здесь ввести caption а не name кнопка Button2 не нажмется
EnableWindow(sh,True);
sendMessage(knopka,WM_IME_KEYDOWN,V K_RETURN,0);
sendMessage(knopka,WM_IME_KEYUP,VK_ RETURN,0);

Если ввести caption а не name кнопка Button2 не нажмется (если caption не 'Button2 ');

ну так как мне нажимать на кнопку если я не знаю ее name и если на форме она не одна?

ну кто нибудь помогите. может существует другой вариант.

Последний раз редактировалось Stilet; 26.10.2009 в 13:48.
StartMis вне форума Ответить с цитированием
Старый 26.10.2009, 13:51   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Иногда нужно заголовок в ковычки брать:
Код:
FindWindowEx(h,0,'TButton' , '"Button2"');
А вообще FindWindow плохая функция.
Надежнее через EnumChildWindow искать - сам на такие траблы с ней натыкался. Плюнул и сделал класс на основе EnumChildWindow
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размер окна в зависимости от размера окна Reverent JavaScript, Ajax 1 02.02.2008 15:49
Окна Baby Паскаль, Turbo Pascal, PascalABC.NET 9 21.12.2007 15:34
закрыть все дочерни окна, кроме главного окна Worms Общие вопросы Delphi 2 03.12.2007 22:18
Окна BOBAH13 Win Api 7 29.10.2007 12:02
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? dimonchuk Общие вопросы Delphi 1 11.08.2007 12:13