![]() |
функция getclassname не работает :((, но не понятно почему ?)))
пробовал даже так for i:=1 to 99999999 do if getclassname(i,namecl,999)<>0 then *memo1.lines.add(string(namecl)); все равно не работает!!! почему?!!! [s]Исправлено: fLANkeR, 21:24 23-01-2003[/s] |
fLANkeR
Функция GetClassName предназначена для получения имени класса, к которому принадлежит окно. Первый параметр этой функции имеет тип HWND, т.е. handle (или дескриптор по русски) этого окна, а не произвольное число, которое ты пытаешься передать в функцию. Десятичное 99999999 это всего лишь шестнадцатеричное 5F5E0FF, что гораздо меньше по значению, чем типичный HWND. Если ты пытаешься узнать имя класса твоей формы (например), то функцию надо вызывать примерно так: Код:
GetClassName(Form1.Handle, namecl, 999); |
shurikan
спасибо, но как использорвать эту функцию я знаю, дело не в этом. посмотри этот код hd:=findfindows(nil,pchar('form1')); if hd<>0 then begin if getclassname(hd,st,999)<>0 then form1.memo1.lines.add(string(st)); end; здесь тоже не работет :( и почему? |
fLANkeR
FindWindow принимает два параметра. Первый - строка с именем класса!!! А ты его обнулил. Второй - имя окна. Но если ты применяешь её, то уже должен знать имя класса. А следовательно GetClassName тебе ни к чему. *А этот hd, который ты пытаешься определить, уже есть в форме, как я уже писал раньше, он равен Form1.Handle. Если что-то не понял, пиши... :) Кстати form1 вовсе не имя окна. Это - имя экземпляра класса TForm [s]Исправлено: shurikan, 8:20 25-01-2003[/s] |
Время: 22:40. |
Время: 22:40.
© OSzone.net 2001-