Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не могу получить хэндлы контролов!

9.8K
17 февраля 2007 года
lifer
27 / / 30.03.2006
Привет всем.
Мне необходимо программно имитировать действия пользователя в одной
проге, написанной на FoxPro, т.е. жать кнопки, вводить данные в эдитбоксы и т.д. При запуске она создает главное окно и дочернее диалоговое, где нужно ввести логин и пароль. Так вот,я не могу получить хэндлы кнопок (чекбоксов) и эдитбоксов на диалоговом окошке, то есть контролов как бы вообще нет - GetWindow, FindWindowEx,EnumChildWindows ничего не находят, я могу получить хэндл только самого диалога.
Запустил Spy++, нашел там этот диалог, а дочерних окон у него-то и нет!Окон с именами искомых контролов вообще нет в системе. Я могу посылать диалогу только безобидные сообщения типа WM_SETTEXT и т.д.
Кстати, когда в Spy ищешь окно путем наведения "прицела", то рамка вокруг диалога не появляется как у других окон, однако в списке он присутствует.
Для пробы создал свой диалог,проверил в Spy-все нормально.
Вообщем,даже не знаю, куда копать, так что буду благодарен за любые соображения на этот счет!
Заранее спасибо:)
1.9K
20 февраля 2007 года
Borland_prog
149 / / 25.01.2006
чувак я с тобой - то же не знаю как получить текст элемента ListBox-а чужого окна и послать сообщение этому эллементу
2.1K
20 февраля 2007 года
SATALIN
56 / / 03.02.2007
МОЖЕТ ПОМОЖЕТ ИСХОДНИК ДАЁТ URL ИЗ ИНТЕРНЕТ ЭКСПЛОРЕРА ОДНИ API:

{-------------------------------------------------------}
Function GetText(WindowHandle: hwnd):string;
var
txtLength : integer;
buffer: string;
begin

TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0);
txtlength := txtlength + 1;
setlength (buffer, txtlength);
sendmessage (WindowHandle,wm_gettext, txtlength, longint(@buffer[1]));
result := buffer;
end;

function GetURL:string;
var
ie,toolbar,combo,
comboboxex,edit,
worker,toolbarwindow:hwnd;
begin

ie := FindWindow(pchar('IEFrame'),nil);
worker := FindWindowEx(ie,0,'WorkerW',nil);
toolbar := FindWindowEx(worker,0,'rebarwindow32',nil);
comboboxex := FindWindowEx(toolbar, 0, 'comboboxex32', nil);
combo := FindWindowEx(comboboxex,0,'ComboBox',nil);
edit := FindWindowEx(combo,0,'Edit',nil);
toolbarwindow := FindWindowEx(comboboxex, 0, 'toolbarwindow32', nil);


result := GetText(edit);
{-------------------------------------------------------}

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(GetURL);
end; :)
1.9K
25 февраля 2007 года
Borland_prog
149 / / 25.01.2006
нормально
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог