Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 136
Благодарности: 18

Профиль | Отправить PM | Цитировать


Добрый день... Не думаю, что получу ответ, но... Применял с успехом код для поиска открытых окон приложений:

Код: Выделить весь код
!include LogicLib.nsh
showinstdetails show
outfile wind.exe
Section
System::Get "(i.r1) iss"
Pop $R0
System::Call "user32::EnumWindows(k R0,i) i.s"
loop:
    Pop $0
    StrCmp $0 "callback1" 0 done
    System::Call "user32::IsWindowVisible(ir1)i.r2"
    ${If} $2 <> 0
        System::Call "user32::GetWindowText(ir1,t.r2,i${NSIS_MAX_STRLEN})"
        System::Call "user32::GetClassName(ir1,t.r3,i${NSIS_MAX_STRLEN})"
        IntFmt $1 "0x%X" $1
        DetailPrint "$1 - [$3] $2" ;дескриптор-класс-имя
	${EndIf}
    Push 1 # callback's return value
    System::Call "$R0"
    Goto loop
done:
System::Free $R0
Sectionend
Но столкнулся с тем, что этот код не обнаруживает явно открытое окно программы. Это же окно не видит Анвир. Для утилиты Spy++ или WndOwner проблем нет. А хотел увидеть и его дочерние окна... Есть еще варианты на NSIS?

Отправлено: 17:49, 19-11-2013 | #773