Advertisement
AZJIO

тест

Mar 10th, 2015
995
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 18.88 KB | None | 0 0
  1. #region ;**** Directives created by AutoIt3Wrapper_GUI ****
  2. #AutoIt3Wrapper_OutFile=SetWindowsFont.exe
  3. #AutoIt3Wrapper_OutFile_X64=SetWindowsFontX64.exe
  4. #AutoIt3Wrapper_UseX64=n
  5. #AutoIt3Wrapper_icon=SetWindowsFont.ico
  6. #AutoIt3Wrapper_UseUpx=n
  7. ; #AutoIt3Wrapper_Compression=4
  8. #AutoIt3Wrapper_Res_Comment=-
  9. #AutoIt3Wrapper_Res_Description=SetWindowsFont.exe
  10. #AutoIt3Wrapper_Res_Fileversion=0.1.0.0
  11. #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=n
  12. #AutoIt3Wrapper_Res_LegalCopyright=AZJIO
  13. #AutoIt3Wrapper_Res_Language=1033
  14. #AutoIt3Wrapper_Run_AU3Check=n
  15. #AutoIt3Wrapper_Res_Field=Version|0.1
  16. #AutoIt3Wrapper_Res_Field=Build|2016.05.06
  17. #AutoIt3Wrapper_Res_Field=Coded by|AZJIO
  18. #AutoIt3Wrapper_Res_Field=Compile date|%longdate% %time%
  19. #AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer%
  20. #AutoIt3Wrapper_Run_Obfuscator=y
  21. #Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0
  22. #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_Obfuscated.au3"
  23. #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
  24.  
  25. #NoTrayIcon
  26. #include <StaticConstants.au3>
  27. #include <ScrollBarConstants.au3>
  28. #include <Array.au3>
  29. #include <Misc.au3>
  30. #include <FontConstants.au3>
  31. #include <GuiToolTip.au3>
  32. #include <WindowsConstants.au3>
  33. #include <GUIConstantsEx.au3>
  34. #include <ListViewConstants.au3>
  35.  
  36. Global Const $SPI_GETNONCLIENTMETRICS = 41 ; Для получения шрифта
  37. $hTool = 0
  38. Local $a_font
  39. Local $aTipFntSz[2] = ['Arial', 18]
  40.  
  41. $hGui = GUICreate('Настройка и предпросмотр шрифта в интерфейсе', 750, 560)
  42. If Not @Compiled Then GUISetIcon(@ScriptDir & '\SetWindowsFont.ico')
  43.  
  44. $iFileMenu = GUICtrlCreateMenu("&Файл")
  45. $iFileItem = GUICtrlCreateMenuItem("Открыть", $iFileMenu)
  46. GUICtrlSetState(-1, $GUI_DEFBUTTON)
  47. $iHelpMenu = GUICtrlCreateMenu("?")
  48. GUICtrlCreateMenuItem("Сохранить", $iFileMenu)
  49. GUICtrlSetState(-1, $GUI_DISABLE)
  50. $iInfoItem = GUICtrlCreateMenuItem("Информация", $iHelpMenu)
  51. $iExit = GUICtrlCreateMenuItem("Выход", $iFileMenu)
  52. $iRecentFilesMenu = GUICtrlCreateMenu("Последние файлы", $iFileMenu, 1)
  53.  
  54. GUICtrlCreateMenuItem("", $iFileMenu, 2) ; создаёт разделительную линию
  55.  
  56. $iViewMenu = GUICtrlCreateMenu("Вид", -1, 1) ; Создан до элемента меню "?"
  57. $iViewStatusItem = GUICtrlCreateMenuItem("Строка состояния", $iViewMenu)
  58. GUICtrlSetState(-1, $GUI_CHECKED)
  59. $iStyleitem = GUICtrlCreateMenuItem("Стиль GUI POPUP", $iViewMenu)
  60. GUICtrlCreateMenuItem("", $iViewMenu)
  61. $iRadioitem1 = GUICtrlCreateMenuItem("Радио1", $iViewMenu, -1, 1)
  62. $iRadioitem2 = GUICtrlCreateMenuItem("Радио2", $iViewMenu, -1, 1)
  63. $iRadioitem3 = GUICtrlCreateMenuItem("Радио3", $iViewMenu, -1, 1)
  64. GUICtrlSetState(-1, $GUI_CHECKED)
  65. $iRadioitem4 = GUICtrlCreateMenuItem("Радио4", $iViewMenu, -1, 1)
  66.  
  67. $iXp1 = 30
  68. GUICtrlCreateGroup('Установка шрифта через "Свойства: Экран:-> Оформление:-> Дополнительно"', 5, $iXp1 + 5, 740, 253)
  69. GUICtrlCreateLabel('Предпросмотр элемента "Список файлов (Значки)"', 10, $iXp1 + 30, 430, 20)
  70.  
  71. ; id, текст, шрифт, размер
  72. Local $aLV_List[7][4] = [ _
  73.         [0, 'Общий для всех', 'Arial', 10], _
  74.         [0, 'Список файлов (Значки)', 'Arial', 10], _
  75.         [0, 'Меню (строка меню)', 'Arial', 10], _
  76.         [0, 'Подсказка (всплывающая)', 'Arial', 10], _
  77.         [0, 'Заголовок окна', 'Arial', 10], _
  78.         [0, 'Заголовок панели', 'Arial', 10], _
  79.         [0, 'Окно сообщения', 'Arial', 10]]
  80.  
  81. ; _GetSysFont()
  82. $iLv = GUICtrlCreateListView("Элемент|Имя шрифта|Размер  ", 10, $iXp1 + 50, 430, 160);,$LVS_SORTDESCENDING)
  83. GUICtrlSetBkColor(-1, 0xFFFEEE) ; устанавливает цвет фона ListView
  84. For $i = 0 To 6
  85.     $aLV_List[$i][0] = GUICtrlCreateListViewItem($aLV_List[$i][1] & "|" & $aLV_List[$i][2] & "|" & $aLV_List[$i][3], $iLv)
  86.     GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 4, 0)
  87. Next
  88. GUICtrlSendMsg($iLv, $LVM_SETCOLUMNWIDTH, 0, 220)
  89.  
  90. $sMsg = 'Окно сообщения. Этот текст появляется в отдельном окне предупреждая о чём либо. Чтобы изменить шрифт этого окна, кликните в списке на пункте "Окно сообщения" и выберите шрифт.'
  91. $sMsg2 = 'Этот текст появляется в отдельном окне,' & @LF & 'предупреждая о чём либо. Чтобы изменить' & @LF & 'шрифт этого окна, кликните в списке на' & @LF & 'пункте "Окно сообщения" и выберите шрифт.'
  92. $iLb_msg = GUICtrlCreateLabel($sMsg, 460, $iXp1 + 30, 280, 110, $WS_BORDER)
  93.  
  94. $iBtn_Msg = GUICtrlCreateButton('Вызвать окно сообщения', 500, $iXp1 + 150, 170, 28)
  95.  
  96. $iBtn_Tip = GUICtrlCreateButton('Показать подсказку', 100, $iXp1 + 220, 170, 28)
  97.  
  98. $iTitleWin = GUICtrlCreateLabel('  Заголовок окна', 460, $iXp1 + 190, 250, 28)
  99. GUICtrlSetFont(-1, 13, 400, 0, 'Arial')
  100. GUICtrlSetBkColor(-1, 0xfdffae)
  101. $iTitleTools = GUICtrlCreateLabel('  Заголовок панели', 460, $iXp1 + 220, 250, 28)
  102. GUICtrlSetFont(-1, 13, 400, 0, 'Arial')
  103. GUICtrlSetBkColor(-1, 0xfdffae)
  104. ; $iStatusBar = GUICtrlCreateLabel('StatusBar', 5, 260 - 20, 150, 17)
  105.  
  106. ; GUICtrlSetFont($iLv, 10, 400, 0, 'Segoe UI')
  107. ; GUICtrlSetFont($iLv, 11, 400, 0, 'Courier')
  108. ; GUICtrlSetFont($iLv, 11, 400, 0, 'Arial')
  109. GUICtrlSetFont($iLb_msg, 11, 400, 0, 'Arial')
  110.  
  111. ; при использовании _GetSysFont()
  112. ; GUICtrlSetFont($iLv, $aLV_List[1][2], 400, 0, $aLV_List[1][3])
  113. ; GUICtrlSetFont($iTitleTools, $aLV_List[5][2], 400, 0, $aLV_List[5][3])
  114. ; GUICtrlSetFont($iLb_msg, $aLV_List[6][2], 400, 0, $aLV_List[6][3])
  115. $iBtn_app = GUICtrlCreateButton('Применить шрифт', 280, $iXp1 + 215, 130, 38)
  116.  
  117. ; Раздел 2, установка DPI
  118.  
  119. $iDPI = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Fonts", "LogPixels")
  120. $mastab = Round($iDPI / 96 * 100)
  121. $mastab2 = $mastab
  122. ; $iDPI = 96
  123.  
  124. GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL")
  125.  
  126. $iXp = 340
  127. GUICtrlCreateGroup('Масштабирование с помощью DPI (по умолчанию 96)', 5, $iXp, 740, 153)
  128. ; GUICtrlCreateLabel('Масштабирование с помощью DPI (по умолчанию 96)', 10, $iXp, 350, 28)
  129. $slider1 = GUICtrlCreateSlider(10, $iXp + 30, 200, 30)
  130. GUICtrlSetLimit(-1, 185, 100)
  131. $hSlider_Handle1 = GUICtrlGetHandle(-1)
  132. $condition = GUICtrlCreateLabel('100%' & @LF & '96 dpi', 210, $iXp + 30, 60, 44)
  133.  
  134. $iBtn_DPI = GUICtrlCreateButton('Применить DPI', 280, $iXp + 25, 130, 38)
  135. $iBtn_PreFont = GUICtrlCreateButton('Выбрать шрифт для предпросмотра', 480, $iXp + 28, 260, 28)
  136. $iLb_PreFont = GUICtrlCreateLabel('', 480, $iXp + 55, 260, 23, BitOR($GUI_SS_DEFAULT_LABEL, $SS_CENTER, $SS_CENTERIMAGE))
  137.  
  138. GUICtrlCreateLabel('', 25, $iXp + 60, 60, 5)
  139. GUICtrlSetBkColor(-1, 0x00ff00)
  140. GUICtrlCreateLabel('', 85, $iXp + 60, 45, 5)
  141. GUICtrlSetBkColor(-1, 0xffff00)
  142. GUICtrlCreateLabel('', 130, $iXp + 60, 65, 5)
  143. GUICtrlSetBkColor(-1, 0xff4444)
  144.  
  145. $tmpPreFSize = 10
  146. $PreFSize = 10
  147. $PreFName = 'Arial'
  148. GUICtrlCreateLabel('Сейчас', 10, $iXp + 80, 50, 20, $SS_LEFTNOWORDWRAP)
  149. GUICtrlCreateLabel('После', 10, $iXp + 110, 50, 20, $SS_LEFTNOWORDWRAP)
  150. $iPFS1 = GUICtrlCreateLabel('10', 60, $iXp + 80, 30, 30, $SS_LEFTNOWORDWRAP)
  151. $iPFbefore = GUICtrlCreateLabel('Съешь ещё этих мягких французских булочек', 90, $iXp + 80, 650, 30, $SS_LEFTNOWORDWRAP)
  152. GUICtrlSetBkColor(-1, 0xffff99)
  153. $iPFS2 = GUICtrlCreateLabel('10', 60, $iXp + 110, 30, 40, $SS_LEFTNOWORDWRAP)
  154. $iPFafter = GUICtrlCreateLabel('Съешь ещё этих мягких французских булочек', 90, $iXp + 110, 650, 40, $SS_LEFTNOWORDWRAP)
  155. GUICtrlSetBkColor(-1, 0xff9999)
  156. If $iDPI <> 96 Then
  157.     GUICtrlSetData($slider1, $mastab)
  158.     GUICtrlSetData($condition, $mastab & '%' & @LF & $iDPI & ' dpi')
  159. EndIf
  160. _SetPreFont($PreFName, $PreFSize)
  161.  
  162. GUISetState()
  163. While 1
  164.     Switch GUIGetMsg()
  165.         Case $iBtn_app
  166.             Run('rundll32.exe shell32.dll,Control_RunDLL desk.cpl desk,2')
  167.             ; Run('rundll32.exe shell32.dll,Control_RunDLL desk.cpl desk,@ScreenSaver')
  168.             $hWnd1 = WinWait("[TITLE:Свойства: Экран]", "", 5) ; без таймаута (5) ожидание бесконечно
  169.             If Not $hWnd1 Then
  170.                 MsgBox(4096, 'Сообщение', 'Окно не найдено.', 0, $hGui)
  171.                 ContinueLoop
  172.             EndIf
  173.             ControlClick($hWnd1, '', '[CLASS:Button; INSTANCE:2]', "main", 1)
  174.  
  175.             $hWnd2 = WinWait("[TITLE:Дополнительное оформление]", "", 5) ; без таймаута (5) ожидание бесконечно
  176.             If Not $hWnd2 Then
  177.                 MsgBox(4096, 'Сообщение', 'Окно не найдено.', 0, $hGui)
  178.                 ContinueLoop
  179.             EndIf
  180.             Local $aItem[7] = [6, 'Значок', 'Строка меню', 'Всплывающая подсказка', 'Заголовок активного окна', 'Название панели', 'Окно сообщения']
  181.             For $i = 1 To 6
  182.                 ControlCommand($hWnd2, "", "ComboBox1", "SelectString", $aItem[$i])
  183.                 ControlCommand($hWnd2, "", "ComboBox2", "SelectString", $aLV_List[$i][2])
  184.                 ControlCommand($hWnd2, "", "ComboBox3", "SelectString", $aLV_List[$i][3])
  185.             Next
  186.  
  187.             MsgBox(0, 'Сообщение', 'Применить нажми сам', 0, $hGui)
  188.  
  189.         Case $iBtn_PreFont
  190.             $a_font = _ChooseFont("Arial", 10, 0, 0, False, False, False, $hGui)
  191.             If Not @error Then
  192.                 $PreFSize = $a_font[3]
  193.                 $PreFName = $a_font[2]
  194.                 _SetPreFont($PreFName, $PreFSize)
  195.             EndIf
  196.         Case $iBtn_DPI
  197.             RegWrite('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Fonts', 'LogPixels', 'REG_DWORD', $iDPI)
  198.         Case $iBtn_Msg
  199.             MsgBox(0, 'Окно сообщения', $sMsg2, 0, $hGui)
  200.         Case $iBtn_Tip
  201.             _ToolTipEvent()
  202.         Case $aLV_List[0][0]
  203.             $a_font = _ChooseFont("Arial", 10, 0, 0, False, False, False, $hGui)
  204.             If Not @error Then
  205.                 ; Общий
  206.                 GUICtrlSetData($aLV_List[0][0], "|" & $a_font[2] & '|' & $a_font[3])
  207.                 ; Значки
  208.                 GUICtrlSetFont($iLv, $a_font[3], 400, 0, $a_font[2])
  209.                 GUICtrlSetData($aLV_List[1][0], "|" & $a_font[2] & '|' & $a_font[3])
  210.                 ; Меню
  211.                 GUICtrlSetData($aLV_List[2][0], "|" & $a_font[2] & '|' & $a_font[3])
  212.                 ; Окно сообщения
  213.                 GUICtrlSetFont($iLb_msg, $a_font[3], 400, 0, $a_font[2])
  214.                 GUICtrlSetData($aLV_List[6][0], "|" & $a_font[2] & '|' & $a_font[3])
  215.                 ; Подсказка
  216.                 $aTipFntSz[0] = $a_font[2]
  217.                 $aTipFntSz[1] = Round($a_font[3] * 16 / 10)
  218.                 GUICtrlSetData($aLV_List[3][0], "|" & $a_font[2] & '|' & $a_font[3])
  219.                 ; Заголовок окна
  220.                 GUICtrlSetFont($iTitleWin, $a_font[3], 400, 0, $a_font[2])
  221.                 GUICtrlSetData($aLV_List[4][0], "|" & $a_font[2] & '|' & $a_font[3])
  222.                 ; Заголовок панели
  223.                 GUICtrlSetFont($iTitleTools, $a_font[3], 400, 0, $a_font[2])
  224.                 GUICtrlSetData($aLV_List[5][0], "|" & $a_font[2] & '|' & $a_font[3])
  225.             EndIf
  226.         Case $aLV_List[1][0]
  227.             _SetFont($iLv, $aLV_List[1][0])
  228.             ; Case $aLV_List[2][0]
  229.             ; _SetFont($iFileItem, $aLV_List[2][0])
  230.         Case $aLV_List[3][0]
  231.             $a_font = _ChooseFont("Arial", 10, 0, 0, False, False, False, $hGui)
  232.             $aTipFntSz[0] = $a_font[2]
  233.             ; $aTipFntSz[1] = Round($a_font[3] + $a_font[3] / 3)
  234.             $aTipFntSz[1] = Round($a_font[3] * 16 / 10)
  235.             ; Switch $aTipFntSz[1]
  236.             ; Case 12
  237.             ; $aTipFntSz[1] = 16
  238.             ; Case Else
  239.             ; $aTipFntSz[1] = 18
  240.             ; EndSwitch
  241.             GUICtrlSetData($aLV_List[3][0], "|" & $a_font[2] & '|' & $a_font[3])
  242.             _ToolTipEvent()
  243.         Case $aLV_List[4][0]
  244.             _SetFont($iTitleWin, $aLV_List[4][0])
  245.         Case $aLV_List[5][0]
  246.             _SetFont($iTitleTools, $aLV_List[5][0])
  247.         Case $aLV_List[6][0]
  248.             _SetFont($iLb_msg, $aLV_List[6][0])
  249.         Case -3
  250.             If $hTool Then _GUIToolTip_Destroy($hTool) ; может создаться и до удаления обновится новым, так что удалять в цикле наверно ???
  251.             Exit
  252.     EndSwitch
  253. WEnd
  254.  
  255. Func _SetPreFont($f = 'Arial', $s = 10)
  256.     $fs1 = Round($s * $mastab / 100)
  257.     $fs2 = Round($s * $mastab2 / 100)
  258.     GUICtrlSetFont($iPFbefore, $fs1, 400, 0, $f)
  259.     GUICtrlSetFont($iPFafter, $fs2, 400, 0, $f)
  260.     GUICtrlSetData($iLb_PreFont, $f & ', ' & $s)
  261.     GUICtrlSetData($iPFS1, $fs1)
  262.     GUICtrlSetData($iPFS2, $fs2)
  263. EndFunc   ;==>_SetPreFont
  264.  
  265. Func WM_HSCROLL($hWnd, $Msg, $wParam, $lParam)
  266.     #forceref $Msg, $wParam, $lParam
  267.     Local $nScrollCode = BitAND($wParam, 0x0000FFFF) ; _WinAPI_LoWord
  268.     Local $value = BitShift($wParam, 16) ; _WinAPI_HiWord
  269.  
  270.     Switch $lParam
  271.         Case $hSlider_Handle1
  272.             ; $sMsg = ''
  273.             $tmpPreFSize0 = $tmpPreFSize
  274.             Switch $nScrollCode
  275.                 Case $SB_THUMBTRACK, $SB_THUMBPOSITION
  276.                     $sMsg = $value & '%' & @LF & Round(96 * $value / 100) & ' dpi'
  277.                     $iDPI = Round(96 * $value / 100)
  278.                 Case $SB_LINELEFT, $SB_PAGERIGHT, $SB_PAGELEFT, $SB_LINERIGHT
  279.                     $value = GUICtrlRead($slider1)
  280.                     $sMsg = $value & '%' & @LF & Round(96 * $value / 100) & ' dpi'
  281.                     $iDPI = Round(96 * $value / 100)
  282.             EndSwitch
  283.             If $nScrollCode <> 8 Then
  284.                 GUICtrlSetData($condition, $sMsg)
  285.                 $mastab2 = $value
  286.                 ; If $itmpDPI <> $iDPI Then GUICtrlSetFont($iPFafter, Round($PreFSize*$mastab2/100), 400, 0, $PreFName)
  287.                 $tmpPreFSize = Round($PreFSize * $mastab2 / 100, 1)
  288.                 If $tmpPreFSize0 <> $tmpPreFSize Then
  289.                     GUICtrlSetData($iPFS2, $tmpPreFSize)
  290.                     GUICtrlSetFont($iPFafter, $tmpPreFSize, 400, 0, $PreFName)
  291.                 EndIf
  292.             EndIf
  293.     EndSwitch
  294.     Return $GUI_RUNDEFMSG
  295. EndFunc   ;==>WM_HSCROLL
  296.  
  297. Func _ToolTipEvent()
  298.     $hIcon = _WinAPI_LoadShell32Icon(15)
  299.     $sText = 'Для изменения размера шрифта подсказки,' & @CRLF & 'кликните в списке на пункте "Подсказка (всплывающая)"' & @CRLF & 'и выберите шрифт.'
  300.     $a = 0
  301.     $b = 0
  302.     _GetCoor($a, $b)
  303.     $hTool = _ToolTip($sText, $a + 170 / 2, $b + 28, $aTipFntSz[0] & ', ' & $aTipFntSz[1] & ' пиксель', $hIcon, $TTS_NOPREFIX + $TTS_BALLOON, $aTipFntSz[1], $aTipFntSz[0])
  304.     Sleep(2500)
  305.     _GUIToolTip_Destroy($hTool) ; Удалить подсказку
  306. EndFunc   ;==>_ToolTipEvent
  307.  
  308. Func _SetFont($id, $item)
  309.     $a_font = _ChooseFont("Arial", 10, 0, 0, False, False, False, $hGui)
  310.     If Not @error Then
  311.         GUICtrlSetFont($id, $a_font[3], 400, 0, $a_font[2])
  312.         GUICtrlSetData($item, "|" & $a_font[2] & '|' & $a_font[3])
  313.     EndIf
  314. EndFunc   ;==>_SetFont
  315.  
  316. Func _GetCoor(ByRef $a, ByRef $b)
  317.     Local $hWnd = GUICtrlGetHandle($iBtn_Tip)
  318.     Local $tpoint = DllStructCreate("int X;int Y")
  319.     DllStructSetData($tpoint, "X", 0)
  320.     DllStructSetData($tpoint, "Y", 0)
  321.     GUISetState()
  322.     _WinAPI_ClientToScreen($hWnd, $tpoint)
  323.     $a = DllStructGetData($tpoint, "X")
  324.     $b = DllStructGetData($tpoint, "Y")
  325. EndFunc   ;==>_GetCoor
  326.  
  327. Func _ToolTip($sText, $iX = 0, $iY = 0, $iTitle = '', $hIcon = 0, $iStyle = 0, $iFontSize = 0, $iFontFamily = 'Arial', $iFontColor = 0, $iBkColor = 0)
  328.     ; If BitAND($iStyle, 1) Then $iStyle += $TTS_BALLOON
  329.  
  330.     ; Создаёт ToolTip
  331.     Local $hFont = 0, $iError = 0
  332.     Local $hTool = _GUIToolTip_Create(0, $iStyle)
  333.     If Not $hTool Then Return SetError(-1, 0, 0)
  334.  
  335.     ; Устанавливает ширину ToolTip
  336.     _GUIToolTip_SetMaxTipWidth($hTool, @DesktopWidth)
  337.     ; Кроме того это позволяет отображать текст с переносом строки. Иначе @CRLF не будет иметь эффекта.
  338.  
  339.     ; Устанавливает шрифт для ToolTip
  340.     If $iFontSize Then
  341.         $hFont = _WinAPI_CreateFont($iFontSize, 0, 0, 0, 400, False, False, False, $DEFAULT_CHARSET, $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, $iFontFamily)
  342.         If $hFont Then
  343.             _WinAPI_SetFont($hTool, $hFont)
  344.         Else
  345.             $iError += 1
  346.         EndIf
  347.     EndIf
  348.  
  349.     ; Устанавливает цвет
  350.     If $iFontColor Then _GUIToolTip_SetTipTextColor($hTool, $iFontColor) ; Цвет текста (BGR) всплывающей подсказки
  351.     If $iBkColor Then _GUIToolTip_SetTipBkColor($hTool, $iBkColor) ; Цвет фона (BGR) всплывающей подсказки
  352.  
  353.     ; Назначает подсказку элементу и стиль с координатами
  354.     If Not _GUIToolTip_AddTool($hTool, 0, $sText, 0, 0, 0, 0, 0, 2 + 16) Then Return SetError(1, 0, 0)
  355.  
  356.     ; Устанавливает заголовок подсказки
  357.     If $iTitle And Not _GUIToolTip_SetTitle($hTool, $iTitle, $hIcon) Then $iError += 2
  358.  
  359.     ; Устанавливает позицию подсказки
  360.     _GUIToolTip_TrackPosition($hTool, $iX, $iY)
  361.  
  362.     ; Принудительно показывает подсказку
  363.     _GUIToolTip_TrackActivate($hTool)
  364.     Return SetError($iError, $hFont, $hTool)
  365. EndFunc   ;==>_ToolTip
  366.  
  367. Func _GetSysFont()
  368.     Local $nonclientmetrics, $a
  369.     $nonclientmetrics = DllStructCreate("uint;int;int;int;int;int;byte[60];int;int;byte[60];int;int;byte[60];byte[60];byte[60]")
  370.     DllStructSetData($nonclientmetrics, 1, DllStructGetSize($nonclientmetrics))
  371.  
  372.     $a = DllCall("user32.dll", "int", "SystemParametersInfo", "int", 41, _
  373.             "int", DllStructGetSize($nonclientmetrics), _
  374.             "ptr", DllStructGetPtr($nonclientmetrics), "int", 0)
  375.  
  376.     $b = DllCall("kernel32.dll", "int", "GetLastError")
  377.  
  378.     $logfont1 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]", DllStructGetPtr($nonclientmetrics, 7))
  379.     $logfont2 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]", DllStructGetPtr($nonclientmetrics, 10))
  380.     $logfont3 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]", DllStructGetPtr($nonclientmetrics, 13))
  381.     $logfont4 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]", DllStructGetPtr($nonclientmetrics, 14))
  382.     $logfont5 = DllStructCreate("long;long;long;long;long;byte;byte;byte;byte;byte;byte;byte;byte;char[32]", DllStructGetPtr($nonclientmetrics, 15))
  383.    
  384.     $aLV_List[4][2] = DllStructGetData($logfont1, 14)
  385.     $aLV_List[5][2] = DllStructGetData($logfont2, 14)
  386.     $aLV_List[2][2] = DllStructGetData($logfont3, 14)
  387.     $aLV_List[3][2] = DllStructGetData($logfont4, 14)
  388.     ; Размер в пикселях
  389.     ; $aLV_List[4][3] = DllStructGetData($logfont1,1)
  390.     ; $aLV_List[5][3] = DllStructGetData($logfont2,1)
  391.     ; $aLV_List[2][3] = DllStructGetData($logfont3,1)
  392.     ; $aLV_List[3][3] = DllStructGetData($logfont4,1)
  393.     $aLV_List[4][3] = Round(StringReplace(DllStructGetData($logfont1, 1), '-', '') * 10 / 16)
  394.     $aLV_List[5][3] = Round(StringReplace(DllStructGetData($logfont2, 1), '-', '') * 10 / 16)
  395.     $aLV_List[2][3] = Round(StringReplace(DllStructGetData($logfont3, 1), '-', '') * 10 / 16)
  396.     $aLV_List[3][3] = Round(StringReplace(DllStructGetData($logfont4, 1), '-', '') * 10 / 16)
  397.     ; _ArrayDisplay($aLV_List, 'Array')
  398. EndFunc   ;==>_GetSysFont
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement