Funktionreferenz


_GUICtrlRichEdit_AutoDetectURL

Beschreibung anzeigen in

Aktiviert oder deaktiviert automatische Erkennung von URLs

#include <GuiRichEdit.au3>
_GUICtrlRichEdit_AutoDetectURL ( $hWnd, $bState )

Parameter

$hWnd Handle des Controls
$bState True um URLs in dem Text zu ermitteln, False um es nicht zu tun.

Rückgabewert

Erfolg: True
Fehler: False und setzt das @error Flag auf ungleich null
@error: 101 - $hWnd ist kein Handle
102 - $bState ist weder True noch False
700 - Interner Fehler, z.B. zu wenig Speicher.

Bemerkungen

Falls aktiviert, wird bei jeder Textänderung nach Text gesucht, der dem Format einer URL entspricht.
Es werden Strings als URLs erkannt, die den folgenden Zeichen beginnen:
URLs: http:, file:, mailto:, ftp:, https:, gopher:, nntp:, prospero:, telnet:, news:, wais:.
Wenn eine URL ermittelt wurde, setzt Windows das Link-Attribut für alle Zeichen in dem URL-String und hebt diesen optisch hervor.

Ist die automatische URL-Erkennung aktiviert und eine URL wurde ermittelt, entfernt Windows die Link-Attribute von allen Zeichen die keine URLs sind.

Um Benachrichtigungen zu erhalten, ist _GUICtrlRichEdit_SetEventMask() mit $ENM_LINK aufzurufen.

- - - - - - - - Erklärung der Controls - - - - - - - -

Verwandte Funktionen

_GUICtrlRichEdit_SetEventMask

Siehe auch

Suche nach EM_AUTOURLDETECT in der MSDN Bibliothek. Suche nach EN_LINK in der MSDN Bibliothek.

Beispiel

#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>

Global $g_hRichEdit

Example()

Func Example()
    Local $hGui, $iMsg
    $hGui = GUICreate("Beispiel (" & StringTrimRight(@ScriptName, 4) & ")", 320, 350, -1, -1)
    $g_hRichEdit = _GUICtrlRichEdit_Create($hGui, "Dies ist ein Test.", 10, 10, 300, 220, _
            BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    GUISetState(@SW_SHOW)

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    _GUICtrlRichEdit_SetEventMask($g_hRichEdit, $ENM_LINK)

    _GUICtrlRichEdit_AutoDetectURL($g_hRichEdit, True)
    _GUICtrlRichEdit_AppendText($g_hRichEdit, @CR & "http://www.autoit.de")
    While True
        $iMsg = GUIGetMsg()
        Select
            Case $iMsg = $GUI_EVENT_CLOSE
                _GUICtrlRichEdit_Destroy($g_hRichEdit) ; wird benötigt, da sonst das Skript abstürzt
;~              GUIDelete()
                Exit
        EndSelect
    WEnd
EndFunc   ;==>Example

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    Local $hWndFrom, $iCode, $tNMHDR, $tEnLink, $iCpMin, $iCpMax, $tMsgFilter
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
        Case $g_hRichEdit
            Select
                Case $iCode = $EN_LINK
                    $tMsgFilter = DllStructCreate($tMsgFilter, $lParam)
                    If DllStructGetData($tMsgFilter, "msg") = $WM_LBUTTONUP Then
                        $tEnLink = DllStructCreate($tagENLINK, $lParam)
                        $iCpMin = DllStructGetData($tEnLink, "cpMin")
                        $iCpMax = DllStructGetData($tEnLink, "cpMax")
                        MsgBox($MB_SYSTEMMODAL, "", "Rufen Sie Ihren Web-Browser hier auf, mit der URL " & _
                                _GUICtrlRichEdit_GetTextInRange($g_hRichEdit, $iCpMin, $iCpMax))
                    EndIf
            EndSelect
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY