;https://autoit.de/index.php/Thread/22579-Dropbox-f%C3%BCr-Links-aus-Browsern/?postID=185846#post185846
#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


Local $hGui, $iMsg
$hGui = GUICreate("Dropbox", 150, 150, -1, -1, BitOR($WS_SIZEBOX, $WS_BORDER), BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW))
GUICtrlSetState(-1, $GUI_ONTOP)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 0, 0, 150, 150, -1)
GUISetState()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
_GUICtrlRichEdit_SetEventMask($hRichEdit, $ENM_SELCHANGE)
While True
	$iMsg = GUIGetMsg()
	Select
		Case $iMsg = $GUI_EVENT_CLOSE
			_GUICtrlRichEdit_Destroy($hRichEdit)
			GUIDelete()
			Exit
	EndSelect
WEnd

Func WM_NOTIFY($hWnd, $iMsg, $iWparam, $iLparam)
	#forceref $hWnd, $iMsg, $iWparam
	Local $hWndFrom, $iCode, $tNMHDR, $tEnLink, $cpMin, $cpMax, $tMsgFilter
	$tNMHDR = DllStructCreate($tagNMHDR, $iLparam)
	$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
	$iCode = DllStructGetData($tNMHDR, "Code")
	Switch $hWndFrom
		Case $hRichEdit
			Select
				Case $iCode = $EN_SELCHANGE
					Checklink()
			EndSelect
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY


Func Checklink()
	Local $sURL, $arrValidURL
	$sURL = _GUICtrlRichEdit_GetText($hRichEdit)
	$arrValidURL = StringRegExp($sURL, "(?s)((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)", 2)

	;#comments-start
	_GUICtrlRichEdit_GetSelText($hRichEdit)
	_GUICtrlRichEdit_SetText($hRichEdit, "")
	If UBound($arrValidURL) > 0 Then
		;// Gueltige URL ok, mach irgendwas damit
		ConsoleWrite($arrValidURL[0] & @CRLF)
		;//
	EndIf
	;#comments-end
EndFunc   ;==>Checklink
