Jump to content

About dialog with credits area


Recommended Posts

I inserted a logo here:

image.png.6955d7e7b801440dbb5e448ebff989fc.png

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 post
Share on other sites
  • Replies 70
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

An about dialog is a nice little thing, often hardly bigger than a message box and usually just a minor thing. But almost every program has an about dialog, if only to put its "stamp" on it, insert a

I agree so much on that statement. I have no words to explain that. You are "right on the money" with that. Now we need to synchronize. I'm not into this coloring stuff, there are those users h

It's a nice old school design.  The GUI is flickering when scrolling the text only using the scrollbar.  What about an automatic slow scrolling of the text until user intervention? Might

Posted Images

Here we go:

; #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 post
Share on other sites

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 post
Share on other sites
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 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 post
Share on other sites

..?..  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.

 

image.jpeg.9f1a974c98e9f77d824b358729b089b0.jpeg Chimp

small minds discuss people average minds discuss events great minds discuss ideas.... and use AutoIt....

Link to post
Share on other sites

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 by Earthshine

My resources are limited. You must ask the right questions

 

Link to post
Share on other sites

Hmm, I can't see the advantages. :think:

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.

2021-04-20_031332.jpg.5540d6c52d50b979f96d5c3173bf713b.jpg2021-04-20_031308.jpg.30ee5700c4164da09b974086d3147785.jpg

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 post
Share on other sites

I think of alternate coloring like mine that is called "Dark AF" :D 
image.png


So my newer About box takes this into consideration:
image.png.800c07d037c2cff2d0904bea8caefddd.png . image.png.590e2464b56874379e1b76d0d53d1c8b.png
 

To make sure the RTF is readable, do declare background and foreground colors :) 
image.png.f15d78e4d94d1f7eb3d258662723f546.png

Edited by argumentum
added RTF image
Link to post
Share on other sites

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 by argumentum
better explain myself ?
Link to post
Share on other sites

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.) :muttley: 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! :P

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. :huh2:

Let me know if you like this suggestion.

Link to post
Share on other sites
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

Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...