Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;
- ; Кодировка сценария UTF-8 with BOM !!!
- ;
- Unicode true
- !define MUI_COMPONENTSPAGE_NODESC
- !include MUI2.nsh
- !include LogicLib.nsh
- Name "Unicode_tooltips"
- OutFile "ToolTips4U.exe"
- XPStyle on
- !insertmacro MUI_PAGE_COMPONENTS
- !insertmacro MUI_PAGE_INSTFILES
- !insertmacro MUI_LANGUAGE English
- Section Foo SID_FOO
- SectionEnd
- Section Bar SID_BAR
- SectionEnd
- Section Baz SID_BAZ
- SectionEnd
- var ttip
- !define WS_POPUP 0x80000000
- !define TTF_SUBCLASS 0x010
- !define /math TTM_ACTIVATE ${WM_USER} + 1
- !define /math TTM_ADDTOOLW ${WM_USER} + 50
- !define /math TTM_SETTOOLINFOW ${WM_USER} + 54
- !define /math TTM_TRACKACTIVATE ${WM_USER} + 17
- !define /math TTM_TRACKPOSITION ${WM_USER} + 18
- !define /math TTM_POP ${WM_USER} + 28
- !define /math TTM_POPUP ${WM_USER} + 34
- Function .onMouseOverSection
- ${If} $0 = -1
- killtip:
- SendMessage $ttip ${TTM_ACTIVATE} 0 0
- Return
- ${EndIf}
- StrCpy $2 ""
- ${If} $ttip = 0
- System::Call 'USER32::CreateWindowEx(i${WS_EX_TOPMOST},t"tooltips_class32",i,i${WS_POPUP},i,i,i,i,i0,i,i,i)i.r2'
- StrCpy $ttip $2
- ${EndIf}
- StrCpy $1 ""
- ${Select} $0
- ${Case} ${SID_FOO}
- StrCpy $1 "Основной модуль программы (超级链接)"
- ${Case} ${SID_BAR}
- StrCpy $1 "Компоненты программы (访问我的博客)"
- ${Case} ${SID_BAZ}
- StrCpy $1 "Дополнительные инструменты"
- ${EndSelect}
- FindWindow $3 "#32770" "" $HWNDPARENT
- System::Call '*(i44,i${TTF_SUBCLASS},i$3,i0x678,i,i,i,i,i0,tr1,i0)i.r1'
- SendMessage $2 ${TTM_ADDTOOLW} 0 $1
- SendMessage $ttip ${TTM_SETTOOLINFOW} 0 $1
- SendMessage $ttip ${TTM_ACTIVATE} 1 0
- SendMessage $ttip ${TTM_TRACKACTIVATE} 1 $1
- System::Free $1
- ${If} $2 <> 0
- ;BUGFIX: Sometimes we get an initial onMouseOverSection call with no place to show a tip
- System::Call 'USER32::IsWindowVisible(ir3)i.r0'
- ${IfThen} $0 = 0 ${|} goto killtip ${|}
- ${EndIf}
- FunctionEnd
Advertisement
Add Comment
Please, Sign In to add comment