t0nZ Posted April 19, 2021 Share Posted April 19, 2021 I inserted a logo here: in this way: ; Syntax: CreateLinkLabel ( $_iTop, $_sCaption, $_sUrlOrMailTo ) CreateLinkLabel(100, "support@info.com", "mailto:support@info.com?subject=Something") CreateLinkLabel(125, "even much better support", "mailto:example@info.com?subject=Something") GUICtrlCreatePic("C:\temp\gfx\autoit.jpg",$iCtrls_Left + 10, 145, $iCtrls_Width -20 ,130) ;img here CreateLinkLabel(280, "German AutoIt Forum", "https://autoit.de/board-list/") CreateLinkLabel(300, "English AutoIt Forum", "https://www.autoitscript.com/forum/") Link to comment Share on other sites More sharing options...
Professor_Bernd Posted April 19, 2021 Author Share Posted April 19, 2021 Nice idea! Thanks for the code snippet. Is there actually a way to display images in the RichEdit that are in the RTF file? I had tried this briefly, but the RichEdit did not display the image of the RTF file. Is there maybe an (ex)style to display images? Link to comment Share on other sites More sharing options...
UEZ Posted April 19, 2021 Share Posted April 19, 2021 Here we go: expandcollapse popup; #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7 ; = Info =========================================================================================== ; Title : AboutDialog.au3 ; -------------------------------------------------------------------------------------------------- ; ; Version (vnots) : 0.0.12.6 ; Date : 2021-04-12 ; Author(s) : Professor Bernd ; ; Requirements : ; Language : ; Description : About-Dialog mit Kontaktmöglichkeiten und Danksagungen. ; : About dialog with contact options and credits. ; ================================================================================================== ; ============================================================================== ; ------------------------------------------------------------------------------ ; ; Anpassen des About Dialogs. / Customize the About dialog. ; ; Zum Anpassen des About Dialogs können die Bereiche benutzt werden, die mit ; Doppellinien gekennzeichnet sind, wie die über und unter diesem Hinweis. ; ; To customize the About dialog, you can use the areas marked with double ; lines, like the ones above and below this note. ; ------------------------------------------------------------------------------ ; ============================================================================== #NoTrayIcon #include <File.au3> #include <FontConstants.au3> #include <GUIConstantsEx.au3> #include <GuiRichEdit.au3> #include <MsgBoxConstants.au3> #include <StaticConstants.au3> #include <WinAPIGdi.au3> #include <WindowsConstants.au3> ; General settings. ; ============================================================================== ; ------------------------------------------------------------------------------ ; Constants for captions and texts Global Const $sGuiTitle = "About 'AboutDialog'" Global Const $sPathRTF = _PathFull(".\About.rtf", @ScriptDir) ; Relative paths must NOT start with "\"! Global Const $sVersionNum = "Version 1.0" ; Three of the dimensions of the additional controls. Only "Top" is set individually for each control. Global Const $iCtrls_Left = 455 Global Const $iCtrls_Width = 180 Global Const $iCtrls_Height = 20 ; BackColor for GUI and controls. Global $iBackColor = 0xC0C0C0 ; medium light gray 0xC0C0C0 ; Visited Color for LinkLabels. Global Const $iLinkVisitedColor = 0xAC00A9 ; RichEdit with or without borders. Global $bRichEditFrameless = True ; ------------------------------------------------------------------------------ ; ============================================================================== ; Wenn die RTF-Datei nicht existiert, eine Meldung zeigen und abbrechen. ; If the RTF file does not exist, show a message and abort. If Not FileExists($sPathRTF) Then MsgBox($MB_SYSTEMMODAL + $MB_ICONINFORMATION, $sGuiTitle, "File does not exist: " & @CRLF & @CRLF & $sPathRTF) Exit EndIf ; Global variables. Global $g_hParent ; Used e.g. in OnAutoItExit(). Global $g_hGui Global $g_hRichEdit Global $g_hUser32DLL = DllOpen("user32.dll") Global $aLinkLabels[0][2] ; Caret verstecken, wenn das RichEdit mit dem Scrollbalken gescrollt wird. ; Hide caret when the RichEdit is scrolled with the scrollbar. GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") ; Klickbare Links im RichEdit ermöglichen. Wichtig: Die Links müssen beim Erstellen der RTF-Datei als Links eingerichtet werden! ; Enable clickable links in RichEdit. Important: The links must be set up as links when creating the RTF file! GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") OnAutoItExitRegister('OnAutoItExit') Main_Func() ; Clean up. DllClose($g_hUser32DLL) ; ============================================================================== ; Main_Func ; ; Main function. ;-) ; ------------------------------------------------------------------------------ Func Main_Func() Local $iMsg, $idx Local $bHotkeyForTabIsSet = False $g_hParent = WinGetHandle("[active]") ; Get parent window. ; Code nur ausführen, wenn das Handle zu einem PSPad-Fenster gehört. ; Execute code only if the handle belongs to a PSPad window. ; If _WinAPI_IsClassName($g_hParent, "TfPSPad") Then ; <= Uncomment if needed and insert the desired window class. ; Parent-Fenster disablen. (Wird in "OnAutoItExit()" wieder enabled!) ; Achtung: Parent-Fenster bleibt unbenutzbar, wenn nicht wieder enabled wird! ; ; Disable parent window. (Will be enabled again in "OnAutoItExit()"!) ; => Attention: Parent window remains unusable, if not enabled again! <= WinSetState($g_hParent, "", @SW_DISABLE) ; Disable parent window. ; GUISetState(@SW_DISABLE, $g_hParent) ; Disable parent window for own AutoIt GUIs. ; GUI - Die GUI ist modal zum Parent-Fenster, hat kein TrayIcon und keinen ; Taskbar-Eintrag. (Wenn hParent verwendet wird, ist die GUI NICHT topmost!) ; ; GUI - The GUI is modal to the parent window, has no tray icon and no ; taskbar entry. (If hParent is used, the GUI is NOT topmost!) $g_hGui = GUICreate($sGuiTitle, 640, 360, -1, -1, BitOR($WS_CAPTION, $WS_POPUPWINDOW), -1, $g_hParent) GUISetBkColor($iBackColor, $g_hGui) ; $g_hRichEdit = _GUICtrlRichEdit_Create($g_hGui, "", 10, 10, 440, 340, _ ; BitOR($ES_MULTILINE, $WS_HSCROLL, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY), $WS_EX_TRANSPARENT) If $bRichEditFrameless = False Then ; Create the RichEdit with borders. $g_hRichEdit = _GUICtrlRichEdit_Create($g_hGui, "", 10, 10, 440, 340, BitOR($ES_MULTILINE, $WS_HSCROLL, $WS_VSCROLL, $ES_READONLY)) Else ; Create the RichEdit without borders. $g_hRichEdit = _GUICtrlRichEdit_Create($g_hGui, "", 10, 10, 440, 340, BitOR($ES_MULTILINE, $WS_HSCROLL, $WS_VSCROLL, $ES_READONLY), 0) EndIf ; Den Wert für die Hintergrundfarbe für das RichEdit von RGB zu BGR konvertieren. ; Convert the background color value for the RichEdit from RGB to BGR. _GUICtrlRichEdit_SetBkColor($g_hRichEdit, _WinAPI_SwitchColor($iBackColor)) ; Set settings that allow RichEdit to recognize links and make them clickable. _GUICtrlRichEdit_AutoDetectURL($g_hRichEdit, True) _GUICtrlRichEdit_SetEventMask($g_hRichEdit, $ENM_LINK) ; Read RTF file and display it in RichEdit. _GUICtrlRichEdit_SetText($g_hRichEdit, FileRead($sPathRTF)) Local $Image_AU3 = StringMid(_Autoit_Logo(), 31) Local $binRtf = "{\rtf1{\pict\dibitmap\picw3969\pich3916\picwgoal2250\pichgoal2220 " & $Image_AU3 & "}}" _GUICtrlRichEdit_AppendText($g_hRichEdit, $binRtf) _GUICtrlRichEdit_ScrollLines($g_hRichEdit, -1000) ; Creating the additional controls (labels and buttons). ; ========================================================================== ; -------------------------------------------------------------------------- ; Die zusätzlichen Conrols (labels und buttons) werden alle auf der rechten Seite ; des Dialog angezeigt und haben alle die gleichen Maße für "left", "width und ; "hight" - nur der Wert für "Top" wird für jedes Control individuell eingestellt. ; The additional conrols (labels and buttons) are all displayed on the right side ; of the dialog and all have the same dimensions for "left", "width" and "height" ; - only the value for "top" is set individually for each control. Local $lblVersionNum = GUICtrlCreateLabel($sVersionNum, $iCtrls_Left, 20, $iCtrls_Width, $iCtrls_Height, $SS_CENTER) GUICtrlSetFont($lblVersionNum, 10, $FW_BOLD, $GUI_FONTNORMAL, "Segoe UI") ; GUICtrlSetBkColor($lblVersionNum, 0xFFFF00) ; Show background in color for debugging. Local $btnVersInfo = GUICtrlCreateButton("show versions info", $iCtrls_Left, 40, $iCtrls_Width) ; Label for the headline of LinkLabel-1. GUICtrlCreateLabel("Support", $iCtrls_Left, 80, $iCtrls_Width, $iCtrls_Height, $SS_CENTER) ; Syntax: CreateLinkLabel ( $_iTop, $_sCaption, $_sUrlOrMailTo ) CreateLinkLabel(100, "support@info.com", "mailto:support@info.com?subject=Something") CreateLinkLabel(125, "even much better support", "mailto:example@info.com?subject=Something") CreateLinkLabel(220, "German AutoIt Forum", "https://autoit.de/board-list/") CreateLinkLabel(240, "English AutoIt Forum", "https://www.autoitscript.com/forum/") ; "Ok" button to close the about dialog. Local $btnOK = GUICtrlCreateButton("OK", $iCtrls_Left, 325, $iCtrls_Width) ; -------------------------------------------------------------------------- ; ========================================================================== GUISetState(@SW_SHOW) DllCall($g_hUser32DLL, "int", "HideCaret", "hwnd", $g_hRichEdit) ; <--- this hides caret initially While True $iMsg = GUIGetMsg() ; Insert click events for buttons and labels - but NOT for LinkLabels! ; ======================================================================== ; ------------------------------------------------------------------------ Switch $iMsg Case $GUI_EVENT_CLOSE, $btnOK _GUICtrlRichEdit_Destroy($g_hRichEdit) ; needed unless script crashes ; GUIDelete() ; is OK too ExitLoop ; So that the script can execute commands, e.g. to clean up. ("DllClose()", ...) Case $btnVersInfo MsgBox($MB_SYSTEMMODAL + $MB_ICONINFORMATION,"Version info", _ $sVersionNum & @CRLF & @CRLF & "version info example") EndSwitch ; ------------------------------------------------------------------------ ; ======================================================================== ; LinkLabel: detect click events. $idx = -1 For $i = 0 To UBound($aLinkLabels) - 1 If $aLinkLabels[$i][0] = $iMsg Then $idx = $i ExitLoop EndIf Next ; Execute commands for LinkLabel clicks. If $idx > -1 Then ShellExecute($aLinkLabels[$idx][1]) GUICtrlSetColor($iMsg, $iLinkVisitedColor) EndIf ; RichEdit: Hide caret and catch tab key. If IsFocused($g_hGui, $g_hRichEdit) Then ; Hiding the caret of the RichEdit. ; If _IsPressed("01", $g_hUser32DLL) Or _IsPressed("02", $g_hUser32DLL) Then ; <= "02": Does NOT work for the right mouse button! DllCall($g_hUser32DLL, "int", "HideCaret", "hwnd", $g_hRichEdit) ; <--- this hides caret ; EndIf ; Wenn man den Tab-Key drückt, wird der gesamte Text markiert und ans Ende ; gescrollt. Um das zu verhindern, wird der Tab-Key per "HotKeySet()" abgefangen. ; Im Moment ist die Funktion für HotKeySet() eine Dummy-Funktion. 2021-04-08. ; ; If you press the tab key, the whole text will be selected and scrolled ; to the end. To prevent this, the tab key is intercepted by "HotKeySet()". ; At the moment the function "TabPress()" is a dummy function. 2021-04-08. If $bHotkeyForTabIsSet = False Then $bHotkeyForTabIsSet = True HotKeySet("{TAB}", "TabPress") EndIf Else If $bHotkeyForTabIsSet = True Then $bHotkeyForTabIsSet = False HotKeySet("{TAB}") EndIf EndIf ; If IsFocused($g_hGui, $g_hRichEdit) WEnd ; EndIf ; If _WinAPI_IsClassName($g_hParent, "TfPSPad") ; <= Uncomment if needed. EndFunc ;==>Main_Func ; ============================================================================== ; CreateLinkLabel ; ; Routine zum Erstellen der LinkLabels. ; ; Routine to create the LinkLabels. ; ------------------------------------------------------------------------------ Func CreateLinkLabel($_iTop, $_sCaption, $_sUrlOrMailTo) ReDim $aLinkLabels[UBound($aLinkLabels) + 1][2] $aLinkLabels[UBound($aLinkLabels) - 1][0] = GUICtrlCreateLabel($_sCaption, $iCtrls_Left, $_iTop, $iCtrls_Width, $iCtrls_Height, $SS_CENTER) $aLinkLabels[UBound($aLinkLabels) - 1][1] = $_sUrlOrMailTo GUICtrlSetFont(-1, -1, -1, $GUI_FONTUNDER) ; underlined GUICtrlSetColor(-1, 0x0000ff) ; blue GUICtrlSetCursor(-1, 0) ; hand cursor EndFunc ;==>CreateLinkLabel ; ============================================================================== ; IsFocused ; ; Routine zum Ermitelln, ob ein bestimmtes Control den Fokus besitzt. ; ; Routine to determine if a certain control has the focus. ; ; Autor: MrCreatoR, 2007-10-01. ; https://www.autoitscript.com/forum/topic/54322-edit-control-tab-key/?do=findComment&comment=411666 ; ------------------------------------------------------------------------------ Func IsFocused($hWnd, $nCID) Return ControlGetHandle($hWnd, '', $nCID) = ControlGetHandle($hWnd, '', ControlGetFocus($hWnd)) EndFunc ;==>IsFocused ; ============================================================================== ; OnAutoItExit ; ; Routine die aufgerufen werden soll, wenn das Script beendet wird. ; Sie wurde mit "OnAutoItExitRegister('OnAutoItExit')" registriert. ; ; Routine that should be called when the script is finished. ; It was registered with "OnAutoItExitRegister('OnAutoItExit')". ; ------------------------------------------------------------------------------ Func OnAutoItExit() WinSetState($g_hParent, "", @SW_ENABLE) ; Important! Otherwise Parent window is unusable! EndFunc ; ==> OnAutoItExit ; ============================================================================== ; TabPress ; ; Wenn man den Tab-Key drückt, wird der gesamte Text markiert und ans Ende ; gescrollt. Um das zu verhindern, wird der Tab-Key per "HotKeySet()" abgefangen. ; Im Moment ist die Funktion "TabPress()" eine Dummy-Funktion. 2021-04-08. ; ; If you press the tab key, the whole text will be selected and scrolled to the ; end. To prevent this, the tab key is intercepted by "HotKeySet()". At the ; moment the function "TabPress()" is a dummy function. 2021-04-08. ; ; Autor: MrCreatoR, 2007-10-01. ; https://www.autoitscript.com/forum/topic/54322-edit-control-tab-key/?do=findComment&comment=411666 ; ------------------------------------------------------------------------------ Func TabPress() ; Send("^{TAB}") ;This is the tip from Siao - Thanks! EndFunc ;==>TabPress ; ============================================================================== ; WM_COMMAND ; ; Wenn das RichEdit mit dem Scrollbalken gescrollt wird, wird das Caret sichtbar, solange ; der Scrollbalken festgehalten wird. Diese Funktion versteckt das Caret beim Scrollen ; mit dem Scrollbalken. Trotzdem blitzt das Caret beim Scrollen manchmal ein wenig auf. ; ; When the RichEdit is scrolled with the scrollbar, the caret becomes visible as long as ; the scrollbar is held. This function hides the caret when scrolling with the scrollbar. ; Nevertheless, the caret sometimes flashes a little when scrolling. ; ; Tip from pixelsearch, 2021-04-12. ; https://www.autoitscript.com/forum/topic/205604-about-dialog-with-credits-area/?do=findComment&comment=1479582 ; ------------------------------------------------------------------------------ Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam If $lParam = $g_hRichEdit Then DllCall($g_hUser32DLL, 'int', 'HideCaret', 'hwnd', $g_hRichEdit) Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND ; ============================================================================== ; WM_NOTIFY ; ; Zum Ermöglichen von klickbare Links im RichEdit. ; Wichtig: Die Links müssen beim Erstellen der RTF-Datei als Links eingerichtet werden! ; ; To enable clickable links in RichEdit. ; Important: The links must be set up as links when creating the RTF file! ; ; From a demo by InunoTaishou, 2016-02-26. ; https://www.autoitscript.com/forum/topic/180900-richedit-hyperlinks-friendly/ ; ------------------------------------------------------------------------------ Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $tEnLink = DllStructCreate($tagENLINK, $lParam) Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam) Local $tMsgFilter = DllStructCreate($tagMSGFILTER, $lParam) Switch (DllStructGetData($tNMHDR, "hWndFrom")) Case $g_hRichEdit Switch (DllStructGetData($tNMHDR, "Code")) Case $EN_LINK If DllStructGetData($tMsgFilter, "msg") = $WM_LBUTTONUP Then ShellExecute(_GUICtrlRichEdit_GetTextInRange($g_hRichEdit, DllStructGetData($tEnLink, "cpMin"), DllStructGetData($tEnLink, "cpMax"))) EndIf EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2020-06-05 Func _Autoit_Logo($bSaveBinary = False, $sSavePath = @ScriptDir) Local $Autoit_Logo $Autoit_Logo &= 'NrsgQk0WXAACADYEqAAAKABwlgAYlAAYmAEACAPAAAASCwMMAQUAFBYUAKKOhAAAfFI8AItyZAAA08rEAJ2epAAAdHR0AFRWXAAAp6KcADg2NAAAjY6MAIRVRAAAxLasAEVCRAAArIJsAKR+dAAArHJUAIRiXAAAuJaMAGRGNAAAmYJ0AJNiTAAAfF5MAMWqpAAAwL7EAFQ4LAQApABbNCYcAGEAUkwAoZqUAGQAZmQAz6KMAMQAjnQA5ObkALNBACvLwrwAnAA7qwCGdABnSkQAhBCChABxAC+cemwAAJWWnAAxLCwAANmvnACRenQAALy6vACKalwAAKp6ZADJmoQAANzc3ABMPjQAAKiRjAC0npwAAIJybADNnowAAMqonACkioQEAFeAJ2xqbAC0ALK0AL+JdACEAG5sAJ1tXAC2AHxkAIpaRADDBYAVbIBfW0A0AMEQlYQAmIAZ1NLUAABtYFwAu3pcAACkakwAeVpMQAA9OjwAzICBxACCZACUalQAvACyrACEXlQAKAAhHAC3pqQAhEGATZWWlAC0gIuIAGNUAMyypAA8ACkkANSqlACsAKysAKmIfABGADIsAIltZACIAF1MAGRCNABIADYsAMTGxABkAFpUAJycnADKAKOUAJaGhACTAYCvmXZsAFROVAAAtI58AHJSRBgAnHKARYAzXF5cAAC8opQAlJKUBAC2gKeRgnwAVABUVAB8bmQAxACWfAD09vQAPAHAGc2+vACnfWwEAKrAZ0xMTABsAcA9c048ALS2tAAATEZMAHNfVIAA7O7sAIB+wDsA1tQAfGZcAOQA4uQAzr60AMQAimwA/P78ALwFwBDcwDHVqpwAJAAaHAB8dnwApAHAG1dGPAAoJiQAAMCQfABsVlQAAEA+PACia1QAACQiJABBLiQAALmelACMiowEAHLANcfGzACMAn7AMG50AMzMzAQAp8AxxK6sAKQBwDfs6uwAnWZUAACHhowA3t7kQAC8' $Autoit_Logo &= 'inwAnMAxtwB+bABuSTwAVABBPAC/hGwAfEB8fAC0dVzATDwAAEU4NACvkIQAAJl0ZABkYmQAALiknAD8+vwAAPTy9AB4aGQhwCkUAKyiwGN2dAAAnJKMAFRGRJQAtMCstMCnxJrAAwA6NACsm5QAvBCrpADUwJ20h3QAAHRORAB8VkwQADwuLMCcdACUAGxcANSchACMBHRswHm0AJReRBgAzJbAysC7zLq0QAA0IhwAlMAtvFXAMbTALJTALJTAvayBwJ/UppQAfFTAaxCFfABkwEZcTkxAAMS5tAB8wFtkAEc8ADQoJADMAJJ8AExAPACsEG5UAMjAkaSmrBAAOjI0wGqUANZQ1twA1MCEnMCAfFXAbHzAbMTAU3zAUqRBwDVcWlwAPMAwlFXANkXANqrANYZgN7sBYBuUZkwAya6kgADEwsQAqXbgI3FgGszGvGAs4D9gHIUVYEtzYAKc4CuIiIiAs7O0tLSBgYAA3nZgACABCwDAArOgBOEEhnYBBCIFtHZ2s6MC/QQAs2IHoAJIAmMChAgoBl/jAsUKwAFjB0gHAOESdoiBITICAIUhhQMBCQwAIbRABrN2gaGh6AOFoYG0KBOzYwi4hYF2CBXpBaELoWMPyLN2oeEChaHBCuIPGcIEIYHHCeMSIYOdAPeJiYn3nUdHDJ1iIQEKAPedMqESdqASITKnA/dinQadAAtHHLQhR2KJEIlinYVkDYiztJihMoOpCUAGgzJCETizgTLgDcIKIwWFnQ1hB0dmB+MSoWIuW4BkcJiYcFtkAAAIcAqYDABwbYMhgrSgDJ33fm1VogMAcGRbW1t+iWIig6cQnTztQAhkiQyDoSICwBiFR2J+g2EChAjtW1s8LmAPAIF2s4WJW2QKIJgKfp2F4hK092HBAZjt9zIHJuESMgCT/SerBnw78QD9c3sGBgZ8fA474HigAAUADasyoQCBIYOJq3t7cwKxYQM7sXN7e3wQZFs8icYjtG4noSAI' $Autoit_Logo &= 'HvF+R2MgdkAiQJhze24eOwIGOwA7bnvxsWRtWwCJnTKBdgoGq0AGOx6T7WLjEjJC7qEPbm4ug+sSiADtmJ2d9y5bVcDxCg1kfi4AAIEAAn4BADw8W21wewBHIYGhnXx7qxBtWzx+4wM8W+0ABg2xZFsunSEStOIIgQagKVvteww8neISIDUKewbtA+UFQQZbbavxbmQEW36gNwo8Yi48IG1zZPcyggcyqyCdiTxtCu8Ss3wCLkBBiTyrcyd7yH73nQMAYvdBQ+EHADyFgYFic5hbDH4uwkqkA35bBg3EcFt1G4EGR2EedAngs7QyHjtACfcCAAAhkA+rDQptgAmYPCpHoCPudwlHwAdwboZ+tAR2CYiB7keBCQBbbgYeBomdRzCDgzKDISuRCTwGAP0ygbQyc1suM5ArMAtHg8M1kDI8cIiTZDw0IoEGg7EG4XQJdjKxClQM9QIRAwBifmRMmFsuRxwnftEDeAngAH5VboMwIHwJiImrMoWACWBt8Zh7J1AgAQB+Ip1xCS5V7hAjdqse7cAAAQAQHPAr9zKFAIUyR/c8q25bF7AFwQRyCYl0CbO0BtIKEjj3iZEEPAAAMC4ChZAJLlUNZFtidKs8fAkyIDJ/CZEcJwJbgAZifgoNcHwAq5hVZGRVeyfLgRwQEImgLYWxYBhABgBusatw7e3tZECYfAYyhTJwDHsmZEQhewmJOzINPB4Ybphk8AIhAwaxYpAhhYNioAxtiX8JQ38JcwmIdm6dgAb3ADwG7u08YjKhCKGJc9AO94l+sSJVwDuzW1VwCYlbRPFtljyDsYPhAjsmJ8QEewmx91AgLmREe20YSaEebaEMW+DxZH4GW38JfwmEBiJ8khxbc6uRKUdzIlsSDwqxg3EG/YnBUC2Jq6tihdM3AADkbe3BBP07dgngAHQJCLOFfIAxiTx77QuIBqBEO3AFYn4GBo48fwl/CXUJiO1VkBwAnS5kDVVbLmKEBpjhEi5te2IiaMQn' $Autoit_Logo &= 'YoAELm5kBEdyDBvBBNAnfoNB+RKz9wqxgGGJZHOJBkEsCiMDR38Jfwl3CbN89yIm/UB77Vv9sX6yOG7S7VMtJ51yCe3EN8IEgidBBmTuPJ0hewkgIXazW2SwN4mrxgbAOncciLMysETgCh7ueRzhAX8JeQmIobGCgyImsTtkDW2xNLguJ3xRHH8JewmFwHgsdqF2CeAAWzEeiScofFuJEFl2BQCBncIGQUxk7i4Gdi9AaRizdoNwQnAJ7n5HHiGgBLOAeAnFQlt7CcJwsEeJLu17wQ9/CZF7CWIyIQAAMjuxEABbe1v3g4UhPESYg/Ao7fHtYWeFg+EBAACFMpiYYtEwBG739TiJgyGhobghIWJwVfBLogShUYqJfAmz/cJCiWSrgFpg94k8c1tlGHIJfgt/CXAJW0KInfexYokRO3tt8WJ+O52QBtQ87oBofhdiW7BkED6IqyeddVWJnYMADPydPHEUcAlwLXFYopJ5CTiItLHBQiCHYQl+Bg6rVkH/EncJiWJiiSB+flvuiSCNW3sTQFkwcXsucWdbc7GGVeAAAwBb/fFk0w6QfjL9fvEi7mRQAkmxA2R8MTZVcxGHfop+kX2zewmIgzvhUvECaC5kc6SBeQkyLncJiTA37h5ghG5u7vFOIIk8DXPuAAB8BnQ7iYEJPBCI8QAAAHMQeztbLuEHcDuDCCEKLnIJmG4GBiA7sW5uc3EJiWQ6k7IDq7CAYBp7CYhk/FWFICaRXoNedgmABH8JicE1fB6QZm3t7fFOBvew4QAAVXMGewoy9yGmiX4inQAA7TwtICv3ESiQR3BxCX5uCGTu/XAU7e1qtYjtfvcAAC7tZAAAAHDxmFuJRyF2CAAAiAkAs3z3hQAyg52dYi47VQiFgbMFWCedMkeAYomxW50hdgUkBDInAE73ZLEusSBkR0edYgYA9/cAiX5t8Zh7Cp14gzKDAzAA6AEMAKr3AFtzLqF2s3AugQBOfm5tiXMuDjuAZA1t' $Autoit_Logo &= 'fp0ytAyXAIihbkeFhTJHMJ1VOzIHlgGXg0c4Yh4uCBMAlwAmWzvgnUfu9zIAHQYAAH4Aie17WzsGYjINAACDhwwADJjunYEIdrOIgEsynfceIH6DnW5HjR0ucCBziZ0ygY1LiGKCsYAnnWTuMrQHS4SI/YFLnXydIQcKgYNLPAYyoUceAS4DBwCALvdVO4NbbhCrLkeDhgxHnS7Q/e5kIYBKiIFLgAcyOwAnfgYLHYEdqycMMqGOlwA4BgarO0aYAWsHAAoGqwAAcxIyCAWFboEEfAq0MHazfjuBAgkABgaA8Vu0dp2YBsASgUQEfDurPLSzww+UZHxBBHuAE7NwBQhBhw4Gk512s88liMyIIYlwAgC0IQIASQXcs6GCBEIKggKFCQAEBryIdoUGQFpHD4gTs0ICv8wOQGXRJT8APwD9JbMCAHx2doBkAgB/JP8SPRJ2wHa0tIGBoQM6AADgoaGBtLQhFJ8H/xLD/xJzErSBoSFAnQBo0wCQI5SdneFvIaATfxMv/xJ/BK4SgBIhoKpi94Aufltbbe3tIrUA7e1tW1s8LonyYgCqIaFAEx8J/xIfAImIEqGFIL1+W22gxhiY/SdCe6J9J/2YAApwVWTtW373/WAToUuNHwD/ErkSICWBEgBkVf2rfDseHpAeOzt8AAA7O2EBBaABBqATClVkbTw9gLYhPxP/Eh8AohKFgyJigBKYBjtBEKv9JpggJAMACgphJwZ8EB6xHnxhE2Rtfjz3RwC3PxP/Er8SR/cEPO2BEgar/QpwTTAlbTAlBABtbWAmcAQK/bAJsbF8BifwmHDtW0ATnwkPAA8AB38JDwAEAHa0IYNikDxkqzuAEphwIAkAWzw8fi4uLokDAwCQAH5+PFtb7YBkVQonqzuxogv6ZDCLhd8cDwB/CX8JDwAB0i4hMmI8VQYeqAaCmOAjWyAJGLNBCwYAg4ouwAntZHD9/6AJQBOfCQ8ADwB/CQ8AJRwwMp0uZFAJkAZt' $Autoit_Logo &= 'W3h+LokwCSgJ2gnQQzxQWwVVmJAJOzETPD/AHI8JDwB/CQ8AbAm0IQBH9+2rOwb9cGJkIUr3YpoPCQcAmgGCTe1kmKt8sXyAq/1wbS5HhV8mHw8AfwkPAJolwBJb/R61UAkFUAn3jxIPAGIAHQcATjET0ChkPGIygR+Wrg8ADwB/Cc8SdqGD4PdknHwnshJfCQ8ABaQJiTATVf0GsR7Aq/1VW/eDvxwPAAd/CQ8ANxydPCc7qw8QLF8JDwA9E+1wJ3zxIRPtfp2/HA8AfwkPACFkCYWdWwbAEu1bJ1AJbglAEVAiAQBQ28L3nwma94k8QVjwLz+wHI8JDwB/CQ8AZQlkO2AGmGRbfgB5KwlQAB3YA/Pc3NxLAuxAANzcEfPJRpQI200C9yETqzuyHB9AJo8JDwB/CW8JtDJiGAoeq8MS6QZ+HS3A3EtLS+xLIgkGAEDs3F7YU4kcFTz0bVWxHCePCQ8AfwkPAMHSEmL9O6twUHhnCdkAStXJQQk1CVcCAMcJOPNyWzoMUX7gLwYnPnCACa8cDwB/CW8Jq3wG/TAcB0tiYn5G3IL+RAlXV/PzLwcAhPPz1Qle1SOatgkGmrAcQSacqwpt94+PCQ8Afwl8SyGdgmQJcVcJ2Nz+YAlBCTEJXmTTsAcAXsexCYIJSxheHSNXMoAJBQqNAzBWGxPKtxKIGAAAABbQdqGdACd8mGRbLvdiAp0CAGL3iQHc/gD+S0tL3FdX85Avx9OwAABoKQUAAmgBHF7HL/NX3ADc3EtLXgj3YgEEcJ1iiTztcKsAsZyrcFudhXYGsxmQHpezoYOYfKL9CpYI8ygBltwFlOgpKXkAAPIDAAAJAE4zAU2FTC3KBR0DTAaxgAYnVVudIXa5S2CztDJVOwVLAQH3EIly/msASxZXV/uESgNJJQUAhE0Am4NMAGAUHfeETGIBTAoGbsAG/WQug4EgmJVLQLO0hW07J0dLYhCJW/NrgSVRV/OUx8eCSg6AJMLS' $Autoit_Logo &= 'AAAeagEAAQICJ0BNsLDHIi8CJktn20ZbiTwABZgGbqv9ZIkMMrQfJtUldqGJHjCrVVt+wIgBFveJRNVLgiVX0C9AJTBDQiUAJWqRkUUFAJGKkQAnwkImsLDTgUyAS0v+L9Ej90VMAFtk/TuxqwptCGKFtPUls4GdBggGcG2BJZpimpoA9y4B/mtrKMSYFlfQAktAJcLCCiXjxSaAJiXyDkEmgUwAJgjcbYkFJi5bZCfkHjvAvkehHkzTJQCXQJh8mO08iUBLmgCaYvcuZvxra2hrxF+AJWwBS0AlwqKRQyUxMb0EADFFJq/ATAITISZALB0DE2LACABbcKtuBidkLsYyXkzzEnahW2BewhJhAAD3fmf84BLEEvhNgiWlohKAEkI3BQBCQkJDE5HSwsIDEy8EVxYCEy6JmpqdQJpiYhh+bWBfqxiYbWJ+cvISs4FHDnyAS2Be4SX3LnL8BPzDxBL4MHkOvBTCPaMSvaARHx9l/QQAH0ATJhNgOUQ5gHgAEw5i4CWBckBMHqtwPAZHHSbyEnaFmJwK5u1iXqEvRvzAJdMSoBJe1gYAQhMiEwMT+CIm/sD+a0ttLvcCJiA5wlUgOf1k94UcJvESGLOBLkCEpDj3fuUAa6j8w9dfX9CYxz/4gDjEEjExoRJd4hFaAgAjEwMTkQITKckAE/NXACZr3GQvoAkbIDlgcjxdX/ESdoUGA4BmJAl+t2uoffxU10vBEp7AErvBEpHzwxJiJVqLBABCE0EmBRMhYEw/x9BXAIxrXow8LgB7JDmxfCceJkHwErO0PDuYpTguANHNqKj8a0tf5FdPwBIwecASQV7GEh2gEiwDACETCRPCwg4EeTAAE1dfxGtr8Pxnfi4iTGFyQF8+TIHwEnYyBqsqW6Q4gDwtqKioa9eAS1I/gUu7wlIczEQcWh5aVQmjCSEThQmlwrwDIiYAE/5r/GtVfvEVBe2jHsA+DxN/CQsAMLRbO5gSVVEcVais3ajCJeIS' $Autoit_Logo &= 'p+ASIOMSF28JhQlxCTEAEz3CuwB5MPhsx9BfS/Br/Pzcs2OiLwITb3IPfwlqHNAl5RIuW0sTvt3iEmYJ5hJQHEccioYJEQUTkZGlggmwP9CIV1/XgAktPH6kL3EAE3z97X+FfwlqHIkMO6PSJXBePHITEwLd4BIV0JQ/njB15RLM7BKKAgBEJgETH4g3McwOE/zVPDMYgokAE7GrVS4yX3IjfwlIQv0GVeUSbWsEExPhEhXQP56e8DBAu6p/CX8JcgmIHIECE/x9qC9bPAUTwP0eBphbna9CfwkRdwmDO/3lElu4E6ATE33XQfMS+IMJ/1BCZS+IHFcJ8iUBOXMcdAkgw6iofbnWIXAGTh6vQn8JahxtBrBLYuKd4HoubfxgHHEJgAl7ACZyQrugcWJCISaRQjgPBgAjX2ByQo/Cwrx5BWMcV3Acfd3d3c0BABOanZ2a9zxkOoKAHH6PHH8JBgChq0yrZIEgYGM8m+AS3fAC1wsLkgmAVVB7wYQL4V5xcPQAAEJC6+sm69BxUABCQvAARUV4r69qEKKwq6F7UgnXAGt9qN2t3d1VEluQhZqdAA+YO3wPgBwfOX8JZRxHfJhtE+ASAACJItAl3ajXgQAAw8Nra9fEwFVBkL3TsCny0jCgakpcAACvAwA0NIQAr2EwASUU6P/VtAGFawD83d2tREREYDBgtVt+opiQL40e3P1kX4V/CWYcW1Ev0BYAnZ08Rt1gE6g2fWAJ0A4TcBjQe/5LAJnc815oDyXSgeEHZ2cUco7YBgAAjo4UZ2ctKckAyQNeXi+E3NwCgDEJJt2PRDO+RL4zgQmo7VsSD/c4fgUnHzl/CUlV/ScEZH5ynPdbhGATAEOoAtcZXZaWAFne3lnFd12uAK4z4Kk6mS9oCLCEtQUAfOnp6SQ2NkAAfHzhAEhIAEhjY9kc2jo6ALrg4K6uYXfFgN7e3hsbG97wEhBgcluJIqIuWwr4OwYKr1V/CcbZsF5jHAQuCFIv' $Autoit_Logo &= 'AgsZAHMAc+5usR4eOzsEfAYAAB6TgC9eAHs7Jyf9mAoKMHBwcFUEAKAAcAoACgqYmP39JycIq6ursQJ8fDs7AB6xbu5zkFJgQN1gYNxbPKEFmnIYIEw7/Z9Cfwl1CZ0D0DgyDZ08ZhNgYACo6gtBQVlzCoBk7Vs8PH4uAQAAPFtuus1eL3PwZFt+ifbhCgBCSgAAAImJiS4ufjxbAG1kcHyMYKioBeAE1YUcZIIeJ+3cYiF/CX8Jcglb0TjCBQRbtWEc1wtfFV8IUgZkoEedR0eDAIODR52JbXscEIRegDvQREeDMvgyMoUFAKAA4AAIAOICAp2Q4/2Qvn19qAVwDmYROaK3AJ2dYi5tmDurIGSJhXaIFAAAAAEKOHYKJ+0uYp0BAACJW/xgYN19ANdBXxX7qCtwADz3nTIyhYUyAQAAnS4Kk5nzXgAc/S6dgzKFIW0AAKEAAAIIoQEaAgCFAwQAAC5iPGQNWX0A19d93WBgtVsGLgFcAF0KfAZVLkIyJZe0q5jjAzl+AB1gYGCo6gtBANT7opQZ8e2JBp0AlgNqnX4Gk4CALy/aZPeDMgOOBwQAhkoITjJH91s7QFJ9CwvX14BLawRbPIIu91tVBgYQcDyDtKRLhatwBFuJghw8ZmBgEwCoAgtBFaKUlDCiG3w8hksATFvu4DrcL4DugQmAloWXB4AEDkuBYpiVqEFfkF8L16iAdAhbg0sAPGSrfApbR7Ris6NLgwZVgNgBAFsGNsFLwyXh4V+QCgyJRwMmwBuD92QN4BzcLxwGwASEcRMlQQAAg/ftTBmAJV8AQdeoE2BgCm0BQolifu0nO5hbhJ2B4yWzYqtkwyXAYm3cYGBDgJfDJWDhqAltYgGYw0BHAC6Y7/7cL/FwD0ByQpgSAMRWbt5BFQQVFcAlfUNgYC0MbRiCFwG+/W2doSHkJX6rZH4CNPftEmuCvQtfwSWenp4MXW5EcgEcMp08HgCTS1fce233Rx6DwcIGAMIH' $Autoit_Logo &= 'SHFHLv0AUtcV+6IVX18JwiVebQW+mHwn7dXmJW2A45rCDdWC44C9BBWUwCWsrOFSqwYuRHJBZ2Jte49LAFf+7m1+LomJYIn3iff3wACgAGIGgwQTwxKDiWQrYABfopSi9RVfC1EBctxtfuQScOASYpP/EuMS7aPkGS5VoFSK3cFxJOMSrEEr4W8BJjmJVQkmS1ePUHNubrEGAG6AAR4mYiFQJ2RzlsASlJQS++QS/u0EcjxVBjAnZGKhFYXsElWYucRxLrmACMKE4RIQ4BIwrGDxW2KYxWyrdwBr3FdXx7CwsAb4AQDgAMdXS67umJ2FISUTgQRSC+FTqeYSa+0FcirhEiH/EhHiEmQKW+JSnX4KBecS4eElSayeWTsCfouFrihRxzDCCD2R3wEAID3CQGBs/pNbgyUEoThVWJB9+6Bm4xLqQAr84tXjEmJ+ZP8S6hLDhCR+RsWqJKLjEklJDqKAhSc5AIDxHPNoIPKRRcg3AADIMYBFkXkvCZj3AHQBRQRibfFhFZQQgBDh4aL7FUHiJaz8ZP8S8RJw7xL74kth4BKsAivtR0xgX2SAe80DKVyRzAITgDFF0g9jq/fIJWCdPDvPX4F54iVB7+Ml6RL/Xu4lPOoS4UsBEwwZc4OFI25Hiat7AIQD/9KRzDHIgjHAJfLNbn5H4ogRhZxS16JhjOGUonz71PAl/xLvOOdL5xJJB8NCFUoAEbEc87B5AsKACcx1kfKwe4xtncUBgl4JRPuhFvVxCSR5CUd0CX9Vfwl4L1JHAAAu8HUJFXgJSTDUkGRiFl4BJHuS44IJAADyaDrCJbUBcDH0WRUSRhBhHHQJ8DjhBd9yCfBef2h/CQEAW3FCcgkf8ktyVXAJgQlyCUn+7gJ+BxOFg4kKDZkAL7B5PZE9wikM+R64FKABmLYLlI0BDZ5yCXRoS+08cwlxcEKYW0d/CX8JAQB+ZP1tcwn3ZPBe8HELBstwCQYTTj3COgaGLjIklBx+fA2A' $Autoit_Logo &= 'gAngvA4p3HvgTWYJsTg4xKLhcU9gL+A4ywtiAnEJzdV+cglxVQrPcI5/CX8JAABi/fBegQO4YmT+cAnyhAImVnEJgKogID15k1WQHBuRU9QacyCPMFUv4FVjOGihJzr4p2EJYRyUiWEv16hwCT5kiXMJwFtwBnB+Mv+XfwnHco7wcXIJndXNdI5xoUTh4XEJqj0ggAkvB2FfZiQgj0z83PMvDPPgQI92FKSDif3ATD95qqpAcAlRQsVhLwLxly1kYuIFAKu4BlWJ/6p/CXOh/fGEnYEDbfKXBTkBE6o9AgAYqmuxJybRQKsJ/Dj+/o8SRFYB0ApXMLS7qoAJVlBVYy/qcQkEmGRjD4ltmKtkjvf/vX8Jc7SYVTxyCfhHWydQBIEvACYSOUAG4XMJp64nidBTghySHAAH5I+pCWRi5iNDo9QdJhqnEAOqqkfjEuAlYhzdZG1zCS647f2rb0J/CYVCcAFfYwM5cAlDfQKALwImQOF1CT2qbExCCCAIBKlgk64rJxjCJUQnfpAGrj8wYgmqqtBLKWcc/mRiQkdgQqv9n+84fwmOQocvgRyUrEEZYZMJqqpLezWig3JwHCtuUbZ0hOF65Ff4MeMSqrtAQY5lHHRk4i7kOGSrCm8vfwkHORmFLwh0BCaAHErhQGVkBoeCCal8MaLGn2IGZPF8tjhi4/FrGsPxFQEAp6ee+8BxU1XwYP1kmuU47+N/CQcAZqGBtKIWW/2EHAETrARAp4QJqoeHqqr4MAmYkoVhCJEIZpnjegixvp5VHKenQDDFQmgC4SX8cO2yBWIvn1+0fwkHJoAvAyaJVRC+MaRoovgwBRMDANBMPuPyaOO+AwDzJgA6o+Qm0FYcYAn4P2YchGSgPEeDg4NhLyfvJZt/CQkmCgEmwQNktRM5zaBV4XAJiwn8ByImFrPDpQlgMAVM/p5UHNASDXAJnjCOwV7FtwBgYHJkBEdHgwBHR2I8ZKtkLkgytIgWAAAADECDAP3t' $Autoit_Logo &= 'Lp1Hg4NHAINbRhNgYEOoAAILQdQ/+PgwEEBAp6oHAECuq4AuRzKFhSGFAAAFAQghAgKFMp1bBwipPzAEKqdAQDAA+BqeFUEL6qhAYGBg/FXtAFmDAEedGFtwq+1iBCF2KJe0CmQ8YiEBPYNiVZkAS6jqYAIL1D+eA5gImT/w5GT3gwBHgEYCSAMAADJHLqt30PhAA4NKAkv4nj/QC9dEfUOAJTZV2wEsRwCdLu2Y/TxHgYKzqEuIW3BbiQGYMINH7ZuAJQGYXz9hEExLDVudAJgEACEDAAAAT4OJKitfnieDrAZLgEvqqIBL3QoEZJ2CS2J+ZKtVTIkyGJeQSzKYA3KDEIOJVf4AJt19AgBfxz+eGvj4QMMAAAcmQKkefkFyCQDAMmJbf90/g0tAJURAQIIlx1cCgku1RFU8gRWDnfeAcW0MnSGYS9Als3BVPGL3wiVHZFRAE0ByXz7QAExATEEag2gBAPh3DP2JBCbEcTKdPDu+XYAlwAhCJYElgUtXQpcEqJiDS4Odie39GJg8g5lx0CWI9woCbQNyg4lwS2BEIGBDfV/QESanVyAJ7WKDpEhLRy4uCkFxAVWKJV9BcWB0CYRLg52AcXA8R6EiduqXiLSYRb5H7cL9AkzXV9DHCCYFc0BA3Wk8nYOGcjLgR/ftTCbBJQQAxBIz4BLBEiZwxCWghHCrwApt94MhtBcT8BKMiC4hX0IIYlWEQV8Oa+ISIExMX6euBjwEneakhTKDYltuVKmeQ4SngF4wgF4aEaBL0FfEoRtUVS4BwyVHYlv9BidwMG1+nTJXJvESoZgUZH4AJuYgAFsK/AEBJvMvx7Cw+DAAeXmnu7u7qsIFAAA9AQDCMJMnfiEgJjKkhTKgJTwGEOCwp7uhA8KquwC7p6d5efj4sCCmxy/za2AIgHAJYJcyg2AKg508mAAGBquYZFuJgw6hVSbxEgQm5ubmMghHZJuAqxMRXrCAsGgpeXkOvGQSCCAgkQEAPXnx' $Autoit_Logo &= 'BoOjimCSbTu6oLwDFgI9oAS8vA55KSkgaLCwXi+gXvwKFFWdAArmQROdiVvMVScgEyClnYUUE/ISRSRMMgAAYh10gB1LRANowBLy8iXgDaUDIhIFAMKZ2XA8LgAYiS5bmHOAJQlmA6WlIAXy8g95ICloyQPzIAibVQ4uwQkBAAITZHCrBvir/VUWE/ISQXJgmIIIAjyhvqjJaMbo8kDyXFzS0mqgDkUBCQDySO4GJyd8GNlIDwcDYARq0tIAXCXy8ujGaMkAS2Bg6VVtg+YFBRPmIJh+W2SjBmAGJ1VbnbPR8xJ2MGRkW/cBRwATWwpBwEPNLeiOXAAArySvryMPMb0HAEUU2C0tFOACYwIxAwQgBQHgBY4U6C3J3WAYzVXVohxGJp1iLpBbZAqrABM8RxITYfMSiDIK7UBfMgRHAO1GqGCoLY7YBFw5sAavRRIS9GHhB0JCQjcIAOAAQkVCAELBAfQSErECrwA5XNiOcuxg/hhVZJ1pCYAJR52J9DztgAn9YIUPVn8JBQAQfnBbLgMTMp1kAP2oYOzYRgEBiK80ElAJ9PTrAAA+ZQ8AAwDBATACkAI0rwABOUZmyWD+cCxk92sJsBxHsBxtcMCrq5jt94UPE38JMaUvZGQ8lByDCV4BADQ0enr0cXGXlJeXAwg4DwA4OKMBATACcfT0eno0NIABjqj+CmSJbQn1shz3EBMGkF8faX8JmBwBhwkEZP38E2d6iHrlv1AJb2+y7wiRDACyb2+QCb/lkAmYa0twbwmGCWT9kByOYg8TfwkGAJ0KbdFVARMT1Qr+3Y6/vxiXNbIBAJAHFxcXcvYPAPb2cAFxCQEANYC/v780S4RVRxw0R1sEAH6ECYBMq6s4cH6Dv0J/CXaFW1UDICZkNJ3tcICoZ6niBlPAJQlYAQDiBQAL0gDFCcCiArJ6Sz4IVWRiFhI8sScnUqsAACcnJDWaAKIGcJhbnaF/CX8JxkJtBlWxXKUOVcmoybKiwAEA' $Autoit_Logo &= '9vafowhNDQARYwGf9vZyAlMBSwhyVe2YOFtuJ6ugbnNze6t0CTKQmHAqqydkny9/CQgAgQdQTPBoRAV+ZP3+3Ky/0QAAsQcMYQjODAANsgkM4QFhAiLJhPAMZFvlAwEAbW4nCjBHnZ0edgkgj+39HqugYH8JfwkIfFVkPAEWEzJiCFU2/C0A0eIMDAzb29s9pAiGBwAUAbABEAIM4nB6hJtVHC9xCWAAO+yrJ9UKECZwETme0X8JB4oJEhOFCYN+ZAqEGP7YUJAHYAmGhngHDgDSCeEB278DNlWMZFtKXnAJc3wnewn5EtsKWy/IfwkdE4gJQNhYZEbNkAlTCCMBAMELBADCACODAdu/XjYY8GTtBy91L25uq+cQCXgJsasnmH8JfwkfEwxbLuVCwRxtZAq1QGte5dsjYgEA5wMIAAIBYvp4wBTccLhwZAhPS3EIQQAnhXcJ5iDb/ZhtnX8JO38JjF9tgQnWL5AJW2QAVZuA/i9GwNsE5wQMACNQ5cnNYLVyVWRtXwmmCe33sELmBGCb/YBCfwl/Ce1CYH5VbX73txywBH4AZB1wcrX+a9xAydi/stHboRtQAMC/AS3z/tw+IP1VZGTRW3pqswIyCQBicCerBokBBnCdiW39mFtHyIGziAsAAAAMQBAAAJ1V7VsuYkeDAQi6nTztZGRV/UBUdM1La/wAAGsAa5mEPlQKVWQwZO3RYgqHDABiezBuq5idCEgAlwpbDIO0DXMhl4iF7WQgW373nUcKYZ33iDxbZAEAHVVVgEdhAQBtPImdiV4RAFsw8XsGZIckgEuYcMR+MrNLiHYuApmMTEEAAIOdYveJAgBiQ55IhZixe6uYBiSdgC7t/WSJhXazS3CIiDJtQUNQJhcAgyxHR8p+ASFigHCdcwSrJ0Vyg51+ZJgYbZ0hjZfmJYh2nU5kAHNBJuJFg0dCUvehSlFtsSdkgAaxxyWAR/dbVQo8g4696+clQCaJQCY8gBpeJgIlIi6A' $Autoit_Logo &= 'n21bici4Mm0KbsIlbsclnYlbCgxk949x6SWIiIH3OcG2LvcBTdYmgBKd9wCJflvtVW2dhSjtW/coP1viEjKrAeYSR2J+ZApbRw6hziX/EgsAtJ3tZGztW0ITcBODYRKCEm1RQCtHgbSAP34oOVsBICX9/f0nJyed6IWFpMMlcNIl/xINAOizMi5CE35iE6ATBQALgQFASi6DEmKFtHYZoCC07SA5BhM8k7GaHgIAfOMlwSVwfrBLw/8SEk2Fie1VYEeBExUghPcCAIkgEjw8WxBt7WRVgBKBdrMhgw1HZDz3hUmFg1QKBgIAq6A5hYFxLuBbcFudIdAl/xJVTYiDiVtAvmTtbeATCQEAbe3CATxiMoHmdiElBQBbZCCygRIBAAsmOkEBg6A4ZO2dhUduqv8SOzp2oYVgC4mGPAEAwDqdg4WhgDcDBCUGGO3tfmJH5g8EEwAA4UrDEvc8ZGS49zK0sDj/Eh8AiCAR4wMA0wMhZG0gJmFMJROB4iZHnYk8ZFWgJb/TBv8SDwAPAA8AiQntcXPvQ0/FHPBrQBxkbwl/CQ8ADw8ADwAPAA8AgW1kWx1gHp11RdFEsERkbUf+IW8JfwkPAA8ADwAPAA8AvIj3kEUxbGFFFE5k0Hr+gZ84fwkPAA8ADwAPAA8A2QAAoS4zT2BFLhBOUAn+fnA7zxJ/CQ8ADwAPAA8A2w8AxByd4FZQRW0QTmBX/iFiVw8AfwkPAA8ADwAPAP8PAKYJsKSBmhxODwB/CQ8Afw8ADwAPAA8ADwAPAHoJ' $Autoit_Logo = _WinAPI_Base64Decode($Autoit_Logo) If @error Then Return SetError(1, 0, 0) Local $tSource = DllStructCreate('byte[' & BinaryLen($Autoit_Logo) & ']') DllStructSetData($tSource, 1, $Autoit_Logo) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress, 23574) If @error Then Return SetError(3, 0, 0) $tSource = 0 Local Const $bString = Binary(DllStructGetData($tDecompress, 1)) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\AutoIt3_logo_alpha.bmp", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_Autoit_Logo Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64Decode Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize) $tOutput = DllStructCreate("byte[" & $iBufferSize & "]") If @error Then Return SetError(1, 0, 0) Local $aRet = DllCall("ntdll.dll", "uint", "RtlDecompressBuffer", "ushort", 0x0002, "struct*", $tOutput, "ulong", $iBufferSize, "struct*", $tInput, "ulong", DllStructGetSize($tInput), "ulong*", 0) If @error Then Return SetError(2, 0, 0) If $aRet[0] Then Return SetError(3, $aRet[0], 0) Return $aRet[6] EndFunc ;==>_WinAPI_LZNTDecompress Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
Professor_Bernd Posted April 19, 2021 Author Share Posted April 19, 2021 I am sure I will need your code that saves resources in the script - but not this time. This time it's about images in the RTF file and how to display them in RichEdit. 1 hour ago, Professor_Bernd said: Is there actually a way to display images in the RichEdit that are in the RTF file? Link to comment Share on other sites More sharing options...
UEZ Posted April 19, 2021 Share Posted April 19, 2021 (edited) 59 minutes ago, Professor_Bernd said: Is there actually a way to display images in the RichEdit that are in the RTF file? This is also possible. The RTF content will not be displayed properly here. Pastebin: About.rtf Edited April 19, 2021 by UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
Professor_Bernd Posted April 19, 2021 Author Share Posted April 19, 2021 Yes, it works! 👍 But how do I get the image into the RTF file? When I use the normal "Insert Image", the image is not displayed in RichEdit. Link to comment Share on other sites More sharing options...
Gianni Posted April 19, 2021 Share Posted April 19, 2021 ..?.. I opened your About.rtf file using WordPad which is included by default with windows, I inserted an image with the Image option and I saved the file. Then by running the AboutDialog.au3 script the rtf file is displayed regularly with the inserted image displayed. Chimp small minds discuss people average minds discuss events great minds discuss ideas.... and use AutoIt.... Link to comment Share on other sites More sharing options...
Professor_Bernd Posted April 20, 2021 Author Share Posted April 20, 2021 Did you do this on Win 7? On Win 10 I just did the same thing you described, but only unreadable data was displayed in RichEdit. Link to comment Share on other sites More sharing options...
Professor_Bernd Posted April 20, 2021 Author Share Posted April 20, 2021 Very strange: I have now created a new RTF file on Win 10 using WordPad, copied in the text from the old RTF file and added an image. This newly created file displays fine in RichEdit, including the image. @UEZ @Chimp Thanks a lot for your tips! Link to comment Share on other sites More sharing options...
Earthshine Posted April 20, 2021 Share Posted April 20, 2021 Why not just use a text file and UTF-8 My resources are limited. You must ask the right questions Link to comment Share on other sites More sharing options...
Professor_Bernd Posted April 20, 2021 Author Share Posted April 20, 2021 What advantage would that have? Link to comment Share on other sites More sharing options...
Earthshine Posted April 20, 2021 Share Posted April 20, 2021 (edited) It seems a lot simpler than this. You can have an image separate from a text box and have your formatted text inside. It’s what we do. with all of our software products. We don’t use rich text for anything The advantage is that it could be translated to other language and then you could localize your application so we could display things in other languages And text is way easier to deal with Edited April 20, 2021 by Earthshine My resources are limited. You must ask the right questions Link to comment Share on other sites More sharing options...
Professor_Bernd Posted April 20, 2021 Author Share Posted April 20, 2021 Hmm, I can't see the advantages. 19 minutes ago, Earthshine said: You can have an image separate from a text box and have your formatted text inside. You can do that just as well with this about dialog. t0nZ showed that a few posts above. 24 minutes ago, Earthshine said: The advantage is that it could be translated to other language and then you could localize your application so we could display things in other languages RTF files you can also translate to other languages to localize your application. 26 minutes ago, Earthshine said: And text is way easier to deal with In my About dialog you can also load a text file, for this you only need to change 3 letters in the command to load the file: About.rtf to About.txt. In the scrennshot on the left you can see how it looks with a RTF file. On the right you can see how it looks like with a text file. As you can see, in text files you can't use colors, you can't center the font, and you can't use links in the text. It's meant to be factual, please don't take it as criticism. I'm happy to be convinced if I can see it. Why don't you post an example code, then it's easier to imagine what you mean. Link to comment Share on other sites More sharing options...
argumentum Posted April 20, 2021 Share Posted April 20, 2021 (edited) I think of alternate coloring like mine that is called "Dark AF" So my newer About box takes this into consideration: . To make sure the RTF is readable, do declare background and foreground colors Edited April 20, 2021 by argumentum added RTF image Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
Professor_Bernd Posted April 20, 2021 Author Share Posted April 20, 2021 Does this mean you are changing my about dialog to have a "dark af" skin or is this a feature request? argumentum 1 Link to comment Share on other sites More sharing options...
argumentum Posted April 20, 2021 Share Posted April 20, 2021 (edited) I guess a feature request ?. To have software that are mindful of other setups, not just what the developer use. People like me do strongly dislike having to get a flash of white to render the GUI ( any browser does this ), to then apply the black background ... It'd be better if browser makers loaded a black background and if it's a normal setup change the color to the OS's coloring scheme .... but I'm getting side tracked. It is welcomed to have a consideration of such setups Edit: sample code: Local $www = GUICtrlCreateLabel("www.autoitscript.com/forum/", 59, 75, 140, 15) GUICtrlSetFont($www, 8.5, -1, 4) ; underlined GUICtrlSetColor($www, _WinAPI_SwitchColor(_WinAPI_GetSysColor($COLOR_HOTLIGHT))) GUICtrlSetCursor($www, 0) this coloring, is whatever the user has declared, without having to guess what color a link ought to be. Edit2: ok, make these 2 images full screen ( press F11 ) to see the contrast. I'll remove this two images in a few days as they are too big but, is for you to get an idea the contrast of one setup and another. Edit3: Removed uselessly big pictures to proved a point of view. Edited April 21, 2021 by argumentum better explain myself ? Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
argumentum Posted April 20, 2021 Share Posted April 20, 2021 ... I'm sure that there are more people in the world using Windows 98SE, than those with my coloring scheme but, if you're aiming for the best about box you can put together, this would be something to take into consideration. Professor_Bernd 1 Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
Professor_Bernd Posted April 20, 2021 Author Share Posted April 20, 2021 Your motivational speech is great! How can I say no to that? When I get home tonight, I'm going to see if I can make this work. (I'm not the big color specialist). argumentum 1 Link to comment Share on other sites More sharing options...
Professor_Bernd Posted April 21, 2021 Author Share Posted April 21, 2021 First thoughts. It will not be an automatic adaptation to the Windows design. I would have to do a lot of research for that and it's not my area of expertise. For an about dialog this is too much effort. (How often do you use an about dialog!?) My suggestion would be to add a "Dark af" mode. (And by now I know what af means.) The "developer user" of the code can build in when to switch from light to dark mode. This would also be a good solution for users like me, who use the normal Windows design "light", but like to have a dark interface for various programs. Also, I find it kind of stupid that there is often only one very light and one very dark mode. Why not have a "pretty dark" mode? - But I digress! I think the coolest thing would be to be able to create the RTF file in light mode and have dark mode just invert the colors. I also thought I saw an AutoIt function recently that could be used to determine opposite colors. However, I can't remember what it's called. Let me know if you like this suggestion. Link to comment Share on other sites More sharing options...
argumentum Posted April 21, 2021 Share Posted April 21, 2021 30 minutes ago, Professor_Bernd said: create the RTF file in light mode and have dark mode Why not on the fly ?. Just StringReplace() the colors in the RTF and load the resultant. After all RTF is not, a so difficult markup. 33 minutes ago, Professor_Bernd said: Why not have a "pretty dark" mode? You can use the "My fine tuned High Contrast theme" to make your own while we wait for M$ to do something about it. I'll see if I put together a "colorizer" for the RTF @UEZ posted, make it simpler for you since after all, I'm the one rooting for it It'll take me a few hours Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now