start:
; Найти наг-скрин Total Commander
invoke FindWindow,szNag,NULL
or eax,eax
jz loc_exit
; Сохранить хэндл окна
mov [nag],eax
; Найти нужный номер кнопки
invoke EnumChildWindows,[nag],FindNastyNumber,NULL
; Кликнуть на нужную кнопку
invoke EnumChildWindows,[nag],ClickNastyButton,NULL
loc_exit:
invoke ExitProcess,0
; Рекурсивная функция перебора всех дочерних элементов
proc FindNastyNumber hwnd:dword,lParam:dword
mov [buff],0
; Прочитать текст дочернего элемента
invoke GetWindowText,[hwnd],buff,3
cmp eax,1
jne @f
; Сохранить текст кнопки
invoke lstrcpy,button+1,buff
@@:
invoke EnumChildWindows,[hwnd],FindNastyNumber,NULL
mov eax,1
ret
endp
; Рекурсивная функция перебора всех дочерних элементов
proc ClickNastyButton hwnd:dword,lParam:dword
mov [buff],0
; Прочитать текст дочернего элемента
invoke GetWindowText,[hwnd],buff,3
; Это текст искомой кнопки?
invoke lstrcmp,buff,button
or eax,eax
jnz @f
Хм... Так тут толку что оно написано на ассемблере, тут обычные вызовы апи-функций, имитация нажатий на клавишу осуществляется посредством посылки сообщения в то окно. Эту же самую операцию легко можно проделать в делфи.
Да и в Делфи этот код не вставишь, мы же не на Pure Basic пишем
Но все равно спасибо за код, попробую под вечер покопаться еще и в этом направлении.