Hallo, Autoit Com!
Ich möchte euch meinen kleinen Konverter vorstellen.
Da hier Leute immer wieder die Frage stellen ob und wie es möglich ist
Bilder in den Script einzubinden ohne nach zu laden, habe ich mal ein kleines Programm
dafür geschrieben. Habe es einfach mal Pic2Bin genannt.
Damit kann man Bilder (BMP/JPG/GIF/PNG) ganz leicht in Binary Strings umwandeln.
Dar ich auch schon Bilder in meine Programme einbauen wollte, ohne nach zu laden und hier im
Forum nur Routinen dazu gefunden habe, habe ich mich dazu entschlossen ein Konverter
zu programmieren.
--> Hier ist mein Script !!!
Spoiler anzeigen
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=C:\Program Files (x86)\AutoIt3\Aut2Exe\Icons\AutoIt_Old4.ico
#AutoIt3Wrapper_outfile=Pic2BinV1.0.exe
#AutoIt3Wrapper_UPX_Parameters=--ultra-brute
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_Description=Convert Picture to Binary
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=TV_Freeze 07/2011
#AutoIt3Wrapper_Res_Language=1033
#AutoIt3Wrapper_Res_Field=Coded by|TV_Freeze
#AutoIt3Wrapper_Res_Field=Build|2011-07-03 Final
#AutoIt3Wrapper_Res_Field=Compile date|%longdate% %time%
#AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer%
#AutoIt3Wrapper_Res_Icon_Add=C:\Program Files (x86)\AutoIt3\Aut2Exe\Icons\AutoIt_Old4.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <Constants.au3>
#include <GDIPlus.au3>
#include <GuiButton.au3>
#include <GUIConstantsEx.au3>
#include <Memory.au3>
#include <MemoryConstants.au3>
#include <String.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
; Pic2Bin V1.0 by TV_Freeze
;
; Greetings to: (Auto)Bert, UEZ & all another User's of http://www.AutoIt.de
;
If FileExists(@TempDir & '\ShowBinaryPicture.au3') Then FileDelete(@TempDir & '\ShowBinaryPicture.au3')
Global $sflag, $dflag, $rem1 = 'Beispiel.jpg', $rem2 = 'Beispiel-bin.au3', $oldsource = '', $olddest = '', $fehler = 0, $bakclip, $iX, $iY
Global $aDropFiles[1], $WM_DROPFILES = 0x233
$hGUI = GUICreate('Pic2Bin V1.0', 460, 240, -1, -1, Default, $WS_EX_ACCEPTFILES)
GUICtrlCreateGroup('', 5, 0, 450, 223)
; Show the Binary Picture
Global Const $hHBITMAP = Load_BMP_From_Mem(BackgroundPic(), True)
Global Const $idPic = GUICtrlCreatePic("", 8, 8, $iX, $iY) ; Top , Left, PicWidth, PicHeight
_WinAPI_DeleteObject(GUICtrlSendMsg($idPic, 0x0172, 0, $hHBITMAP)) ;$STM_SETIMAGE = 0x0172, $IMAGE_BITMAP = 0
_WinAPI_DeleteObject($hHBITMAP)
GUICtrlCreateLabel('Picture (BMP/JPG/GIF/PNG)', 12, 105)
$Source = GUICtrlCreateButton('SourceFile', 12, 122, 65, 21)
$Sourcefile = GUICtrlCreateInput('', 80, 122, 370, 21)
GUICtrlCreateLabel('Binary Filename', 12, 146)
$Dest = GUICtrlCreateButton('Destfile', 12, 162, 65, 21)
$Destfile = GUICtrlCreateInput('', 80, 162, 370, 21)
$convert = GUICtrlCreateButton("Convert", 12, 192, 70, 24)
GUICtrlSetTip(-1, 'Converts source-picture as binary-string')
$show_binary = GUICtrlCreateButton("Show Binary", 140, 192, 70, 24)
_GUICtrlButton_Enable($show_binary, False)
GUICtrlSetTip(-1, 'Shows your Binary-String (Text)')
$preview_binarypic = GUICtrlCreateButton("Preview", 250, 192, 70, 24)
_GUICtrlButton_Enable($preview_binarypic, False)
GUICtrlSetTip(-1, 'Shows your Binary-String Picture')
$end = GUICtrlCreateButton("Exit", 380, 192, 65, 24)
GUICtrlSetTip(-1, 'Ending of execute this program')
$tab = ''
$tab = $tab & chr(9)
$tab = $tab & chr(9)
$tab = $tab & " "
GUICtrlCreateLabel('\ coding by tv_freeze /' & $tab & 'http://www.autoit.de - the german AutoIt-forum !!!', 10, 223, 460, 14)
If @OSVersion = "WIN_XP" Then ; wenn Windows XP
GUICtrlSetFont(-1, 8.5, 400, 0, "Times New Roman", 5) ; CLEARTYPE_QUALITY=5
Else
GUICtrlSetFont(-1, 8.5, 400, 0, "Times New Roman", 2)
EndIf
GUICtrlSetData($Sourcefile, $rem1)
GUICtrlSetData($Destfile, $rem2)
GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES_FUNC")
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Or $msg = $end Then
_End()
EndIf
If $msg = $convert And $sflag = 1 And $dflag = 1 Then
If GUICtrlRead($Sourcefile) <> '' And GUICtrlRead($Destfile) <> '' Then
_CreatePic2Binary(GUICtrlRead($Sourcefile))
_GUICtrlButton_Enable($show_binary)
_GUICtrlButton_Enable($preview_binarypic)
MsgBox(64, 'Picture was converted !', 'Filename: ' & GUICtrlRead($Destfile))
Else
_GUICtrlButton_Enable($show_binary, False)
_GUICtrlButton_Enable($preview_binarypic, False)
GUICtrlSetData($Sourcefile, $rem1)
GUICtrlSetData($Destfile, $rem2)
$sflag = 0
$dflag = 0
$fehler = 0
MsgBox(64, 'No Picture!' , 'Please select a Picture to convert !')
EndIf
EndIf
If $msg = $show_binary And $sflag = 1 And $dflag = 1 And $fehler = 0 Then
If Not @Compiled Then
ShellExecute(GUICtrlRead($Destfile), "", @ScriptDir, "edit")
Else
If Not ProcessExists("notepad.exe") Then
If Not WinExists(GUICtrlRead($Destfile) & ' - Editor') Then
Run(@WindowsDir & "\Notepad.exe " & GUICtrlRead($Destfile), "", @SW_MAXIMIZE)
EndIf
EndIf
EndIf
EndIf
If $msg = $preview_binarypic And $sflag = 1 And $dflag = 1 And $fehler = 0 Then
_ShowBinaryPicture()
EndIf
If $msg = $Source And $sflag = 0 Then
getsourcefile()
ElseIf $msg = $Source And $sflag = 1 Then
$oldsource = GUICtrlRead($Sourcefile)
getsourcefile()
EndIf
If $msg = $Dest And $dflag = 0 And $sflag = 1 Then
$olddest = GUICtrlRead($Sourcefile)
getdestfile()
ElseIf $msg = $Dest And $dflag = 1 And $sflag = 1 Then
$olddest = GUICtrlRead($Destfile)
getdestfile()
EndIf
WEnd
Func _End()
GUIDelete($hGUI)
Exit
EndFunc
Func getsourcefile()
$file = FileOpenDialog('Select Source Picture (bmp/jpg/gif/png)', "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", "Bilder (*.bmp;*.jpg;*.gif;*.png)", 1, $oldsource)
If @error Then
If $oldsource <> '' Then
GUICtrlSetData($Sourcefile, $oldsource)
Else
$sflag = 0
GUICtrlSetData($Sourcefile, $rem1)
GUICtrlSetData($Destfile, $rem2)
EndIf
Else
_Checkfile($file)
If $fehler = 1 Then
MsgBox(64, 'No Picture!' , 'the selected filename is not a Picture !' & @CRLF & 'or File could not open ...')
$sflag = 0
$dflag = 0
$fehler = 0
GUICtrlSetData($Sourcefile, $rem1)
GUICtrlSetData($Destfile, $rem2)
Else
$sflag = 1
; $dflag = 1
GUICtrlSetData($Sourcefile, $file)
; $file2 = StringLeft(GUICtrlRead($Sourcefile), StringLen(GUICtrlRead($Sourcefile)) - 4)
; $file2 &= '-bin.au3'
; GUICtrlSetData($Destfile, $file2)
EndIf
EndIf
EndFunc
Func getdestfile()
$olddest = StringLeft(GUICtrlRead($Sourcefile), StringLen(GUICtrlRead($Sourcefile)) - 4)
$olddest &= '-bin.au3'
$file2 = FileSaveDialog('Select Binary Filename', "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", "Scriptfile-Binary for Autoit(*.au3)", 16, $olddest)
If @error Then
If $olddest <> '' Then
If $dflag = 0 And $sflag = 1 Then $dflag = 1
GUICtrlSetData($Destfile, $olddest)
Else
$dflag = 0
GUICtrlSetData($Destfile, $rem2)
EndIf
Else
$dflag = 1
If StringRight($file2, 4) <> '.au3' Then $file2 &= '-bin.au3'
GUICtrlSetData($Destfile, $file2)
EndIf
EndFunc
;======================================================================================
; Function Name: _CheckFile($cfile)
; Description: Check file of Pictures is real true (HEX-STRINGS)
;
; Parameters: $cFile: the filename of Picture
;
; Return Value(s): set '$fehler' -string = 1 (File is no Picture)
;
; Author(s): TV_Freeze
;=======================================================================================
Func _Checkfile($cfile)
$checkfile = FileOpen($cfile, 0)
If $checkfile = -1 Then
; ConsoleWrite("Error = " & $cfile & @CR)
$fehler = 1 ; File could not open
Else
$pic = FileRead($checkfile, 5) ; read 5 bytes
FileClose($checkfile)
$Hex = _StringToHex($pic)
If $Hex <> 'FFD8FFE000' Then ; JPG ?
If $Hex <> 'FFD8FFE11A' Then ; JPG ?
If $Hex <> 'FFD8FFDB00' Then ; JPG ?
If $Hex <> '4749463839' Then ; GIF89 ?
If $Hex <> '89504E470D' Then ; PNG ?
; check for BMP
$checkfile = FileOpen($cfile, 0)
$pic = FileRead($checkfile, 2) ; read 2 bytes
$Hex = _StringToHex($pic)
If $Hex = '424D' Then ; BM ?
$pic = FileRead($checkfile, 3) ; skip 3 bytes
$pic = FileRead($checkfile, 6) ; read 6 bytes
FileClose($checkfile)
$Hex = _StringToHex($pic)
If $Hex <> '000000000036' Then
$fehler = 1 ; File is no Picture
EndIf
Else
$fehler = 1 ; File is no BMP
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
Return $fehler
EndFunc
; from (Auto)Bert - MP3-Player
Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
Local $nSize, $pFileName
Local $nAmt = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 255)
For $i = 0 To $nAmt[0] - 1
$nSize = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0)
$nSize = $nSize[0] + 1
$pFileName = DllStructCreate("char[" & $nSize & "]")
DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", DllStructGetPtr($pFileName), "int", $nSize)
ReDim $aDropFiles[$i + 1]
$aDropFiles[$i] = DllStructGetData($pFileName, 1)
$pFileName = 0
Next
; added-by-me-----------------------------------------------------------------------------------------------
$file2 = $aDropFiles[0]
If StringRight($file2, 4) = '.jpg' Or StringRight($file2, 4) = '.bmp' Or StringRight($file2, 4) = '.gif' Or StringRight($file2, 4) = '.png' Then
$sflag = 1
GUICtrlSetData($Sourcefile, $file2)
EndIf
EndFunc ;==>WM_DROPFILES_FUNC
; from Unkown User (I don't know from)
Func _CreatePic2Binary($sPath, $sBin='$BackgroundPic')
If Not FileExists($sPath) Then Return SetError(1,0,0)
Local $sToWrite = '', $fh = FileOpen($sPath, 16)
If @error Then Return SetError(2,0,0)
Local $read = FileRead($fh)
FileClose($fh)
Local $len = StringLen($read), $count = 4060
$sToWrite &= @CRLF
$sToWrite &= ';' & @TAB & 'String with the Binarydata of: ' & $sPath & @CRLF
$sToWrite &= 'Func BackgroundPic()' & @CRLF
$sToWrite &= ' Local ' & $sBin & ' = ""' & @CRLF
If $len <= $count Then
$sToWrite &= $read & @CRLF
Else
While 1
$sToWrite &= ' '
$sToWrite &= $sBin & ' &= "' & StringLeft($read, $count) & '"' & @CRLF
$read = StringTrimLeft($read, $count)
$len = StringLen($read)
If $len <= $count Then
$sToWrite &= ' '
$sToWrite &= $sBin & ' &= "' & $read & '"' & @CRLF
$sToWrite &= ' Return Binary($BackgroundPic)' & @CRLF
ExitLoop
EndIf
WEnd
EndIf
$sToWrite &= 'EndFunc ;==>BackgroundPic' & @CRLF
; write the Destfile
Local $hFileOut = FileOpen(GUICtrlRead($Destfile), 2+16)
FileWrite($hFileOut, $sToWrite)
FileClose($hFileOut)
ClipPut($sToWrite)
$bakclip = ClipGet()
ClipPut("")
; ConsoleWrite($sToWrite & @CRLF)
EndFunc
Func _ShowBinaryPicture()
Local $sToWrite2
$sToWrite2 = ''
$sToWrite2 &= @CRLF
$sToWrite2 &= '#include <GDIPlus.au3>' & @CRLF
$sToWrite2 &= '#include <GUIConstantsEx.au3>' & @CRLF
$sToWrite2 &= '#include <Memory.au3>' & @CRLF
$sToWrite2 &= '#include <MemoryConstants.au3>' & @CRLF
$sToWrite2 &= '$hGUI = GUICreate(' & '"Pic2Bin V1.0 - Binary Picture - Preview"' & ', @DesktopWidth, @DesktopHeight, 0, 0)' & @CRLF
$sToWrite2 &= '$end = GUICtrlCreateButton("Exit", @DesktopWidth-80, @DesktopHeight-60, 65, 24)' & @CRLF
$sToWrite2 &= '; Show the Binary Picture' & @CRLF
$sToWrite2 &= 'Global $iX, $iY' & @CRLF
$sToWrite2 &= 'Global Const $hHBITMAP = Load_BMP_From_Mem(BackgroundPic(), True)' & @CRLF
$sToWrite2 &= 'Global Const $idPic = GUICtrlCreatePic("", 0, 0, $iX, $iY) ; Top , Left, PicWidth, PicHeight' & @CRLF
$sToWrite2 &= '_WinAPI_DeleteObject(GUICtrlSendMsg($idPic, 0x0172, 0, $hHBITMAP)) ;$STM_SETIMAGE = 0x0172, $IMAGE_BITMAP = 0' & @CRLF
$sToWrite2 &= '_WinAPI_DeleteObject($hHBITMAP)' & @CRLF
$sToWrite2 &= 'GUISetState()' & @CRLF
$sToWrite2 &= 'While 1' & @CRLF
$sToWrite2 &= ' $msg = GUIGetMsg()' & @CRLF
$sToWrite2 &= ' If $msg = $GUI_EVENT_CLOSE Or $msg = $end Then' & @CRLF
$sToWrite2 &= ' Exit' & @CRLF
$sToWrite2 &= ' EndIf' & @CRLF
$sToWrite2 &= 'WEnd' & @CRLF
$sToWrite2 &= 'Func Load_BMP_From_Mem($bImage, $hHBITMAP = False)' & @CRLF
$sToWrite2 &= ' If Not IsBinary($bImage) Then Return SetError(1, 0, 0)' & @CRLF
$sToWrite2 &= ' Local $declared = True' & @CRLF
$sToWrite2 &= ' If Not $ghGDIPDll Then' & @CRLF
$sToWrite2 &= ' _GDIPlus_Startup()' & @CRLF
$sToWrite2 &= ' $declared = False' & @CRLF
$sToWrite2 &= ' EndIf' & @CRLF
$sToWrite2 &= ' Local Const $memBitmap = Binary($bImage) ;load image saved in variable (memory) and convert it to binary' & @CRLF
$sToWrite2 &= ' Local Const $len = BinaryLen($memBitmap) ;get length of image' & @CRLF
$sToWrite2 &= ' Local Const $hData = _MemGlobalAlloc($len, $GMEM_MOVEABLE) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002)' & @CRLF
$sToWrite2 &= ' Local Const $pData = _MemGlobalLock($hData) ;translate the handle into a pointer' & @CRLF
$sToWrite2 &= ' Local $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct' & @CRLF
$sToWrite2 &= ' DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data' & @CRLF
$sToWrite2 &= ' _MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE' & @CRLF
$sToWrite2 &= ' Local $hStream = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $pData, "int", True, "ptr*", 0)' & @CRLF
$sToWrite2 &= ' $hStream = $hStream[3]' & @CRLF
$sToWrite2 &= ' Local $hBitmap = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "int*", 0) ;Creates a Bitmap object based on an IStream COM interface' & @CRLF
$sToWrite2 &= ' $hBitmap = $hBitmap[2]' & @CRLF
$sToWrite2 &= ' Local Const $tVARIANT = DllStructCreate("word vt;word r1;word r2;word r3;ptr data; ptr")' & @CRLF
$sToWrite2 &= ' DllCall("oleaut32.dll", "long", "DispCallFunc", "ptr", $hStream, "dword", 8 + 8 * @AutoItX64, _' & @CRLF
$sToWrite2 &= ' "dword", 4, "dword", 23, "dword", 0, "ptr", 0, "ptr", 0, "ptr", DllStructGetPtr($tVARIANT)) ;release memory from $hStream to avoid memory leak' & @CRLF
$sToWrite2 &= ' $tMem = 0' & @CRLF
$sToWrite2 &= ' If $hHBITMAP Then' & @CRLF
$sToWrite2 &= ' Local Const $hHBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)' & @CRLF
$sToWrite2 &= ' $iX = _GDIPlus_ImageGetWidth($hBitmap)' & @CRLF
$sToWrite2 &= ' $iY = _GDIPlus_ImageGetHeight($hBitmap)' & @CRLF
$sToWrite2 &= ' _GDIPlus_BitmapDispose($hBitmap)' & @CRLF
$sToWrite2 &= ' If Not $declared Then _GDIPlus_Shutdown()' & @CRLF
$sToWrite2 &= ' Return $hHBmp' & @CRLF
$sToWrite2 &= ' EndIf' & @CRLF
$sToWrite2 &= ' If Not $declared Then _GDIPlus_Shutdown()' & @CRLF
$sToWrite2 &= ' Return $hBitmap' & @CRLF
$sToWrite2 &= 'EndFunc' & @CRLF
$sToWrite2 &= $bakclip
ClipPut($sToWrite2)
Local $hFileOut = FileOpen(@TempDir & '\ShowBinaryPicture.au3', 2+16)
FileWrite($hFileOut, $sToWrite2)
FileClose($hFileOut)
If @Compiled Then
If @OSType <> 'WIN32_NT' Then
If FileExists('C:\Programme\AutoIt3\AutoIt3.exe') Then
RunWait('C:\Programme\AutoIt3\AutoIt3.exe' & ' "' & @TempDir & '\ShowBinaryPicture.au3' & '"')
FileDelete(@TempDir & '\ShowBinaryPicture.au3')
Else
FileDelete(@TempDir & '\ShowBinaryPicture.au3')
MsgBox(64, "No AutoIt found", "Please install the AutoIt !")
EndIf
Else
If FileExists('c:\Program Files (x86)\AutoIt3\AutoIt3.exe') Then
RunWait('c:\Program Files (x86)\AutoIt3\AutoIt3.exe' & ' "' & @TempDir & '\ShowBinaryPicture.au3' & '"')
FileDelete(@TempDir & '\ShowBinaryPicture.au3')
Else
FileDelete(@TempDir & '\ShowBinaryPicture.au3')
MsgBox(64, "No AutoIt found", "Please install the AutoIt !")
EndIf
EndIf
Else
ShellExecute(@TempDir & '\ShowBinaryPicture.au3', "", @ScriptDir, "edit")
If WinExists('Pic2Bin V1.0') Then
Send("^V")
Exit(0)
EndIf
EndIf
EndFunc
;======================================================================================
; Function Name: Load_BMP_From_Mem
; Description: Loads an image which is saved as a binary string and converts it to a bitmap or hbitmap
;
; Parameters: $bImage: the binary string which contains any valid image which is supported by GDI+
; Optional: $hHBITMAP: if false a bitmap will be created, if true a hbitmap will be created
;
; Remark: hbitmap format is used generally for GUI internal images, $bitmap is more a GDI+ image format
;
; Requirement(s): GDIPlus.au3, Memory.au3
; Return Value(s): Success: handle to bitmap or hbitmap, Error: 0
; Error codes: 1: $bImage is not a binary string
;
; Author(s): UEZ
; Additional Code: thanks to progandy for the MemGlobalAlloc and tVARIANT lines
; Version: v0.95 Build 2011-06-14 Beta
;=======================================================================================
Func Load_BMP_From_Mem($bImage, $hHBITMAP = False)
If Not IsBinary($bImage) Then Return SetError(1, 0, 0)
Local $declared = True
If Not $ghGDIPDll Then
_GDIPlus_Startup()
$declared = False
EndIf
Local Const $memBitmap = Binary($bImage) ;load image saved in variable (memory) and convert it to binary
Local Const $len = BinaryLen($memBitmap) ;get length of image
Local Const $hData = _MemGlobalAlloc($len, $GMEM_MOVEABLE) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002)
Local Const $pData = _MemGlobalLock($hData) ;translate the handle into a pointer
Local $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct
DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data
_MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE
Local $hStream = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $pData, "int", True, "ptr*", 0)
$hStream = $hStream[3]
Local $hBitmap = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "int*", 0) ;Creates a Bitmap object based on an IStream COM interface
$hBitmap = $hBitmap[2]
Local Const $tVARIANT = DllStructCreate("word vt;word r1;word r2;word r3;ptr data; ptr")
DllCall("oleaut32.dll", "long", "DispCallFunc", "ptr", $hStream, "dword", 8 + 8 * @AutoItX64, _
"dword", 4, "dword", 23, "dword", 0, "ptr", 0, "ptr", 0, "ptr", DllStructGetPtr($tVARIANT)) ;release memory from $hStream to avoid memory leak
$tMem = 0
If $hHBITMAP Then
Local Const $hHBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
$iX = _GDIPlus_ImageGetWidth($hBitmap)
$iY = _GDIPlus_ImageGetHeight($hBitmap)
; ConsoleWrite("Pic.Info" & @CR & "Width - $iX = " & $iX & @CR & "Height - $iY = " & $iY & @CR)
_GDIPlus_BitmapDispose($hBitmap)
If Not $declared Then _GDIPlus_Shutdown()
Return $hHBmp
EndIf
If Not $declared Then _GDIPlus_Shutdown()
Return $hBitmap
EndFunc ;==>Load_BMP_From_Mem
; logo created by tv_freeze
; String with the Binarydata of: D:\Logo.jpg
Func BackgroundPic()
Local $BackgroundPic = ""
$BackgroundPic &= "0xFFD8FFDB0043000503040404030504040405050506070C08070707070F0B0B090C110F1212110F111113161C1713141A1511111821181A1D1D1F1F1F13172224221E241C1E1F1EFFDB0043010505050706070E08080E1E1411141E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1EFFC0001108005F01BC03012100021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00FA36EAE62B581E7B999218971B9E4C2A8CF1C93EFF00CEA9FF006FE8BDF59D30FB1B94C7F3AF65CE31DD9C966C6FF6FE8D9E358D2FFF0002531FCE9DFDBDA2E32759D309EC7ED49FE34BDA43B8ECFB0DFF008483475381AC699FF8149FE34BFF0009068BFF00416D37FF0002A3FF001A3DA43BA0E57D84FEDFD0DB86D574CFC6E53FC681AF6878FF0090BE9B8FFAFA4FF1A3DA43BA0E57D843AEE8609FF89BE9873D7FD253FC681AF683DF54D33FF0253FC68F6B0EE8395F617FE120D17381AB699FF8131FF8D2FF00C243A376D5F4C1FF006F49FE347B48774167D806BDA29E4EB1A67FE0527F8D29D7F461D359D2F1D87DA53FC68F690EE8395F6106BFA2FF00D0634BFC6E53FC683AFE8A31FF0013AD371FF5F29FE347B487742B3EC1FF00090689CFFC4EB4EFFC084FF1A5FEDFD17FE833A61F63729FE347B487743B3EC27F6FE8D9E358D2FF00F02531FCE97FB7B45C65B59D309EC7ED49FE347B48770B3EC37FB7F465E9AC6987FEDE93FC697FE120D17FE82FA69FFB7A8FFC68F690EE82CFB09FDBFA19E1B55D30FF00DBCA63F9D1FDBDA181FF00217D371FF5F49FE347B487741CAFB0875DD0C127FB5F4C24FF00D3CA7F8D035ED048E754D33E9F694FF1A3DA43BA0E57D85FF848345E8356D331FF005F31FF008D2FFC243A30E9ABE9A3FEDE93FC68F690EE82CFB00D7B46232758D33FF0293FC695B5FD1874D674BC7A7DA53FC68F690EE8395F6106BFA2FF00D0634BFC6E53FC683AFE8BFF0041AD371FF5F29FE347B487742B3EC1FF0009068BFF0041AD3BFF000213FC68FEDFD17FE833A67B03729FE347B48775F78F95F603AFE8D9E358D2FF00F02531FCE97FB7B45232DACE967D3FD293FC68F690EE2B3EC37FB7F465E9AC6987FEDE93FC697FE120D17FE82FA6FF00E0547FE347B487743B3EC27FC241A21186D574C3FF006F298FE747F6F68607FC85F4DC7FD7D27F8D1ED21DD072BEC21D7743073FDAFA664FFD3CA7F8D035ED088E754D33FF0002531FCE8F6B0EE8395F617FE120D17A0D5B4CFF00C098FF00C697FE121D1BB6AFA68FFB7A4FF1A3DA43BA0B3EC035FD18F2758D307FDBD27F8D2B6BFA30FBBACE978F4FB4A63F9D1ED21DD072BEC20D7F45FF00A0C697F8DCA7F8D075FD171FF21AD371FF005F29C7EB47B487742B3EC1FF000906899E35AD3BFF000213FC681AFE8B8FF90D699EC3ED29FE347B48775F78ECFB01D7F46CF1AC697FF81298FE74BFDBDA291F36B3A59F4FF494E3F5A3DA43B859F610EBFA30E9AC69873FF4F49FE347FC241A29FF0098BE9B9FFAFA4FF1A3DA43BA0E57D87DB6B1A5DDCCB6F6F7D613CAD9DB1C7323138E7800E7A55E1919010019FF003DAA9493D989A333C5791A382C7FE5EADB83DFF7F1D44BCBAAAAA95E49F96BCFC67C7F235A7B114F1A81D0039E38AAD246B9C0553F874AE1D0D40C7B5048B18381E94FDD952004C9CF6AAB315C589446CB2151C800F1D2AC9319048553CE0714F4634AC41226E995828214F3C54D19014AED503D48A49084C46A09C260E782053616DCC7705001F4149B687B933F9582A5509C71C536131302360E07CBE84E69DC2C4DE5AEC2C550E38DB8A686EDE4C6A3A74C9A3744D9914C0484C6C802B0F4ED51C2C863518538E3A76A4AFB95B9231403251547738A18C4A7710A38CE71D07E1420208EEA192331BC3229272B98EAC411AB4601500F738AB6912873C52C4410B1B45DF239150CB6FF00687623F748A3A81834B9750BDC8658DA303CA5070304919356E311456885235DA4F391CB1EE7D695D0F560082EA11548279F96A39E34DA72141CF1C50C115A445C80154FAF149E561372C6A481E829257D8771EAF907685C9F6A23509B642A338C74A7B68C37D8B44C6771010E3A71504D1EF90155185EBC0A1AEC0C9A3603236A81D72452011A9270807A102812D06C4DB9C82A800E9C0A99BCAC152AA7838E292771D8642626C828380718EE6A711A95662A991FC38EB4EE161A1B1F"
$BackgroundPic &= "2F931A81C74CD472E1CEC3180AC3D287E425E64309411841B4ED257A76A95B6004EC5503BE3B52181F2B2AD85E9D7D07E15047750BAB23C320DC78FDD71F5154BCC96FB162DD159305467B9C539E196321956368FF008B2391F4A2C3BD88A583ED1210BFBB403960307F0A8648CC4A3CA50C40C65864F343D1095EFA1661114767BD635E4E58B0E58F3FCA9720B28455C13E9426377239E24DA72147A7155A4419185524F518A818B69185D4EC08500F9AE338FF00A66F5D22671CB77F415EAE0FF866151EA6578AF68D2406C73756D9FA79F1D2C658BB06F94F41939CD73E33E35E85D3F84F21F187C6EB5F0EF8A750D0A4F0E4F74D672796641781430007CD8D87158F2FED0165264AF84EE149E7FE3F97EEFF007BEE56B0CBF9A29F31CF2C672B6AC0BF1F6D480078627E993FE9AB929FDEFB9D3DAB5341F8D5A15FDD2DBEA16173A607E5642E25409FDF240040FCEB47964D2BA95D8A38C8B7AAB1E81AFEAF168FE1BBAD7368B886DE1F3B08E0065F5079E31CD739F0D7E23DB78CB579B4E4D31ACDD2033C65E70FE64790030C28C0E6B969615CE94AA5F6E86D2ADCB350B6E7A0B8547DDB4B1C7DD1DEAABDBCDB83B5C32B631F20C28F6C77AE6D8D7724F28AE0EE2C4753819AC8F176BD0F86F439B579A169962206C5201209E4FE0327F0A70829CD4575094B963717C0FE248BC4FA126AF6F6EF041248CA9B981DCA0E0374E87AD6D98CE4B29EFD28A90E49B5D8212E649F724DC72377CB9F4A4660700375EDDE95C637673CF6A88E1E40B8C1F5CD2B858B2047B76819CFAD30448BC2A0FA0A431803292E067B8A922C9527A034DDEC0AC865D3944C8258F4C134D801442C6E5994FF000E071ED4D3B89E87176DE3EB19BC707C311D94C67690A4527980AC8807CCE063A03C7AD76E0F96EDC808C30D919C9AD6B507479537BAB914EA29DDA1F1925C83F28E8327A8A64AC1325CE57158F99A6846C1268D648C6DDC3BD62F8BF573E1DF0E5D6AC6DDAEFECC9BDA20E10B0FA9CE2AA3072924BA92E564DF63CBDBE3A5A95FDD786A770DCC58BC5FDE27761F2718A67FC2F9B45FB9E199DB3CC78BD51BD7BB0F93B57A2F2D7FCDF81C7F5C5D841F1FED072BE169E407EE7FA6AFCC3B9FB95D9FC3CF8A7E1FF185F8B08EDE7B1BFDA5A3B790861281D76B0C64FB102B2AB819420E49DCB86294E5668AFF00163E21AF81750D3E0B8D3E6BC7BD85E45115C0884615802082A7775AE9BC0DADA78A3C2B63AFC50B42B72A484660C57048EA00F4F4AC6746D4D54BEE6B1A97A8E16D8DB079C8C641F4A951997AFE35CDA6C6C0C8492CA79F4A7E48C16F973E94D6800CC0E006C67B77A6ECE79FC284C4D10B619C26304F7CD5A51184C0C9CFF3A2F718C1122F0A8A3D80A66D6562C067D3FC284C18F8896CB74C8E4525CB148F764B118C02684EC27A91DB82AA5FED2D8C7DDC0216A279A25940DC7737451475417DCB2098DF702141187E339A7C6C7CCC745000524F18A3C87D06CA421258FCA073516639E3591063B73ED42426EC470205D4B4F47249F35BB7FD337AE800038FDE7E75EA613F866353732FC583FE25037027FD2EDBBFFD378EA107003925B69C66B9B19FC45E85D2D8F35FDA074DD33FE15C6A5A8AE9F6CB78668BFD204603FDF5C927BD7CDBA2CCF6BAB59DD476A976F0DC24AB03292B2956040207254E3181EB5DF81BCA93BB38314946A2B23D1358F196AFA9E9973627E1DE996DE7C653CD8AC25DE99FE319E38AE6740F07789759B9582C746BB3B9C12F24463407FE7A127F87FD9AE9A5ECF0F0779DCCA7CF564AD1B1E95E3BB2F1DF86B49866B3D69868F6367040C164C1DE142B3EDC7DDCFF000FA527C0EF126B9A978D56D6FB557961367249E5301FBDE571203D97FD9AE751A1570D2A915AFEA6FCD5215945B3A9F8A1F112F348D55F44D0D6317090F9934AE99312903F7A01E0A2F71D4F6AC6F0D0F897E21D28EAD65AACAD6C72B1B3CDB3ED0FDAE1060FEEFF00E991C66A69E1E851A0AA5557B8E752A54A8E307B1A9E08F13F8C67D78787F55B6791DA374F39EDCA9C80D8B9CF41196C2EC3CF23B579FF00C4D5F145BEA50E99E25D445E4A91FDA5628A52546091F68E800518E539AAA54A842BDA3ADD5D79135275254AECEABE0BDBF8B121B2D4D754B58BC2FE74AD708F2843293BBF7AA08F954B63E5CFBD56F8A9A8FC42F0EEA736A71EBD245A55EDC49F638A0B9DCCA8390E78E14023E5E6B27EC658969ADFF32FF791A374FF00E18B5F0A35BF1878A3C3DE24806B734DA8AC31FD8669A4C28624FCE0FF000838E9ED5C378A7C55F11FC39AD4FA3EA3E25BA37708064F2A62CAD919DC0E071ED570A745D595371FEB42253A8A9A9267AEDA1F177893E0E6953E89AAEDD7268E376BA925F2CB8E771CE0FB57866B7E37F883A56AD75A7DD789AF45CDAC8D148525C8DC38241F4ACF0F4E8CE52835AA65569D4828C93D1A3B2F11EABF1A1B49B2F10A9B8B7B19917CB86C86E75181869140C9CFE35B7E35F8ADE21F0FF87F48D3DACE28FC457166B35E3C89C439E87674C9EB834950A351C631F98FDB5585DC8E2B46F1C78BB5792796FBE21C1A41032A93332F9A7FBCA11480B56FC2FF00193C4FA46A0A9A9DDC3AD5983F3860033AF7911BA81EC6BB3EA54A69C546DE660B1338DA5CD7F23E83B2D461D52CADB50B0569EDEE625910838E08EB5C5FC55B6F1AC366DA9685A9476BA5DADAB35D4492EC9376EFBE0E390076E335E4E154235546A2BA3BEB394A0DC4F20F0326AD77E26B54D22E13FB46E9CCD148CFB3CF6C1FF485383B50774EF5EEEDAE6A1E19F0496D6E58B56D6AD97132C0C06F24FDFC7F0A81C91ED5E96614E15671A6"
$BackgroundPic &= "97BDFA1C98594A1172E9FA9E69FF0009AF8D3C47ABDAD96997A019D49B78EDBF762E533FF1F0ADD5635E854F269BAE7893E22F847568ADB54D4BED92BC65F61C3A5C81D655C8F9157BAF7AAFABE1A3254ADA93ED6AB5CF7D0F4FF857E2D83C59A3C9398521BA88859194FC92AF6740790A7D0D745A8DBDBDD40F15CC2B344786575C86FC2BC6AD074AA38F63D0A52538DCF9AFE3BD9DADAF8FE5B7B4B68E189AD217F26250BB8E0FCC31D31DC77AC7F046BF79A2C777F65F0D59EB9F68656669A077E83AAEDFBA3DABD9847DA508DDDB45A9E6C9F25576572978FB5AB8D72EEDDEE7C3D67A3B468404B781A3F3B9FBC7773C5749F00347B5BEF125C5E26A9145AAC3049F62B6E85DCAE0499F41E828A8B928B4B5087BD555F42B78E758F899E14D623D2F5FF113CD75E489018A6F31769F7207A57AE7C32BAF10F887E0ADCC96FA816D6A633C56D70EDB36BF1B4E40E075AE4AF0A4A946715A5D1BD1954E7716F5B1E49E23F14FC46F0E6BB71A3EA1E24BA37706049E4CD956E3390703819AEB6CAF7E2F7883C2506B5617E22B0820382B2EC9AEF19CC838C9FA67B574CE9616118CE51D1994675A52714F5465FC37F89BE2B5F1669D06A1AA4BA9D9DDCAB1491C801F3149C6F4FEEEDF4EF5EABF19B54F16E97059C9E1B8C35BB175B92BB4383C6DC331C281C93F4A8AF86A30C4C135EEBFEBF134A75A72A4DF54713A6DEF8A6E2D22B9BCF8896A93491C8C6DE398EE9CAF4652BF700EE067350784BE22789CEA9A7C7737A3558A63808230A6FD73832C47FE5988FBA9EB5B7D5A8D58C9285ADB3EFF00D7EA47B69C1AF7AE7AAF8D6C75ABBD31A3D0A4315E6F52ADE7987233CFCC01C7D3BF4AF0FD4FC5DE37D3F517B1B8D76F27B889DD184326D17654E0B47FDC09DC77C5726029D1A916A51BB36C54EA45A69E8743E21D4FE2C369963ADC2D3359BC69B23B0FBF30206D72B8CAFA91CE7DAB5BC4563F16AF74DB5D6AC6FF00C845D3D5AEAD6298C524920DD92AB8F9491838CF3D38C536B0B1B3DFA093AF2B9E5ABF107C70D2AA7FC24D7CC5CE33BCA897D48FEE85EF5D0F8F75AF1F787ACB4592E3C5AB3C9756B92B6B7259A73B988907030BB4A0CF7ADE5428C6715CBB9846AD4716F9B63B9F84BA67C465BA4D53C4DAA79FA6CF6A5D2092625C3120A9298F978CF7EF5EAD1A2B40ACA3270726BC9C47239FB9B1DF479947DEDC83CF89098CB0DCB8DC0724668EC4E4B05EDE82B0D16A6C38B8911BB9E8BDBFFD745AA2292401B8F5355D09B11E07F6AD8E73FEB981FF00BF4F5BAB8E9F37EB5E960FF87F332A9B993E2ACFF640EDFE956D83FF006DD2A294B2862738C752060D73E317BEBD0BA7B1E07F154FC4DD6752D5344834EBAB9D05E653084817040C1186CE7A8AE1F4DF03F8FAC2FADAFEDBC35A824F6F32CD1318C1C3A9041C67919038AF430F528429A573CEAB0AB29DEC7BA7C2BBFF0017DE59DEFF00C26303433ACAA21F32254CAE39C63DEBB6594792D1ABA8EF815E55750551F26C7A149C9C173EE790FC5C9BC5DA8DD4FA158692F71A5B88CABA26496186DD9CF407822B96F06695E38F0D6A4752B0F0F5C3CACAD11124608CB63320E78518FBB5EC616586861FD9B96FB9C35955757992D8EEBC7FE03D4F5B9E1D6EC44725E4B1C6F756F9DB8982855901EEA00E53A1AABE18B9F889E1DD3DF4DB6D166923F39A308F183FBC6396B85E7022C9FB9F95670AF42BD154EA3B5872A756954E78ABDCEAFC09A1F8A5B5B9B59F11DFB873F28B70DC48E063CCFF006131C04FC6B9FF008E9E11D7F52D62CF50B0B17BDB7F2950C70E37A4818E2427BA00795EF5853AD4E3894D6914AC6B3A73746CF7DCE7BC3DE1BF1DEA7A52784EE34E92D34837625B99DC042DCE4BAF3F7739F93D6BB7F8DBE13BFD73C3165168D0B5CCB6536E102900B2ED0370F5C6338EF4EAD7A51AD1717A5EEFE628539BA4EEBFA4798F822D3E25785AEAE5F45D0E726EF0932C912B2B91D1C64FCA07A56778BFC13E3FBCD76E6EF50D26E6FAEA72B24B2C206C2C47F0F3C01D315D2AAE1E351CEFAB39DC2B3872DB44759E18D6FE28685E1E5D361F0C652CE254B7F322196E7AF5AF3AD6FC23E37D5F55BCD467F0DDE79D752B49204418DC7AE39A8A52A14E6E4A5B9551569C5271D8F7CF83FA978B2F34EB8B5F14693FD9E2D9523B61B369700739E6B17E33FC38BDF15DF45AC68D247F6E8E3F2E58646DA2403A107D474C77AE1855850AF78BBA3AE54E7568D9EE717E0EB2F89DE0D5BAB3B4F0A0BA8676DCE93DBA483774DCA73C0F6AE8ED34CF8B1E2CD4AD62BAB68BC3560A70F2C50C716E1DD86325BE86BBE53C2F33AAE57F239631AF650B5BCCF69B5B4163642CD58BF92A14BB756C0EA7EB597E23B09757F0D6A9A6C4424971018E3663C67A8FC322BC88CD2A8A4CF4251BC6C8F0CD03C33E3AF0F6B715FC3E1EBA7B9827CED0ABB667C63CC5E788C6795EF5DFE95E02B8D4740D517C47218F55D4EE45CBC8AE70244FB8C07F0AFAA57B38BC5518DA7077969F75EE79F428547EEC9597F48E520F0B78E7C2BAB9D56D34D17B2249FBD6836959D88C798A0FDC403AA0EB5178AB4AF1F78C6EA237DA2B086D888D02E2347627224524E428EEA7AD53AF8694956E6D6C4FB3ACA2E9DB43D3BE157829BC25A4CED777093EA57AE24B978C6101031851D855AF1E5DEA96DE1DBE93458D9EFD53F70AA016DD9F435E454A91AB5F99ECD9DD083A74ECB73E7CF12685E3CD7F516BED5347BBB9B9DAB1B3A46ABBC2F423078033C8EF4EF0FDA7C46F0DF9EBA5699770F9EC0C9FB953BC8E8464F007A57AB29E19C391BD0E051ACA5CD6D48BC51A4FC49F13CB14DABE8F7B72D0A954"
$BackgroundPic &= "2B0AA0E7D306B67E137C3FF165878917C4175A7BD90B08DE589252374EFB4ED5001E84F5A89D7A10A4E317E43852AB29A949191E38D2FE2478C7578F56D5BC2D7493AC2B1622880181F8FBD75BF0CEE7E25787B499F478FC3522DB416F713C1E644373CDB72AB9CF723A54CFD84A9727368870F6D19F358E47C55E18F883E20D72E358D4BC2D7AB3DC905C468003818C8E7815DD787F56F89DA5F837FB2E1F0BB335A816F10308CBC6C1B7375ED9ADAA3C3CE1183968854FDB464E4A3B9C0E99E0DF1B69F7D05E45E1BBD79209564036001D97A11CF00771DEBD03C69A5F8EBC69E19B0BCBCB4266824916E74F88F9664391B245E7B73915A56C461FDA46A395EDA7DFFD7E24D3A75795C2DB99FE05F0B78C6CAF6E447A0C11CB210B25E5CA01CE08DF175D8067918E715426F08789F4EBAB813691717263990CA60C20BB61F72488E7F76ABFC4BFC555F5BA1ED24B9B7FBBE5FD7513A157953B1DC5A5C78E2C6DF53D7E5B492FF50731C2B6B1B612419199110FDC001E477E6BCEF58F0B78B2FF0050BDBB9F42BB9E49E5124FE480A2E189C868F9F902F71DEB9E854C3536DA9797DC6B5615A4926BCCF64F85BA8F896E6DA7B3F1269DF65366228EDE509B04EBB4E481DB1802AE7C48F887A57838DA452DA4FA85DDDA922DA2608762E32DB8F1DFA5798E8AA95DC29BD3B9D8AA3851E69A3C0BE28AF87352BB87C47E1CB8530EAA58DC58FDD91245C648F407AFBFE35D07C0FF00064FE25D457C41AD334FA6E9E025B0939599D4E54283D114E73EA6BD3A951D3C3DE5BEC70C20A75AD1DB73E82B46225663C28EF56E648E3923317FAB718C0EC6BC34D1EA58A4CA2372A3032DCE4726872E0E4E48C724818A4B519145232C7BB8607B55EC6F50D800F6C5526ADA93A94B3BB59B25C1C79AC718FF00A66F5BBB13B86AF4B06FF766553732FC5847F63F0493F6AB638FFB6F1D210258C804F3586317BEBD0BA7B0D58C85F98023B7B54A921C0F98E474AE3468CA97F0C32299DF0655C019E8467F9D42EB1A2972A30463A53BA44DAE54291B306DABBBA631D3352A92AD8E719A95AAB94F72D42A431CE016E3A54FB595C6EE847E19A3761E43CB152581C55877FB55B0727063EA7D8D17B304551202ED1293BC0FD297EF0C90C320FE14D086C76FE4C5800B0F5CF5A6B07280E71DB00D35E62445E5A6EC145627A93D69660A14EDFC80A9E85752BA315CF5538CF26A7B627EF32904F4E6921B2CA6738C1C7BF7A5E738562A076F4AA7B12B71FA837CB12E48CAF51D5AA0FB3491B33195CEE0383D29587A168B32D9601DCC1861BD2AA4D1B6E46EAC073EF46C04A312464027A629AB1614EE00A8A6D3044B1B90319E474AAB7D0C53219A4C19107CB91C11FE34C4405515779000C63A554658DCEE2A370E831EB5327AA4812D094128D8ED9AB31021B73704E00A6091636BABA963C1183E95212412C0E314ADA0EFA93F9A6EAD793CC5C93ED557CC024312B36FC71F4A2F701C09382DBBD3E94C8ED84519C0DC3B9F5A6896358332E7A60F406A2F2D33828AC4F52687E4343A55403E518FA0AAD1B104F5527279A991489ADCB13BD8633D39ACEF14F85744F145BA41ACD979C23C98E4562AEB9EB861CF6AD694DC24A51D191522A51717B1CBFF00C29BF067DA0B94BD2A4866437071C76F61FCEBD016D6D74ED32D6C6CA08EDADA34D88B1AE0633D05695B1552B2F7BA114A8429EDD43ECD2237986573B947CBDAACA165B27E7710460FF779AE7B1AA68AB346E76313F30EB52210E9804838C535761A0D58B0A7201502A58DB036EEE9D284042FB5B55D3DDB96F39D7D38F29CFF00415B417D0102BD3C27F0CC27B993E2A2A74A51BC126EADBE5C7FD378E98A0AE30467BD73637E35E85D2F843712017421B27193FAD21CED2CBC115CA9EA5B5A0AE03439938C73552ED1584647209F94FA5080AA0ECDC48E578FAD31A745E5F79FC334A2B5D01BD351D7572AB183B9B9C303DF8ABB6374D7319591595D7A31E8C2AB6417BB2DC60B0DAC3806A61FEA1D1863238A9DC645361943A8CB8F7C543F69392A6DA52BDF918AA24905E5A888AB36C2A3EE918C539595D3629FC686C1584655C9E4545249B7E5EA48FC0D1AB1F91138DD11E066A1B795A59311ABB1538181D2A5DAF71DD976112749181F4E2A4555DC01E82982D873ABCEC91AE07A1F4A7B6549471864E0D1D0435DB08514714E0A248FE5E580E9EB4865700AE30C339A52C792E841078E7AFBD0B6B05869C904AF51CE6948DF09F338EF4F71152ED55A34239527E5F6AAB9F2D9B70E57A1A520431A74032FBC8F619A7DC5CA0801CB618707BD524C39922D585DB5C218E4043019573D08F4ABB1E4E55871EB49B044D18C44E846011C5452E1A30C065874E714D0321372DBB6FD9A523F8B918A916F2D44651C98C819DA474A169A0AF7D4723A326D53D790691D572791D851E43B752377DBF29E491D7B1A89BE689B800F6A4D31A2BC32B3C9B115D8A9C00055E88499C48C0FB63142F215F5D4902AEE03B77A7481A6DB128C73C1FEED032421A3CC520C3201CD319B6A32A0EA3F3A188722891303EF01C7BFB557C15EE339A4314B1E77A1E0F1CF5A6E339C751CE69DD8ADA0C52CD7DA7165C9F3DB03FED9495BC154F24364FBD7A784FE198CF732FC524AE948CA0F1776A707FEBBC751CE159B7C798D87DF43C83F4AE7C6FC6BD0BA7B5885598E41E39FCAA46618DA31C8EB5C9B1A6E296033B88F4C93DAAB5E490470A067DBFDD51CD52772599735CC2E77A3961D87AD4D64CE4161F2374E6B34FA96D1203BD8864048C824FA54F6C9B1F7866C0E306AAF744AD0BC1B0BBB3F9D35E68CA659805228EA32BACA5B"
$BackgroundPic &= "90723B814492BAA829D73C8A2F60422CDBCF9722E777048EB53DA80B08D99C13D4D27E40874C2357CAE371ED9A8E7DBB381FFD7A036234DA57934B10557182037502AAC2B9303B704B823A9207E94E077672791CF1498D0D8E59A37DC70003F28153DFB0308B93C330C631CF1DE90742909269220546C047258726ACC64A90571F2F4E69F90AFD42E30E77AE627EACA7907E950066C91486485940C0C1CF19A5C851F31071DF34D485B6E57BB9208EDC6E70A09F9475ACB9AE6073B964240A536C224964CEC4B0F91BDEA5DDB9F6B2A9607A9A69D81A26B78F6B86566017B1ABEA78C8A1A1A6234C8572CC00E955965DD92A723D07A51E62F2079595329C1CF4A459C93B5D7258E09A2F71D89ED15523F9338CF734E9846A411F78D26047315D8481D3D2A38F18E4D34171630AAE3E6C31E40F5A94120025D581E4903A734C576F71FB83753DB2298B24A8E58E0283F2E3A9A81F62CDE36F816E49C37DDC11D7DEA8A4B34916E41B011C9618355D6E27D8B1192A0018F971F9D2CF8930C018A5EADDC352E83BF4200ED93F4A9372A818C1CF19A77B06E3071A969E09E93377FF00A65256EFCB93919FC6BD3C26B4CC67B995E2CCAE90BC11FE976DD7FEBBC74C7E7B6724573E37E35E8552D8817289B5F9E7AD4723C8D8F2F8C8E32383CD72357D8D361F147E6F12924F75A2FEDA396178846470390319ED8CD0989A31BFB19136E5886049EBC7E557F724318DB8F4C91D7B50EC816A35C63E64C60F5AB96872854A8DDD7DA92681DC9C248F1E37819F6A84DB08A33F319580E19AA9892B95F4C5F964DD9CEFA92451938391F4A95A0D0C854F9809C55C04EC0001D47B5032BC92627C027006334B707F77F29EA3B9E940D1009002158E09ECBFCEA7B65DC7893907383CF34E366C4EE493318D33275CE7007535109D9C61564E7F8B18C50D09166DD4ED3BB83D87A54F21F9101C6F53F9D00472600DCDD4FA9AAE92012E38C9ED40D9339C8E9BAA050D1821F904F5A158064AEE40F2B8EB8E3834E890C9F2CA493D768EF4B661B8EBCB78DE26884647CBC1038FCEB13FB1510005981CE7AF03DB155A6EC92F0290443182470491D68718F9971D39352DA1D8B5667E52A57E6C67DAAC0591D31B80FC38AA4D7413B917D9846A72C656E482C3A1AABA72FEF26DDD7754B4326954066C1E3E9DEA28D4F9809C7068197413B08503D874A826936CF819C01D7DE8BE802CEDFBBE3A907BD561205C06E09ECA3AD1E43E84F6E9BC91BF927904F5A9A566442D2119272401D7D2ABA13D4844E5C7CA9273DF18DB562D9490777E03FAD2D80B0E7F7215B1B83034C9381BD8E3B72681A2B070251C0C9ED5339E09C6EE2860884064DDB8704F07351CAEC4623E39201C719A1AEC1B096E5FFB4AC3CCFBC666C0FF00B64F5D11720E322BD3C1FF000CC6A7C463F8C0634221720FDA6DF1C7FD374AAF6F31618639C7AD73E37E35E83A7B1338DCD9C03EF480EE618248C75AE4B9B0302B229EC4E0F152CAC547B52BDC2C55923564DA7F0AAD2C47660F183934DB248C912308D46E6E8476AD08146ECE318A95A8EC5AE028538C66A2B97558484C1F5E7A556E065A48219BE50007E706B404D1B49E515272B92DDA92EC174356026404120631C74A92E1763A60E7271834EC24EE88264025663F9D46EC5D72393DA93B0CAF023076DC55BE5C311D452DB48A8CC880B007EF0EF531D16A0DF62EACCA46D0CBBF3D8F22A42094002E4F5154AEC4360668CB6738CE71532488EFB41058720508624AACCDFBC0871D2AACEA705C11BBFD91556BE82DB516DA5246D639C71CF5A9DC6F39C03E869741A101DCC30734382AC1874CE0F14AE34AE4B212ABDB1559D159083D0D3426569626F2CA9E39C9A858AB111AF2DD08A4D892342DD464023181F955B180B838E6843239DD56221304F7E7A5650904536F5C0DFD41A1E9B05CD013C6CEB1952772F27B0A6884990104E3DBA534857EC49729B154839C9C7350DC20F38B1A4044CC5D78E71C0AAF0A4826F98AB100EEC0E454CB7BA1AB0412247232A65875DC2AF2CCB8DBB86FE3A75AAEB6417BEA72BF15356BFD1B46D22E6C5AE37BEB9630CA9020679A369D55E303BEE048FC6A9691F1334D9E2999F4AD4ADA70E8915AC810BCEED72D6C4210C55B122804838C3A9A7602BEA8BE22BBF8A171A4C7E30D460B55D25F51B6B7B78A244128955555CB23332F5CE08CD58F865E21D63C57345797370AD6163A55B5BDD26D19975074479B2474D83030382643E9420654F8C3AB6ADA76A5E18B5D36F755B74BFBB9E3B81A55A2CD3BAADBC8E0282A46772839C7404F406A08FE2869BA041369DA9E9DE2197FB32D61FB55DDCC0B9123C4AF1C6EC30048C5B6F40377A645167B879169FE2C690F1E889FD957A6EF5463FE8CAF1B342826F2B7E4362405B95D9B8B0048E869F7BF14ECAC24D59352F0FEAD63FD9A62526678313492BED8A35DAE76B30F9B0F8C2F2702803ADF0A6AA9AF59E87AC436F35AADD33308A500B2FEEE4079070471C10704608E0D75F893B73F857A78477A66353466478C5F7E84CA1F693736F838E7FD7C759C9696031B903C87B9739FE758633E35E810574588ED638C37972320E0E0BE547E7446CA141CAE7B735C8F566AB4D092461B57E7C0C8EF4E237372471CE73D6A6C3B91C81436E6231EA4D4176FFC0A776E3C8F4A69DB413D47448615E76658D4F09C03BB6D3697412BF51E8EA4E038CE7A66A3BD31630A5413D7E94BC86665C1FDF21070B9E79AB96C9193BDB6BA93C027D29458DA34A320F2187E06A1B8C34F11E0AA7CCDCE31E9549684DFB19B79212CDB650323BF4A2D67410EE322C99EE0D4ADF61BD88844"
$BackgroundPic &= "66DDCBC61BFBAD86A2DA18E120A966C0C64B75AAB6961799752350A1F80C0548641B32A558F719E94ACAE52DAC311F924B7B53126F264CE4119C63A5160249A72CCDF36EC761CD32733480246FE5F192D8CF1ED4E3A132D4852D2C001E6AF9921EE5CE7F435662B48933E5C8D1E474DF903F034EE2B0232819DCBC1E39EF523B0F2C7CD8C9E6A6D72EE388DC7191EB926A39000DB895C7D68482E4376F85DAA7716EDEDEB4B0A185727665BA5568C9D513C2704EEDB4E565248DE33E95361EC36F4C5B70A54311597747E752BC00477A4DBDC6922DDBA46CDB988642700135A51953D187E07A55088AE8077887054365F9C607AD67DEC9976DB2819FCA9497504C65A4C82225A44739C1C1E9ED4C09E73B11BA356F46C31A695D09EBA0DB6823848DACEE57B96E4FD6AF471AED0E7008A2D71AD0C7F19F87AD3C53A441637379756C20BB86E83DAC8A8E1E270CB8241C722B9D3E14966F1E68521D2ECEDF44F0F42E6C268E626472C81444CA79C06024C9CE4AA9E4E690CE98699670F8A7FE1222D21BBFB1FD8CAE46CF2CB87E98EB91D73599A7E8D77E13D00E9DE11B6B3BE792F26BA95751BB6847EF5D9D8868E372482428181C0EBC725980D4D2F5DD6B57D2F53F105BD869B3E912B4F6634FBD7B8490C914913F99E643191857E304F5E7A731EAFE00D07525D4DEE2EAF12EF51BAB7BB699645262960DBE5955208C7C832181CF355D09B6A16FF0DB4A8B55B7D462D675B4992058A726E94B5D0499A65F318AE40DEEF9085410718C0C5501F0CAC4C9248FE29D7647FB77DBD19DE0223B92D93201E57CC71F28DFBB0B803181498D6876DA258C5A6A68DA7C334F3AC0E57CCB898BC8E7CA932CCC7A92735D332331C8CE0FA0CD7A583D2998D4D589710C171118A78A39A23CB2C8370241C8E0FB81501D334DFF00A06D8E0F19308FF0AE9714F722E29D2B4CCE3FB334FCFF00D711FE14C1A569DB88FECFB0E3AFEE07F852E58F60BB03A5E9BBB1FD9D63C7FD305FF0A0695A6E093A7D8F1D47D9D7FC28E58F60BB03A6E96173FD9B618F4F207F8535B4DD28673A7D8E3BFEE07F853E55D82EC4FECDD23AFF006759127FE9DC7F853BFB3749C0C69B6246703FD1C7F851C8BB05C71D2F4B2401A75873D0FD9D7FC293FB2B4E04E34FB1E3FE982FF851CB1EC17628D334EDBC69F6231EB00FF0A45D274D24B7F6769E71D7300FF0A3963D82EC71D2B4CC06FECBD3FF00EFC0FF000A41A56978E74CB11FF6C57FC2972AEC1762FF0066698318D3ECFF00EFC8E3F4A56D374E3C9D3AC8E4632621FE14F95760B87F6569A30A34CB0F6FDC8FF0A60D2F4F0C47F67D86475FDC0FF0A5CABB05D83697A6EEC7F6758F1FF4C17FC281A569A724E9F6391FF4EEBCFE9472C7B05D81D374B0B9FECDB1FF00BF03FC29A74DD28127FB3EC47FDB01FE14F95760BB13FB3B49233FD9F6473FF4C07F853BFB3749C71A6D8919C0CDB8FF000A395760B8E3A669848034FB1E7A7EE17FC290E95A7027FE25F6271FF4C17FC28E58F60BB14697A69071A758F1EB02FF008522693A6927FE25DA79C75FDC0FF0A3963D82EC71D2B4CDB9FECCB0C0FF00A623FC293FB2B4CC73A6588CFA42BFE14B95760BB0FECBD2F1C69D67EFFB95FF000A3FB2F4C1C8D32C7D33E48FF0A7CABB05D8EFECAD33017FB32C3F1847F8547FD93A686DBFD9DA7E476FB38FF0A5CABB05D8A74BD341C0D3AC7F08147F4A51A5E9C73FE8165C73FEA179FD29F2C7B05D8874CD2F6EE3A6D81FFB775FF0A63699A4E7274EB019FF00A771FE1472AEC17620D3747C67FB3AC8E7A7FA38FF000A9069FA585F974FB22071FEA07F851C8BB05C7369DA6B1E74FB239E06601FE14874AD38123FB3EC78FF00A60BFE1472AEC1705D2F4D20FF00C4BEC73EF02FF8522693A6B13FF12EB06C75FDC0FF000A3963D82EC79D2B4CDB9FECCB0E3FE988FF000A6FF65E99DF4DB219F4847F852E55D82EC3FB2F4BE31A75967BFEE57FC297FB334D03234DB2FA9847F853E55D82EC5FECAD30003FB32C0FD611FE14CFECBD3C363FB3EC323B7903FC2972AEC1760DA569A0E3FB3AC73FF5C17FC294695A71273A7D8F1CFF00A85E9F951CB1EC1763A1B2B08184D0D8DA46EA0E19210A4763C8A9C94639CA8FCEA92B6C173FFFD9"
Return Binary($BackgroundPic)
EndFunc ;==>BackgroundPic
Ich hoffe, das es brauchbar ist... Möge das Script mit euch sein !
bye
tv_freeze