; ; Кодировка сценария UTF-8 with BOM !!! ; Unicode true !include nsDialogs.nsh Name "Unicode_tooltips" OutFile "Unicode_tooltips.exe" XPStyle on Var Link Var TipWnd Page custom nsDialogsPage Page instfiles ; === Таймер === Function OnTimer ${Unless} $TipWnd <> 0 System::Call USER32::CreateWindowEx(i0x00000008,t"tooltips_class32",i,i0x80000000,i,i,i,i,i,i,i0,i)i.s Pop $TipWnd ${EndUnless} System::Alloc 16 Pop $0 ; Получаем координаты курсора System::Call USER32::GetCursorPos(ir0) System::Call *$0(i.r1,i.r2) System::Free $0 System::Call USER32::WindowFromPoint(ir1,ir2)i.r1 ${If} $1 == $Link ; === Подсказка === StrCpy $R1 "Открыть страницу в браузере" ; === Создаём структуру TOOLINFO (Unicode) === FindWindow $3 "#32770" "" $HWNDPARENT System::Call *(i44,i0x010,i$3,i0x409,i,i,i,i,i0,tR1,i0)i.R1 ; Добавляем/обновляем тултип SendMessage $TipWnd 1074 0 $R1 ; TTM_ADDTOOLW SendMessage $TipWnd 1078 0 $R1 ; TTM_SETTOOLINFOW SendMessage $TipWnd 1041 1 $R1 ; TTM_UPDATETIPTEXTW ; Активируем отображение подсказки SendMessage $TipWnd 1025 1 0 ; TTM_ACTIVATE System::Free $R1 System::Call USER32::LoadCursor(i,i32649)i.s System::Call USER32::SetCursor(is) ${Else} ; Скрываем отображение подсказки SendMessage $TipWnd 1025 0 0 ; TTM_DEACTIVATE ${EndIf} FunctionEnd ; === Страница === Function nsDialogsPage nsDialogs::Create 1018 Pop $0 ${NSD_CreateLabel} 90u 50u 90u 10u "Форум NSIS на Ru-Board" Pop $Link SetCtlColors $Link 0x0000FF transparent System::Call 'user32::SetClassLong(i$Link,i-12,i0)' ${NSD_OnClick} $Link OnClick ${NSD_CreateTimer} OnTimer 50 nsDialogs::Show FunctionEnd Function OnClick ExecShell "open" "http://forum.ru-board.com/topic.cgi?forum=5&topic=0595&start=0" FunctionEnd Section SectionEnd |