Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Второе окно
Посл.ответ Сообщение

Ранг: 45.5 (посетитель)
Активность: 0.050
Статус: Участник

Создано: 02 июля 2006 20:23
· Личное сообщение · #1

нужно узнать handl главного окна. Тоесть когда программа запускается появляется дочернее окно его заголовок отличается от главного только лишнем словом (Название_программы версия). Главное же окно только Название_программы.
Если выполнить код:

var
Kep : HWND;
str : ARRAY [0..127] OF Char;
begin
repeat
Kep := FindWindow(nil, PChar('Название_программы'));
if Keep <> 0 then
GetWindowText(Kep, str, sizeof(str));
until str = 'Название_программы';
Showmessage(str);


То сообшение появиться сразу же после загрузки дочернего (первого окна). Тоесть в str будет не "Название_программы версия", "Название_программы". Как сделать, чтоб было
str :='Название_программы';

или хотя бы узнать handle главного окна.



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 02 июля 2006 20:49
· Личное сообщение · #2

GetActiveWindow
mov edi,eax
GetParent,eax
.if eax == 0
mov eax,edi
.endif
В eax будет лежать handle

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 45.5 (посетитель)
Активность: 0.050
Статус: Участник

Создано: 02 июля 2006 20:59
· Личное сообщение · #3

Demon666Чето не работает



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 02 июля 2006 21:26
· Личное сообщение · #4

GAMe ovER
Это будет работать, если код находится в программе, которая запускается если из другой, то нет или ты шпиён пишешь?

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 47.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 03 июля 2006 07:27
· Личное сообщение · #5

GAMe ovER функция GetForegroundWindow возвращает хендл активного окна.
Попробуй:

var Kep : HWND;
str : ARRAY [0..127] OF Char;
begin
repeat
Kep:=GetForegroundWindow;
GetWindowText(Kep, str, sizeof(str));
if str = 'Название_программы' then Showmessage('handle='+inttostr(Kep));
until str = 'Название_программы';
end.

Чё-то в этом духе.



Ранг: 52.2 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 03 июля 2006 15:10
· Личное сообщение · #6

uses keyboard

...

var
Wnd : HWND;
GAFF : array [0..81] of Char;
begin
repeat
Wnd := Windows.WindowFromPoint(Mouse.CursorPos);
until KeyBoard.IsKeyDown(VK_LBUTTON);



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 03 июля 2006 17:58
· Личное сообщение · #7

EnumWindows
EnumChildWindows

а вобще не очень понятно что нужно


 eXeL@B —› Программирование —› Второе окно
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати