- Сообщения
- 5,379
- Репутация
- 2,724
AutoIt: 3.3.6.1
Версия: 1.0
Категория: Система, Элементы GUI
Описание: Я не знаю, почему в AutoIt не включили поддержку элементов SysLink, но я решил это дело поправить. Данная библиотека написана по аналогии с другими GUI библиотеками от Gary Frost'а и др. Для более подробной информации см. описания ко всем функциям внутри GuiSysLink.au3. Я рекомендую сразу скопировать файлы GuiSysLink.au3 и SysLinkConstants.au3 в папку ...\AutoIt3\Include, для простоты их подключения в ваши скрипты.
Список функций:
Файл(ы): SysLink.zip
Пример:
Скриншот:
Источник: GuiSysLink UDF (оффициальный форум)
Автор: Yashied
Версия: 1.0
Категория: Система, Элементы GUI
Описание: Я не знаю, почему в AutoIt не включили поддержку элементов SysLink, но я решил это дело поправить. Данная библиотека написана по аналогии с другими GUI библиотеками от Gary Frost'а и др. Для более подробной информации см. описания ко всем функциям внутри GuiSysLink.au3. Я рекомендую сразу скопировать файлы GuiSysLink.au3 и SysLinkConstants.au3 в папку ...\AutoIt3\Include, для простоты их подключения в ваши скрипты.
Список функций:
_GUICtrlSysLink_Create
_GUICtrlSysLink_Destroy
_GUICtrlSysLink_GetIdealHeight
_GUICtrlSysLink_GetIdealSize
_GUICtrlSysLink_GetItemEnabled
_GUICtrlSysLink_GetItemFocused
_GUICtrlSysLink_GetItemHighlighted
_GUICtrlSysLink_GetItemID
_GUICtrlSysLink_GetItemState
_GUICtrlSysLink_GetItemUrl
_GUICtrlSysLink_GetItemVisited
_GUICtrlSysLink_GetText
_GUICtrlSysLink_HitTest
_GUICtrlSysLink_HitTestEx
_GUICtrlSysLink_SetItemEnabled
_GUICtrlSysLink_SetItemFocused
_GUICtrlSysLink_SetItemHighlighted
_GUICtrlSysLink_SetItemID
_GUICtrlSysLink_SetItemState
_GUICtrlSysLink_SetItemUrl
_GUICtrlSysLink_SetItemVisited
_GUICtrlSysLink_SetText
Файл(ы): SysLink.zip
Пример:
Код:
#include <GUIConstantsEx.au3>
#include <GUISysLink.au3>
#include <GUIStatusBar.au3>
#include <WindowsConstants.au3>
$Text = 'The SysLink controls provides a convenient way to embed hypertext links in a window. For more information, click <A HREF="http://msdn.microsoft.com/en-us/library/bb760706(VS.85).aspx">here</A>.' & @CRLF & @CRLF & _
'To learn how to use the SysLink controls in AutoIt, click <A HREF="http://www.autoitscript.com/forum/">here</A>.'
$hForm = GUICreate("MyGUI", 428, 160)
$hStatusBar = _GUICtrlStatusBar_Create($hForm)
$hSysLink = _GUICtrlSysLink_Create($hForm, $Text, 10, 10, 408, 54)
$Dummy = GUICtrlCreateDummy()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUISetState()
While 1
_SysLink_Over()
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Dummy
ShellExecute(_GUICtrlSysLink_GetItemUrl($hSysLink, GUICtrlRead($Dummy)))
EndSwitch
WEnd
Func _SysLink_Over()
Local $Link = _GUICtrlSysLink_HitTest($hSysLink)
For $i = 0 To 1
If $i = $Link Then
If Not _GUICtrlSysLink_GetItemHighlighted($hSysLink, $i) Then
_GUICtrlSysLink_SetItemHighlighted($hSysLink, $i, 1)
_GUICtrlStatusBar_SetText($hStatusBar, _GUICtrlSysLink_GetItemUrl($hSysLink, $i))
EndIf
Else
If _GUICtrlSysLink_GetItemHighlighted($hSysLink, $i) Then
_GUICtrlSysLink_SetItemHighlighted($hSysLink, $i, 0)
_GUICtrlStatusBar_SetText($hStatusBar, "")
EndIf
EndIf
Next
EndFunc ;==>_SysLink_Over
Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
Local $tNMLINK = DllStructCreate($tagNMLINK, $lParam)
Local $hFrom = DllStructGetData($tNMLINK, "hWndFrom")
Local $ID = DllStructGetData($tNMLINK, "Code")
Switch $hFrom
Case $hSysLink
Switch $ID
Case $NM_CLICK, $NM_RETURN
GUICtrlSendToDummy($Dummy, DllStructGetData($tNMLINK, "Link"))
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Скриншот:
Источник: GuiSysLink UDF (оффициальный форум)
Автор: Yashied