So wie ich das sehe, versuchst du einem Button mit GuiSetOnEvent eine Funktion zuzuweisen,
Dazu musst du allerdings GuiCtrlSetOnEvent verwenden!
E
So wie ich das sehe, versuchst du einem Button mit GuiSetOnEvent eine Funktion zuzuweisen,
Dazu musst du allerdings GuiCtrlSetOnEvent verwenden!
E
Hier findest du den Code einer CallBack Dll von Progandy: http://www.autoitscript.com/forum/topic/83…post__p__604118
theoretisch musst du nur innerhalb der Funktion "DownloadProc" die empfangenen Daten speichern.
entweder direkt mit in FreeBasic, oder ca. so:
Dazu zuerst eine DllStruct in AutoIt erstellen, die genügend Bytes groß ist und deren Pointer als Parameter $User an DownloadProc übergeben.
Dann die empfangenen Daten in den reservierten Speicher schreiben und am Schluß die Struct via FileWrite speichern...
E
Hi
Willst du weißes Rauschen über die PA abspielen und wieder mit einem Messmikro aufnehmen und die Frequenzspektren vergleichen?
Das Rauschen in Echtzeit zu erzeugen geht mit AutoIt nicht.
Die einfachste Variante wäre ein weißes Rauschen als Wav-Datei abzuspielen.
Zum abspielen von Wav-Dateien findest du in der Hilfe genug Beispiele.
Und um das Frequenzspektrum des Eingangs anzuzeigen brauchst du theoretisch nur im Hilfebeispiel "_BASS_EXT_ChannelGetFFT" den Filestream durch einen Recordstream ersetzen (siehe _BASS_RecordStart)
Alternativ zur Wav-Datei fallen mir noch 2 Möglichkeiten ein:
1) _BASS_EXT_MemoryBufferCreate verwenden und Buffer mit weißem Rauschen befüllen
2) Eine CallBack-DLL erstellen, welche in Realtime das Rauschen generiert (Beispiele in der Hilfe unter "Using CallBacks")
Vielleicht bau ich auch irgendwann noch verschiedene Rauschtypen in _BASS_EXT_Generator ein ![]()
E
Via CreateIconIndirect und DrawIconEx lassen sich auch BMP-Bilder mit Transparenz laden und darstellen.
Beispiel im Anhang
Habt ihr das Script auch getestet?
Es ging um die Frage, wie man ein GDI+Image zu einem HBitmap umwandeln kann, und die Alphawerte erhalten bleiben.
Das geht, allerdings muss man zum zeichnen DrawIconEx verwenden, denn mit BitBlt wird das nichts.
Und auch für AlphaBlend müsste man das Bild vorher noch umrechnen - oder?
Hier hab ich noch eins für euch:
#include <Constants.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
_GDIPlus_Startup()
Global $hBitmap = _CreateBitmap()
Global $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_Shutdown()
Global $hGui = GUICreate("Test", 800, 200)
GUISetBkColor(0x394E69)
GUISetState()
Global $hIcon = _WinAPI_CreateIconIndirect($hHBitmap, $hHBitmap)
_WinAPI_DeleteObject($hHBitmap)
Global $hDC = _WinAPI_GetDC($hGui)
Global $hDC_BG = _WinAPI_CreateCompatibleDC($hDC)
Global $hBMP_BG = _WinAPI_LoadImage(0, @ScriptDir & "\Wasserlilien.bmp", $IMAGE_BITMAP, 0, 0, $LR_LOADFROMFILE)
_WinAPI_SelectObject($hDC_BG, $hBMP_BG)
_WinAPI_BitBlt($hDC, 0, 0, 800, 200, $hDC_BG, 0, 0, $SRCCOPY)
_WinAPI_DeleteDC($hDC_BG)
_WinAPI_DeleteObject($hBMP_BG)
_WinAPI_DrawIconEx($hDC, 0, 0, $hIcon, 800, 200)
_WinAPI_DestroyIcon($hIcon)
_WinAPI_ReleaseDC($hGui, $hDC)
While GUIGetMsg() <> -3
Sleep(10)
WEnd
Func _CreateBitmap()
Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND(_WinAPI_GetDesktopWindow())
Local $hBitmap = _GDIPlus_BitmapCreateFromGraphics(800, 200, $hGraphics)
_GDIPlus_GraphicsDispose($hGraphics)
Local $hContext = _GDIPlus_ImageGetGraphicsContext($hBitmap)
Local $hBrush = _GDIPlus_BrushCreateSolid(0xFF000000)
Local $hPen = _GDIPlus_PenCreate(0xFF00FF00)
For $i = 1 To 8
_GDIPlus_BrushSetSolidColor($hBrush, BitOR(BitShift($i * 0xFF / 8, -24), 0x000000FF))
_GDIPlus_GraphicsFillEllipse($hContext, ($i - 1) * 100, 10, 100, 100, $hBrush)
Next
_GDIPlus_PenDispose($hPen)
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_GraphicsDispose($hContext)
Return $hBitmap
EndFunc ;==>_CreateBitmap
; #FUNCTION# ====================================================================================================================
; Name...........: _WinAPI_CreateIconIndirect
; Description....: Creates an icon or cursor that has the specified size, colors, and bit patterns.
; Syntax.........: _WinAPI_CreateIconIndirect ( $hBitmap, $hMask [, $XHotspot [, $YHotspot [, $fIcon]]] )
; Parameters.....: $hBitmap - Handle to the icon color bitmap.
; $hMask - Handle to the icon bitmask bitmap.
; $XHotspot - Specifies the x-coordinate of a cursor's hot spot. If creates an icon, the hot spot is always in
; the center of the icon, and this member is ignored.
; $YHotspot - Specifies the y-coordinate of the cursor's hot spot. If creates an icon, the hot spot is always in
; the center of the icon, and this member is ignored.
; $fIcon - Specifies whether creates an icon or a cursor, valid values:
; |TRUE - Creates an icon. (Default)
; |FALSE - Creates a cursor.
; Return values..: Success - Handle to the icon or cursor that is created.
; Failure - 0 and sets the @error flag to non-zero.
; Author.........: Yashied
; Modified.......:
; Remarks........: The system copies the bitmaps before creating the icon or cursor. Because the system may temporarily
; select the bitmaps in a device context, $hBitmap and $hMask should not already be selected into a device context.
; The application must continue to manage the original bitmaps and delete them by _WinAPI_DeleteObject() when they
; are no longer necessary.
; Related........:
; Link...........: @@MsdnLink@@ CreateIconIndirect
; Example........: Yes
; ===============================================================================================================================
Func _WinAPI_CreateIconIndirect($hBitmap, $hMask, $XHotspot = 0, $YHotspot = 0, $fIcon = 1)
[/autoit] [autoit][/autoit] [autoit]Local $tICONINFO = DllStructCreate($tagICONINFO)
[/autoit] [autoit][/autoit] [autoit]DllStructSetData($tICONINFO, 1, $fIcon)
DllStructSetData($tICONINFO, 2, $XHotspot)
DllStructSetData($tICONINFO, 3, $YHotspot)
DllStructSetData($tICONINFO, 4, $hMask)
DllStructSetData($tICONINFO, 5, $hBitmap)
Local $Ret = DllCall('user32.dll', 'ptr', 'CreateIconIndirect', 'ptr', DllStructGetPtr($tICONINFO))
[/autoit] [autoit][/autoit] [autoit]If (@error) Or (Not $Ret[0]) Then
Return SetError(1, 0, 0)
EndIf
Return $Ret[0]
EndFunc ;==>_WinAPI_CreateIconIndirect
und das ist das Ergebnis:
Die Alphawerte der einzelnen Kreise bleiben doch erhalten...
E
Heute wurde in der Shoutbox quasi danach gefragt, wie man mit GDI ein transparentes GDI+Bild zeichnen kann
Dies ist möglich mit DrawIcon:
#include <GDIPlus.au3>
#include <WinAPI.au3>
_GDIPlus_Startup()
Global $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\autoit_logo_gtaspider.png")
Global $iImageW = _GDIPlus_ImageGetWidth($hImage)
Global $iImageH = _GDIPlus_ImageGetHeight($hImage)
Global $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Global $hGui = GUICreate("Test", $iImageW, $iImageH)
GUISetBkColor(0x394E69)
GUISetState()
Global $hIcon = _WinAPI_CreateIconIndirect($hHBitmap, $hHBitmap)
_WinAPI_DeleteObject($hHBitmap)
Global $hDC = _WinAPI_GetDC($hGui)
_WinAPI_DrawIconEx($hDC, 0, 0, $hIcon, $iImageW, $iImageH)
_WinAPI_DestroyIcon($hIcon)
_WinAPI_ReleaseDC($hGui, $hDC)
While GUIGetMsg() <> -3
Sleep(10)
WEnd
; #FUNCTION# ====================================================================================================================
; Name...........: _WinAPI_CreateIconIndirect
; Description....: Creates an icon or cursor that has the specified size, colors, and bit patterns.
; Syntax.........: _WinAPI_CreateIconIndirect ( $hBitmap, $hMask [, $XHotspot [, $YHotspot [, $fIcon]]] )
; Parameters.....: $hBitmap - Handle to the icon color bitmap.
; $hMask - Handle to the icon bitmask bitmap.
; $XHotspot - Specifies the x-coordinate of a cursor's hot spot. If creates an icon, the hot spot is always in
; the center of the icon, and this member is ignored.
; $YHotspot - Specifies the y-coordinate of the cursor's hot spot. If creates an icon, the hot spot is always in
; the center of the icon, and this member is ignored.
; $fIcon - Specifies whether creates an icon or a cursor, valid values:
; |TRUE - Creates an icon. (Default)
; |FALSE - Creates a cursor.
; Return values..: Success - Handle to the icon or cursor that is created.
; Failure - 0 and sets the @error flag to non-zero.
; Author.........: Yashied
; Modified.......:
; Remarks........: The system copies the bitmaps before creating the icon or cursor. Because the system may temporarily
; select the bitmaps in a device context, $hBitmap and $hMask should not already be selected into a device context.
; The application must continue to manage the original bitmaps and delete them by _WinAPI_DeleteObject() when they
; are no longer necessary.
; Related........:
; Link...........: @@MsdnLink@@ CreateIconIndirect
; Example........: Yes
; ===============================================================================================================================
Func _WinAPI_CreateIconIndirect($hBitmap, $hMask, $XHotspot = 0, $YHotspot = 0, $fIcon = 1)
[/autoit][autoit][/autoit][autoit]Local $tICONINFO = DllStructCreate($tagICONINFO)
[/autoit][autoit][/autoit][autoit]DllStructSetData($tICONINFO, 1, $fIcon)
DllStructSetData($tICONINFO, 2, $XHotspot)
DllStructSetData($tICONINFO, 3, $YHotspot)
DllStructSetData($tICONINFO, 4, $hMask)
DllStructSetData($tICONINFO, 5, $hBitmap)
Local $Ret = DllCall('user32.dll', 'ptr', 'CreateIconIndirect', 'ptr', DllStructGetPtr($tICONINFO))
[/autoit][autoit][/autoit][autoit]If (@error) Or (Not $Ret[0]) Then
Return SetError(1, 0, 0)
EndIf
Return $Ret[0]
EndFunc ;==>_WinAPI_CreateIconIndirect
(Das Bild "autoit_logo_gtaspider.png" ist das AutoIt.de-Logo ganz oben)
E
Vielleicht helfen dir die Funktionen "_BASS_EXT_Generator" und "_BASS_EXT_MakeWave" und "_BASS_EXT_SaveWave" aus der aktuellen BassUDF weiter.
E
für RunAutoIt.exe reicht das hier:
[autoit]Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & FileOpenDialog('AutoIt Skript wählen', @ScriptDir, '(*.au3)') & '"')
[/autoit]E
Du kannst auch ein durchsichtiges Fenster darüberlegen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$hGui = GUICreate("Test", 320, 240)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
$cEdit = GUICtrlCreateEdit("Edit", 10, 10, 300, 100)
$cInput = GUICtrlCreateInput("Input", 10, 120, 300, 20)
$cButton1 = GUICtrlCreateButton("Button 1", 10, 210, 145, 20)
GUICtrlSetOnEvent($cButton1, "_SetEditText")
$cButton2 = GUICtrlCreateButton("Button 2", 165, 210, 145, 20)
GUICtrlSetOnEvent($cButton2, "_SetInputText")
GUICtrlSetState($cButton1, $GUI_FOCUS)
[/autoit] [autoit][/autoit] [autoit]$hGuiNF1 = GUICreate("sdf", 300, 100, 10, 10, $WS_POPUP, $WS_EX_MDICHILD, $hGui)
WinSetTrans($hGuiNF1, "", 1)
GUISetState(@SW_DISABLE, $hGuiNF1)
GUISetState(@SW_SHOW, $hGuiNF1)
$hGuiNF2 = GUICreate("sdf", 300, 20, 10, 120, $WS_POPUP, $WS_EX_MDICHILD, $hGui)
WinSetTrans($hGuiNF2, "", 1)
GUISetState(@SW_DISABLE, $hGuiNF2)
GUISetState(@SW_SHOW, $hGuiNF2)
GUISetState(@SW_SHOW, $hGui)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While Sleep(100)
WEnd
Func _SetEditText()
Local $sText = ""
For $i = 1 To Random(5, 20, 1)
$sText &= Chr(Random(65, 90, 1))
Next
GUICtrlSetData($cEdit, $sText)
EndFunc ;==>_SetEditText
Func _SetInputText()
Local $sText = ""
For $i = 1 To Random(5, 20, 1)
$sText &= Chr(Random(65, 90, 1))
Next
GUICtrlSetData($cInput, $sText)
EndFunc ;==>_SetInputText
Func _Exit()
Exit
EndFunc ;==>_Exit
E
Du bist leider nur an 4 Stelle!
(Und das, obwohl du auch nicht die führenden Nullen wegmachst)
#include <Array.au3>
Global $tChr = DllStructCreate("char[64];")
Global $pChr = DllStructGetPtr($tChr)
Global $hDll = DllOpen("msvcrt.dll")
Global $iLoops = 500
Global $iTestCnt = 7
Global $aTime[$iTestCnt + 1][2]
$aTime[1][1] = "Divisionsmethode"
$aTime[2][1] = "Subtraktionsmethode"
$aTime[3][1] = "Ausgedachte Methode mit Optimierung"
$aTime[4][1] = "DllCall"
$aTime[5][1] = "DllCall mit Optimierung"
$aTime[6][1] = "Buphx"
$aTime[7][1] = "BugFix"
Global $iTimer, $iInt, $bDif
Global $aRes[$iTestCnt + 1]
For $i = 1 To 31
For $j = 1 To $iLoops
$iInt = Int(2 ^ $i) + Random(0, 2 ^ ($i - 1), 1)
$iTimer = TimerInit()
$aRes[1] = _DecToBin_1($iInt)
$aTime[1][0] += TimerDiff($iTimer)
$iTimer = TimerInit()
$aRes[2] = _DecToBin_2($iInt)
$aTime[2][0] += TimerDiff($iTimer)
$iTimer = TimerInit()
$aRes[3] = _DecToBin_3($iInt)
$aTime[3][0] += TimerDiff($iTimer)
$iTimer = TimerInit()
$aRes[4] = _DecToBin_4($iInt)
$aTime[4][0] += TimerDiff($iTimer)
$iTimer = TimerInit()
$aRes[5] = _DecToBin_5($iInt)
$aTime[5][0] += TimerDiff($iTimer)
$iTimer = TimerInit()
$aRes[6] = _DecToBin_6($iInt)
$aTime[6][0] += TimerDiff($iTimer)
$iTimer = TimerInit()
$aRes[7] = _DecToBin_7($iInt)
$aTime[7][0] += TimerDiff($iTimer)
$bDif = False
For $x = 1 To $iTestCnt
For $y = $x To $iTestCnt
If $aRes[$x] <> $aRes[$y] Then
$bDif = True
ExitLoop 2
EndIf
Next
Next
If $bDif Then
ConsoleWrite("! at least one result not correct: ")
For $x = 1 To $iTestCnt
ConsoleWrite($x & ":" & $aRes[$x] & " | ")
Next
ConsoleWrite(@CRLF)
Else
ConsoleWrite("+ all results correct: " & $iInt & " = " & $aRes[1] & @CRLF)
EndIf
Next
Next
_ArraySort($aTime)
For $i = 1 To $iTestCnt
ConsoleWrite("> " & Round($aTime[$i][0]) & " " & $aTime[$i][1] & @CRLF)
Next
Func _DecToBin_1($iDec) ; Divisionsmethode
Local $sRet
While Not $iDec = 0
$iDec /= 2
If IsInt($iDec) Then
$sRet = '0' & $sRet
Else
$sRet = '1' & $sRet
$iDec -= 0.5 ; Ohne den Rest gehts weiter
EndIf
WEnd
If Not $sRet Then Return '0'
Return $sRet
EndFunc ;==>_DecToBin_1
Func _DecToBin_2($iDec) ; Subtraktionsmethode
Local $sRet
$iDec += 1
For $i = Ceiling(Log($iDec) / Log(2)) To 0 Step -1
If $iDec - 2 ^ $i > 0 Then
$sRet &= '1'
$iDec -= 2 ^ $i
Else
If $sRet Then $sRet &= '0'
EndIf
Next
If Not $sRet Then Return '0'
Return $sRet
EndFunc ;==>_DecToBin_2
Func _DecToBin_3($iD) ; Ausgedachte Methode 1
Local $sR
If $iD < 65536 Then
While $iD
$iD /= 2
Switch IsInt($iD)
Case True
$sR = '0' & $sR
Case Else
$sR = '1' & $sR
$iD -= 0.5
EndSwitch
WEnd
If Not $sR Then Return '0'
Return $sR
Else
Local $sH = Hex($iD)
Local Static $aB[16] = ['0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111']
For $i = 1 To StringLen($sH) Step 1
$sR &= $aB[Int('0x' & StringMid($sH, $i, 1))]
Next
Return StringRegExpReplace($sR, "^0+([^0]|0$)", "\1", 1)
EndIf
EndFunc ;==>_DecToBin_3
Func _DecToBin_4($iD)
Local $tChr = DllStructCreate("char[64];")
DllCall("msvcrt.dll", "ptr:cdecl", "_i64toa", "int64", $iD, "ptr", DllStructGetPtr($tChr), "int", 2)
If @error Then Return SetError(1, 0, False)
Return DllStructGetData($tChr, 1)
EndFunc ;==>_DecToBin_4
Func _DecToBin_5($iD)
DllCall("msvcrt.dll", "ptr:cdecl", "_i64toa", "int64", $iD, "ptr", $pChr, "int", 2)
Return DllStructGetData($tChr, 1)
EndFunc ;==>_DecToBin_5
Func _DecToBin_6($quelle)
$bin = Hex($quelle)
$aBin = StringSplit($bin, "")
Local $return = ""
For $i = 1 To 8 Step +1
Switch $aBin[$i]
Case "0"
$return &= "0000"
Case "1"
$return &= "0001"
Case "2"
$return &= "0010"
Case "3"
$return &= "0011"
Case "4"
$return &= "0100"
Case "5"
$return &= "0101"
Case "6"
$return &= "0110"
Case "7"
$return &= "0111"
Case "8"
$return &= "1000"
Case "9"
$return &= "1001"
Case "A"
$return &= "1010"
Case "B"
$return &= "1011"
Case "C"
$return &= "1100"
Case "D"
$return &= "1101"
Case "E"
$return &= "1110"
Case "F"
$return &= "1111"
EndSwitch
Next
;Return $return
Return StringRegExpReplace($return, "^0+([^0]|0$)", "\1", 1)
EndFunc ;==>_DecToBin_6
Func _DecToBin_7($Value); von BugFix
$bin = ''
Do
$bin = Mod($Value, 2) & $bin
$Value = Floor($Value / 2)
Until $Value = 0
Return $bin
EndFunc ;==>_DecToBin_7
Die Funktion von James1337 konnte ich leider nicht dazunehmen, da sie eine fixe Längenangabe verwendet...
Ergebnis:
> 458 DllCall mit Optimierung
> 624 DllCall
> 876 Ausgedachte Methode mit Optimierung
> 1103 Buphx
> 1131 Subtraktionsmethode
> 1230 Divisionsmethode
> 1334 BugFix
E
Bei ganz kleinen Zahlen zwar etwas langsamer, aber ansonsten die schnellste Funktion ist diese hier:
[autoit]Func _IntToBin($iInt)
Local $tChr = DllStructCreate("char[64];")
DllCall("msvcrt.dll", "ptr:cdecl", "_i64toa", "int64", $iInt, "ptr", DllStructGetPtr($tChr), "int", 2)
If @error Then Return SetError(1, 0, False)
Return DllStructGetData($tChr, 1)
EndFunc ;==>_IntToBin
Und hier auch noch gleich eine Funktion um verschiedene Systeme umzuwandeln:
[autoit]Func _TranslateBase($sNumber, $iOldBase = 10, $iNewBase = 2)
;by eukalyptus
If $iOldBase < 2 Or $iOldBase > 36 Or $iNewBase < 2 Or $iNewBase > 36 Then Return SetError(1, 1, False)
Local $iNum, $aRes, $tChr = DllStructCreate("char[64];")
[/autoit][autoit][/autoit][autoit]If $iOldBase <> 10 Then
$aRes = DllCall("msvcrt.dll", "uint64:cdecl", "_strtoui64", "str", $sNumber, "ptr", 0, "int", $iOldBase)
If @error Then Return SetError(1, 2, False)
$iNum = $aRes[0]
Else
$iNum = Int($sNumber)
EndIf
$aRes = DllCall("msvcrt.dll", "ptr:cdecl", "_i64toa", "int64", $iNum, "ptr", DllStructGetPtr($tChr), "int", $iNewBase)
If @error Then Return SetError(1, 3, False)
Return DllStructGetData($tChr, 1)
EndFunc ;==>_TranslateBase
Hier noch eine Methode
bei Zahlen < 65536 wird Methode 1 angewendet, da sie bei mir am schnellsten war...
Func _DecToBin_4($iD)
Local $sR
If $iD < 65536 Then
While Not $iD = 0
$iD /= 2
If IsInt($iD) Then
$sR = '0' & $sR
Else
$sR = '1' & $sR
$iD -= 0.5
EndIf
WEnd
If Not $sR Then Return '0'
Return $sR
Else
Local $aS = StringSplit(Hex($iD), "")
For $i = 1 To $aS[0]
Switch $aS[$i]
Case "0"
$sR &= "0000"
Case "1"
$sR &= "0001"
Case "2"
$sR &= "0010"
Case "3"
$sR &= "0011"
Case "4"
$sR &= "0100"
Case "5"
$sR &= "0101"
Case "6"
$sR &= "0110"
Case "7"
$sR &= "0111"
Case "8"
$sR &= "1000"
Case "9"
$sR &= "1001"
Case "A"
$sR &= "1010"
Case "B"
$sR &= "1011"
Case "C"
$sR &= "1100"
Case "D"
$sR &= "1101"
Case "E"
$sR &= "1110"
Case "F"
$sR &= "1111"
EndSwitch
Next
Return StringRegExpReplace($sR, "^0+([^0]|0$)", "\1", 1)
EndIf
EndFunc ;==>_DecToBin_4
Edit: Deine Version ist allerdings am schnellsten, wenn man die Variablenamen noch kürzt und das Array als Static deklariert
Func _DecToBin_3($iD) ; Ausgedachte Methode 1
Local $sR
If $iD < 65536 Then
While Not $iD = 0
$iD /= 2
If IsInt($iD) Then
$sR = '0' & $sR
Else
$sR = '1' & $sR
$iD -= 0.5
EndIf
WEnd
If Not $sR Then Return '0'
Return $sR
Else
Local $sH = Hex($iD)
Local Static $aB[16] = ['0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111']
While StringLeft($sH, 1) = '0'
$sH = StringTrimLeft($sH, 1)
WEnd
For $i = 1 To StringLen($sH) Step 1
$sR &= $aB[Int('0x' & StringMid($sH, $i, 1))]
Next
While StringLeft($sR, 1) = '0'
$sR = StringTrimLeft($sR, 1)
WEnd
If Not $sR Then Return '0'
Return $sR
EndIf
EndFunc ;==>_DecToBin_3
Wav-Datei binär laden oder als Binärstring in den Quellcode schreiben.
Dann in den Speicher laden mit DllStructSetData und abspielen
Global $bWav1 = "0x524946465414000057415645666D74201000000001000100112B0000112B000001000800646174612F1400008080808080808080808080808080808080808080808080818181808080808080807F7F7F7F7F7F7F808080808081818181818181818080807F7F7F7E7E7E7E7F7F808080818182828282828281818080807F7E7E7E7E7E7E7F7F80808080808181818282828181818080808080808080807F7F7F7D7C7C7B7B7B7C7F808082878A8D8F90908F8C8886807E7874706C6A6A6B6C71787E828A90969A9CA09F9A958F8680786E67615D5B5D60666E787F8A959CA3A8ABABA6A0998C80786B6158525152575D66717D8794A0A9AEB2B3B2ABA094867A6B5F554E4E4E4E57606C798394A0A9B2B5B8B5B2A6998C806E61554E4E4E4E535D66767F909CA6AFB8B9B8B2A99F8F807161584E4E4E4E535A66737F8A96A3ABB2B4B4B2A89F928276675F55514E51575D66717E87949CA3A9ADADA9A59B92867E71675F5B57575B616A737D828D959A9FA1A3A19C998F87807A716B676565666A70747A7F838A8F92949494928F8C86827F7A78747473747478797D7F7F818283838383868683838382828281818080807F7F7E7E7D7A79787878797A7D7F8183888C8D9090908F8D8886807E78736E6B6A6A6A6C71787E838A92969B9F9F9F9A958D8680766E67605D5B5D616670797F8A959CA3A9ABABA69F998C80746B6158525153575F66737F8A95A0A9AFB4B3B2A99F928276675F554E4E4E5158616C7D8796A0A9AFB5B9B5B2A599887A6B5F534E4E4E4E535D6A7883909CA9AFB8B9B8B2A89B8D806E61554E4E4E4E535D66737F8D9CA6ADB2B4B4B2A69B8F8074675B554E4E52575F67737F88949CA5A9ADABA9A39A8F837A70675F58585A5D646A737E838F959BA0A1A19F9B958F868078716B676565676B70767D7F868A8F92949492908F8C87827F7A78747474747478797D7F7F818283838383838686838383828282818180807F7F7E7D7A7A79787878797A7E7F8186888C8F9090908F8C8883807D78736E6B6A6A6B6E73797F838C94999B9F9F9C9A948C827E746B655F5B5B5D61677079828D96A0A6ABADABA59F95888074675F585251535A606A737F8A96A1A9AFB4B4B2A89C8F8074675B534E4E4E515A64707E8A96A3ABB3B8B9B4ADA1998678675B524E4E4E4E57606C798394A0A9B3B8B9B5B2A5998C806E5F554E4E4E4E555F6A7883909BA6AEB3B4B2AEA59A8C8074675B524E4E5257606A767F8A959FA6ABAEADA8A19A8F827A6E655D58575A5D646B747F8790969B9FA1A19F9A958D867E766E6A676565676C71767D81878C8F92949492908D8A86817F7A787474747476787A7D7F7F818283838383838683838383828282818180807F7F7E7D7A7A79787878797A7E7F82868A8C8F9090908F8C8782807A76716E6B676A6B6E73797F868D94999CA0A09C99928C827A746B645F5B5B5F646A717D83909AA0A6A9ADABA59B92877E71675D555151535A606B787F8D9AA5ADAFB3B3B2A59A8C8074675B514E4E4E525A65737F8A9AA3AEB4B8B8B3ABA1928274675B4E4E4E4E4E57606C7D8796A1ADB4B8B9B4AEA599867A6B5F534E4E4E4E57606C7983949CA8AEB3B4B2ABA5998C8070645B534E4E525A616C767F8A96A0A6ABADABA8A0998C80786B645D58575A5F656C767F8790969CA0A1A19F9A948C827E746E6A676566676C71787E82888D9092949492908D8883807E7A787474747476787A7E7F80828283838383838383838383828282818180807F7E7E7D7A7978787878797A7E7F82868A8D8F9090908F8C86817F7974706C6B6A6A6B70747A7F878F959A9C9F9F9C999288807A7167615F5B5D60656B737E86909AA1A6ABADA9A59B92867A6E675B535152555A646C7983909AA3ADB3B4B2ADA5998C806E6158514E4E4E535D66737F909CA6AEB5B9B8B2AB9F92807465584E4E4E4E515A64717F8A96A3AEB5B9B9B4ADA1948278675B514E4E4E515864707D8796A1A9AEB3B4B2ABA195877A6E6158524E4E535A646E79838F9AA1A8ABADABA69F958880746B615B58585B606670797F8A90969CA0A1A09C99928A817A746E676565666A6C73797F838A8D90949494928F8C8882807E79767473737476787A7E7F818283838683838383838383828282818180807F7F7E7E7D7A7A79797979797D7F7F83878A8D8F90908F8D8A86817E7974706C6A6A6B6C71767D818890969A9C9F9F9B998F8780786E67615D5B5D60656C767F88949BA3A8ABABA8A1998F82786C615B555152575D66707A83909CA6AEB3B4B2ABA199887A6C6057514E4E4E555F6A7883909CA8AFB5B9B8B2A89B8C807061554E4E4E4E515A66737F8D9BA6AFB5B9B8B3AB9F92817467584E4E4E4E525A65717F8A96A1A9B2B4B4B2AB9F9283786B5F554E4E51535B65707D87909BA3A9ADADA9A59C94877E7167605B57585B616A717A828C949A9CA0A1A09C999088807A716B676565666A6E737A7F838A8F92949494928F8C8782807D79747473737476797D7E7F818283838686868686838383828282818180807F7F7E7E7D7A79797878797A7D7F8183878A8D8F90908F8D8886807D7874706B6A6A6B6E71787E828A90969B9F9F9F9B958F8680766E67605D5B5D606670787F8A959CA3A8ABABA8A0998C80786B6158525152575D66737E8895A0A9AFB2B3B2AB9F92837A6B5F534E4E4E4E57606C798694A0A9B3B5B8B4B2A5998C806E5F554E4E4E4E535D6A767F909CA8AFB5B9B8B2A89B8D807161584E4E4E4E535B66737F8D9AA3ADB2B4B4B2A89F908174675D55514E4E555F66737E87949CA5A9ADADA9A59B92867D70675F5B57575B646A737D838D9"
$bWav1 &= "59A9FA1A1A09B968F878078716B676565676B70747A7F868A8F92949492928F8C86817F7A78767474747478797D7F7F818283838383838383838382828282818180807F7F7E7D7A7A79787878797A7D7F8183888C8F9090908F8C8883807D78736E6B6A6A6B6C73797F838A92969B9C9F9C9A958C8680746C67615D5B5D606770797F8A969CA3A9ADABA6A0998C80746A6057525253575D66737F8A96A0A9B2B4B3B2A99F928278675B534E4E4E5158616C7D8896A1A9B2B8B9B4AEA599887A6B5D524E4E4E4E555F6A7883949FA9B2B8B9B8B2A89B8C806E61554E4E4E4E535D6A767F8F9CA6ADB2B4B4B2A69B8F8074675B534E4E51575F6A737F8A949CA6A9ADABA8A19A8F827A6E675F5A585A5D646B737E838D959B9FA0A09F9B958D868078716B676566676B70767D7F868A8F92949492908D8A86817F7A78767473747678797D7F7F818383838383868683838383828281818180807F7F7E7D7A7A79787878797A7E7F8186888C8F9090908F8C8882807A76716E6B6A6A6B6E73797F838C949A9C9F9F9F9A948C827E746B645F5B5B5D61677079838D969FA6ABADABA59F95888071675F5752515358606A737F8A96A3ABB2B4B4B2A89B8F8074675B524E4E4E525A65707E8A96A3ABB3B8B9B4ADA1958678675B514E4E4E4E57606C798794A0ADB3B8B8B5B2A6998C806E5F534E4E4E4E555F6A7883909BA6AEB3B4B3AEA5998C8074675B524E4E5258606B767F8A96A0A6ABADABA8A1998C80786C645D58575A5F656C767F8790969BA0A1A19F9A948C837E766E6A676566676C71787E81878C8F92949492908C8886807F7A78747474747678797D7F808282838383838383838383838282828181807F7F7F7E7D7A7A79787878797A7E7F82868A8D8F9090908F8C8882807A76716E6B676A6B7073797F878D949A9CA09F9C99928C817A716A645F5B5B5F646A737D839096A0A6ABADABA59C92877E71675B555151535A606B767F8D9BA6ADAFB3B3B2A5998C80746758514E4E4E535A66737F8D9AA6AEB3B5B8B4AB9F928274675B514E4E4E4E5764707E8A96A3ADB4B8B8B4AEA5998678675D524E4E4E5157606C7987949CA6AEB3B3B2ABA19988806E615B534E4E535A646C797F8D96A0A6ABADABA6A0998C80766B645D58575A60666C767F8790969CA0A1A19F99928C827D746E67676566676C73797F82878D9092949292908C8883807E79767474747476797A7E7F80828383838383838383838383828282818180807F7F7E7D7A7978787878797A7E7F82878A8D909092908F8C86827F7A74706C6B6A6A6B70747A7F878F969B9FA09F9C999288807A7167615F5B5B5D646B737E87909AA1A8ADADA9A59B92867A6E645B535152555A646C7983909BA6AEB3B4B2AEA5998C806E61584E4E4E4E535D66737F909CA6AEB4B9B8B2AB9F92807464584E4E4E4E515A64707F8A96A3AEB5B9B8B4ADA1948278675B514E4E4E515764707D8895A0A9AFB3B4B2ABA195877A6E6158524E4E535A64707983909AA1A8ADADABA59F958880746B615B58585B606770797F8A92969CA0A0A09C999288817A746E676665676A6C73797F83888D90929492928F8C8883807E7A787474747476787A7E7F80818283838383838383838383838282818180807F7E7E7D7A7978767878797A7F7F83878A8F909290908D8A86817E79746E6B6A6A6A6C70767D818890969C9FA09F9B99908780786E67605B5B5B5F656C767F87929BA3A9ADADA9A19A8F82786C645B555151555B65707A83949CA8AEB3B4B2ABA199877A6B5F554E4E4E4E575F6B787F909CA8AFB5B9B8B2A89B8D807061554E4E4E4E515A66737F8D9AA6AFB5B8B8B3AB9F92817467584E4E4E4E515A64717F8A96A1ABB2B3B3B2A99F92867A6B5F55514E51555B65707D87909AA3A9ADADA9A59F9487807167615B57585B616A7179828A949A9CA0A1A09C999088807A716C676665676B6E747A7F838A8D90929292928F8C8782807E79767474747476797A7E7F80828283838383838683838383838282818180807F7E7D7A7A7978787878797D7F8183888C8F909292908D8886807E78716E6B6A676A6C71767E828A90969CA0A09F9B968F8680786E67605D5B5D60666E787F8A949CA3A9ADABA8A1998C80786B6158525152575D66717E8895A1A9AFB3B4B2AB9F92867A6B5F534E4E4E4E57606C798394A0A9B2B5B8B5B2A6998C806E5F554E4E4E4E535D6A767F909CA8B2B5B8B5B2A89B8D807164584E4E4E4E525A66737F8D96A3ADB2B4B3B2A89F928276675F57514E51575F66717E87949BA3A9ADABA8A39B92867D7167605B58585D646A737D838D959A9CA0A1A09B958F868078716B676565676B70767D7F838A8F92929292908F8C86827F7D79767474747678797D7F7F818283838383838383838383838282828180807F7F7E7D7A7A7978787878797D7F8183888C8F9092928F8D8883807D78716E6B6A6A6A6C73797F838A92969C9FA09F9A958D867E746B655F5D5B5D606670797F8A949CA5A9ADABA6A0998C8074675F57525153585F66737F8A96A0A9B2B4B3B2A89F928274675B534E4E4E5158646C7D8896A1A9B2B8B9B4AEA599887A6A5B524E4E4E4E55606B798394A0A9B3B8B9B5B2A69A8C806E61554E4E4E4E535D6A767F8F9BA6ADB2B3B3AEA59A8D8074675B534E4E5257606A747F8A959CA5A9ABABA8A1998F827A6E675F5A585A5F646C747F868F959B9FA0A09F9B958D868078706B676566676B70767D7F878C9092929292908D8A86817F7A787474747476787A7D7F80818283838383838686838383828282818180807F7F7E7D7A7A79787878797A7E7F8186888C8F9090908F8C8882"
$bWav1 &= "807A76716C6A676A6B6E73797F838D949A9C9F9F9C9A948C827D746B645F5B5B5D646A717D838D96A0A6ABADABA59F94888071675F575251535A606A767F8D96A3ADB2B5B4AEA69B8F8074675B534E4E4E525A65707F8A96A3ADB3B8B9B4ABA1948678675B514E4E4E4E5761707D8794A0ADB3B8B8B4B2A599887A6B5F534E4E4E4E55606C7983909CA6AFB3B4B2AEA5998C8071675B524E515358606C787F8D96A0A6A9ADABA6A0998C80786C655D58585A5F656C767F8790969CA0A1A19F99948C837E746E6A676565676C71787E82888D9092949492908C8886807E7A787474747476787A7D7F80818283838383838383838382828282818180807F7E7E7D7A7A79787878797A7E7F82868A8C909292908F8C8882807A74706C6A676A6B70747A7F878F959A9CA0A09C999288817A7167615D5B5B5F646B737D83909AA1A8ABABA9A59B92867A70675B535151535A646C797F8F9BA6ADB3B4B3AEA5998C80716458514E4E4E535D66737F8D9BA6AFB4B8B8B3AB9F92817467584E4E4E4E4E5864707D8A96A3AEB4B8B8B4AEA5958678675B524E4E4E4E57606C7D87949CA8AFB3B4B2ABA199887D6E6158524E4E535A646C7983909AA1A6ABADABA59F958C80746B645B58575A60666E787F8A929A9CA0A1A19F99928C827D746E676565666A6C73797F82888D90929492928F8C8883807E7A767474747476787A7E7F80828383838383838683838383828282818180807F7E7E7D7A7A79787878797D7F7F83878A8D909090908D8C86817F7974706B6A676A6C70767D7F8790969B9FA0A09C99908880797067615D5B5B5F656C767F87909AA3A9ABABA9A59A8F827A6E615B535252535A646E7983909CA6AFB4B4B2ADA59988806E61574E4E4E4E535D6A767F909CA6AFB5B9B8B2A89F8F807161574E4E4E4E515A66737F8A96A5AFB5B9B8B4ADA1928276675B514E4E4E515864707D8A96A1A9AFB3B4B2ABA195867A6E6157514E51535A65707D83909BA1A8ABABA9A59C928880746A615B58585B606770797F8A949A9CA0A09F9C999288817A746C676666676A6E737A7F83878C8F90908F8E8D8A8681807F7B7877777777797B7C7F808081818282828282818181818181818180808080807F7F7D7D7D7C7C7C7D7D7F8080818384868787878685858280807E7C7979777778797B7D7F80838587898A8A8A88878482807E7B797776767778797B7E8082858789898A8A89888683807F7C7979777677777A7B7D80818385878889898887858481807D7B79787979797A7C7D7F808284858687878786858381807E7D7B7B7B7B7B7B7C7E7F808182838485858585848381807F7E7D7C7C7C7C7C7D7E7F80808182838383838382828180807F7E7E7D7D7D7E7E7F808080818182828282828281808080807F7F7F7F7F7F7F7F80808080808181818181818180808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808000"
Global $bWav2 = "0x52494646E442000057415645666D742010000000010001002256000044AC00000200100064617461C0420000F9FF0700F8FF0800F7FF0900F6FF0A00F5FF0C00F3FF0E00F1FF1000EFFF1300EBFF1700E6FF1D00DEFF2700D0FF3900020003038FFBF2F1DBEF2CEA2DE4EEEB56F35CF289F4ADF518F7FEFB39048C0A5A1443193819961A6E187115EA136C0D330599040703B2FEA1FE79FE3AFBF2FCE3FFB1FCECFC090121033A05AE0702089A09700B3F0AD407C007410869074F0575023D02AC0023FC74F839F86DF832FB46007AFF1EFEB900FFFFD6FC57FC40FCF6FAAEFBFFFAF2F78DF7DCF7CEF628F6FBF553F5B8F4C8F2EEEF5CEE46EE86EF05F26BF3AAF4D3F835FCC5FB1DFDCA001602A10319057A02E5FFBA00B40056003B022E038C03690493041506F409520D190F7110B7109712AE151415281349126D0F1F0C250BEE08A3058D05DC039CFF3AFE13FEB8FDAAFF7A01B801AF03F005390653061506910573051B046601B2002C0004FED6FC6DFA55F6EAF481F537F4B4F4C2F6CFF5D6F44DF467F2B8F24BF53EF646F6B7F66BF570F4EBF3D7F173F175F27CF2CBF207F39BF2D1F3E9F536F6C8F71BFB5BFD62FFED01B2024A030F067207EC06CF068906F8044D037F01E6FFAEFF4A0047013B02A603F405F308E40A5F0DC81032149016E117CD173F16D514BA122F0F040CAD0A6C098C0721069E04DD0353045904690450057C063E071307EF05CB043804FA024F0160FF2DFD79FB21FA96F7D6F4C2F37AF222F1FDF036F112F23FF490F501F504F53CF5CDF43EF46FF303F32EF305F3CBF155F01CEF71EE6AEECFED9AEDABEE0AF0E9F0B9F2EFF4F1F6CEF98BFCF9FDC0FF2002670462065008680A730B9A0C3E0CA20A390903084E074C064705B60526078208A90A040DA70FD4129715C316A7171D18DC165A14F311540F430DB30B9609CE071D069204C4034C030203C603DA04D30453059305090564056105F503F40182006DFE88FB58F90BF7D7F4D9F2F3F003EFABED5FEDDDECCAECEBECACED39EF8DF00DF2C4F3F1F4A4F5D6F55FF521F493F36BF3C1F2A3F256F320F444F5C3F659F763F8C1F9DEFA07FCE9FD1200F90127043A05D1054D06FF069907BD0777071E07110777064006F806A6074809170B640C5B0DCC0EA10FDA0FEF100A12DF12AA133914F2139912FF10EF0E950C2E0A0E0837062D04D4020F02A401E6018302EA02CA02C5027402ED017401220195008BFF3BFEA0FCF7FA48F97BF744F503F3D7F0A1EE3DEDECEC34EDDAEDDFEEEEEFCAF0ECF118F3C4F3F2F3B1F36BF3D0F267F271F288F260F251F282F293F23CF397F4FBF5CCF70BFA15FCF5FDE3FF3A013D020D033E03610345033303AC0341047B04EB045D055905E605B2065507A608230A480BA90C8B0E2110DF118713B4142F153E15C4148613FF113610640E890C5D0A9208C106D30445030B02240116017301BF01670204033F038903D0035B038E027D010300FFFD0CFC0FFA65F8ACF652F566F47DF3B1F210F2B5F151F17BF1DDF110F2ADF280F3E7F306F429F498F3BBF258F230F2D9F1BAF1B8F168F18CF1FEF1E9F290F428F6C7F797F947FBCCFC5AFEC9FFFF0057020E03880339045C04CC03530316039B02D502DA031D05F9062409F70ADF0C110FDC107D1221144E15F91547165C16CD15D0149613D911E00FA90D830B7A09E3078F066B057F04D7034904A004B4041C05570591042B040B046F034203E80267018EFFB1FDE2FB1FFA92F823F7DEF581F415F309F21FF183F0B5F0AFF079F0F3F078F1CEF04EF00DF02BEFE6EEFAEEBCEEA7EED8EED8EEE4EE52EF31F09FF177F387F5C1F7CFF9DBFB7AFDD7FEF1FF4E01AC025003C60332044C042C049E0402053A05E0056C0681062F074A086A09A60A4C0C230E8310E01292148615E915DC156E15D514F713DD127C112110A60E110D940B840A70094F08BD07A70780075C073207BC062106C705A8055405A8049103A501B9FF28FEE5FC75FB7EFA6FF9A8F7DCF56CF4E5F269F14BF053EF6DEE00EE18EE4EEE6FEE7AEE91EEF6EDF6EC83EC28ECC7EBD5EBF0EBB1EB46ECB8EDE0EE80F0B4F2B8F45DF63FF812FAAAFB6AFDE5FE1F00D0004E01D801FF01C1016C01BD013E024503D804BC06E508640B820D350F321108133B148815A316F81637177317FD168F166B16DB15BE14A1137E1239112C106D0FDC0EB30EC40EF00EA50EC70DC80C780BEE09B508C0076606E30461034E01FCFE0CFD0FFBE7F834F7A4F5C6F35CF22FF104F02FEFC0EE62EE1CEEBAED60ED3DED94ECC6EB29EB4AEA6AE97EE99CE960E9C7E9F3E997E9E6E902EB27EC1BEEA5F091F22EF406F67FF7F1F898FAAFFBDDFCEEFD8DFE2DFF1C00E000D0010D03810473060809E90A750C7F0E4C10FB114114801612185219FC19C4197B192B199F183418971797169C15A0144113EB11E31021108E0F040F390E8D0DC70CB30BD60AF209C508C007AA06D804E102FE003DFE1CFBB1F887F6B8F4AAF3A0F21BF17CEF31EE2AED54ECBEEB81EB9BEB37EBDBEAD7EA52EA77E902E91BE829E7F0E6F2E6D2E613E7B1E754E881E9EAEA48EC1FEE53F055F269F444F6D4F7A1F9A8FB42FDD3FE6B00930188021703AF03AD0410065007E708E60AC20CDD0E1811DC12B514AF163D185A19291A6E1A3B1A101A8819D518371871176E161B15BE13C312011240116A10C80F370F600E780D880C410B1F0A2609D407800631056E037B0183FF04FD88FAA7F899F682F4BCF2CDF003EF11EE48EDBFECC7ECBDEC6AEC23EC59EB34EA81E995E8ABE73CE727E759E7FDE786E8CDE878E916EA84EA7CEBC2EC0FEE26F06CF220F40EF658F8D0F91FF"
$bWav2 &= "BC9FC33FE36FF6B005B0126028303D4041E06E207AC097E0BDA0DF80F001252145016EA17E4194C1BC71B581C301C301B771AD919CF180C1879174E161E150E1499125E1184107C0FA20E0A0E2C0D580C860B6B0AA709FB08F907BE063405BA022E00C0FDD9FA4CF875F6B5F4D0F243F1A5EFD8ED7DEC46EB31EA59E9B3E829E8F8E794E731E71EE70EE7BEE6BFE6E4E628E7E1E79CE8FEE8E9E939EB45ECA3ED8EEF5DF16EF37AF5FEF688F863FA03FCBCFD9AFFF10020026F0342041B05450638076508020A660B030D2D0F0811A51288140C167F170319FD19681A081B7D1B711B501BEF1AF1199B18211748157913DB117A10830FB20EDF0D720DDA0CCA0BC00AC90979082F07EA0526045E02B20085FE2FFC0AFADDF7DDF545F48FF2CDF040EFD5EDB9EC11EC63EBF0EAC9EA4EEAC0E982E927E9CDE87AE8FAE7A6E7C0E7E0E737E8CEE842E995E92FEAE5EABAEB4EED7DEF82F198F3C3F5D2F7E6F9E3FBB5FD84FF300168026603560456058706D207F808420AB00B260D9E0E3310D5114B13C6143C169017B7186619C919C5194B19CC189E18FF172E177016A415BC1410148013ED128912CB11FE10EF0FA30E620D4D0CFE0AB909A30853078B0571032C019BFE52FC15FADBF7F5F54DF48DF2E5F06EEF13EE41ED6EECA9EB17EB7AEAD7E9ADE979E9F3E8C6E892E80FE8DCE7F2E7FEE750E8CCE847E904EA12EB31EC8DED02EF63F0E4F18DF329F505F7D9F884FA70FC49FECEFF730124035A046D059F06F10778093A0BED0CCF0EB6108A123514BE154B17B618E719A81A1F1B251BEF1AB61A251A7019E0181518AC1646150814CD12BB11F51076101310B00F2B0F480E1E0DEF0BA80A01091A071905D1024E00D0FD6DFB1AF9D0F6BAF4A4F2CAF03EEFECEDBDECC6EBF4EA38EAB6E99FE989E94AE903E9A7E844E8AAE723E7B4E639E6BFE578E577E59FE526E6D6E6CCE742E9DEEAB1ECF5EE94F1FDF321F621F8AEF9F0FA64FCE7FD26FF51007C01AB02E1032A05AB066108190AF30BD70DA30FA711E713D6158A174B19BD1ABA1B5A1CB91C881C071C701B931A9E1999187A173416E214BA13CB122E12A81126117310750F740E600D300CFE0A9809C407C1055503A200ECFD3BFB5BF8AFF55BF352F158EFA3ED11ECA4EA70E98BE8B9E705E794E626E6B0E523E5B2E489E465E472E48EE49AE4E9E450E5D7E5AAE68FE772E86AE952EA78EB33ED08EFD5F0ADF25AF426F622F820FA0CFC12FECAFF0E016B02A6031605CF06A3086C0A840CE30E4211A813171667186C1A101C2C1DE61D211E191ECF1D091D031C2E1B521A9219B018B517B716DD1526157814E4132D135B1225118F0FFB0D710CDF0A7109EC07150629041902C2FF4CFD0DFBEBF8E8F6CAF4C0F2D3F007EF82ED26ECE0EAC2E908E931E83FE765E69EE5E0E43CE4C0E338E3FCE221E36BE3D3E3BDE408E62EE7F7E7DBE8FBE959EBFFECDBEEE6F01DF34FF55AF74EF926FBE5FC5AFEB9FF1C0190023804F705BC076909450B5E0DA00FD911FB1324160518BB19501BC91C221E6A1F3D2051203220DA1F3F1F871EC21DC11CA91B9C1A5A193F186E17CB162E1665153F140613C71174102C0FC40D140C440A2C08A7051B039D00E8FD2EFB5CF85DF533F273EF1CED09EB78E9E1E856E89BE7C4E619E6A0E548E52AE553E59EE59CE578E53DE5EDE4F3E43CE558E59DE55DE631E720E886E9F1EA83EC81EE8BF07BF2BAF427F758F996FBD4FDD7FFB701A2035605CE062A08A609190BA90C810E74103C12FA13FE15F717E219001CFE1D521F2720D1200521D52088200C203A1F451E1B1D6F1BD6197C183D17FA15E114DF13C712B6117010E00E510D010C8F0AD908D406B704290254FFA0FC1EFA94F723F5C1F223F0C2EDF7EB3DEAAEE850E717E616E590E41EE4C7E39BE348E3C3E24CE2E9E1E9E12FE24FE27CE2D4E218E394E374E434E52AE677E7A9E8F5E9BBEBBCED1DF0B0F207F52EF787F9CEFBE5FDF2FFED01AF036A052207D508BA0AC10CBE0EA1109512BB1423174B19281BD91C211E051FD81F54203F20DE1F481F601E541D601C7E1BA11A85194A180317E815F414EA139D1245110C10980EEA0C190B4F0965073205E6027900FCFD93FB23F975F6BBF34AF11FEF21ED57EBB3E92BE8DAE6C1E59DE4D3E370E3CAE2E9E13EE1D0E0C2E0E3E0E5E014E159E1A4E131E20CE3FDE32DE583E6C5E723E9B1EA53EC3DEE45F02DF223F465F672F880FAD6FC14FF3F0170037F058707DD091D0C430E82108812581461165C18261AE01B3E1D5C1E5D1FF71F2C207D206920A01FD71E301E2B1D091CE91A991963188317AF16E5154D157E146E133012B510360FD80D1E0C3C0A5708D10501037A0096FD96FAFBF75FF595F213F0BBED86EBD1E941E8DAE606E65CE5DEE49BE447E4D4E38BE30DE36CE242E21BE2DBE1FCE132E25BE22EE363E466E59FE62EE8BFE95CEB23EDF0EEDBF0CCF2A0F47EF674F831FADBFB63FDA5FE0B00D401B703C6052208410A4A0C8F0EA710D212411593178C198A1B141D2D1E3A1FDC1F1C208E2094200F205F1F611E3C1D261CE51ACA1912192918341782167D1527140313B0113310E70E840DE00B270A1D08BD056C0300014AFEBAFB22F988F60DF471F1B1EE59EC4FEA89E83DE740E643E58EE4DBE3CEE200E27BE114E1ECE005E11CE151E1B3E1E5E127E2D2E2D6E30CE56FE6D8E777E930EBB6EC41EEF5EFA5F184F3A5F576F734F922FBFCFC84FE3500420232042F063F08430A6A0CC80EF8101D137E15CE17CC19B11B341D6B1E641FDA1F13203B200720D01F7B1F7D1E871DDB1CEE1B061B901AE41918197718801742160E15991311128010B70EC70CD0"
$bWav2 &= "0A910818068303AD00EFFD5FFBC1F827F6CFF37FF134EF65EDCAEB42EA25E910E8EEE6FAE515E51FE475E3D7E227E2C0E1C0E1D5E114E27BE218E3EDE3DDE4D0E514E794E8EAE933EB6AEC90EDEFEE7DF0FEF190F363F548F716F9D9FAB4FC98FE9800A902B204D7063309AA0BF50D22105B12B3140E172C191C1BD11C271E221FD81F5E20C5201E211121DB207E20E11F391FBE1EE71DEB1C191C2D1BEF1990181F17D6158814F0124511BE0FF00DED0BEE0993072A05E4026600C7FD7DFB2EF9C4F682F429F2BEEFACEDCCEB0EEA57E8C1E665E533E4F5E2E8E123E194E03DE024E04DE0B3E03FE1B2E1F4E172E239E319E422E560E6B1E702E973EAF7EB96ED5AEF49F135F3F5F48EF62BF8D5F96AFB03FDE9FE2901B10357060D09B70B3F0EBA103313A015F517F019881BB11C971D5F1EFE1E911F00202020E81F781FEF1E401E501D841CC01BC31AC919F2180418C61696156014F6128F1115105F0E6D0C350AE1077F0535030B01F7FEE8FCBAFA6EF8E5F551F3FEF0E7EEEBEC17EB51E977E7B8E53FE4F4E2FFE14BE1AFE03EE0E9DF9BDF66DF6EDFB5DF37E0F8E0E9E110E358E49AE5CFE6FCE73EE9ACEA2AECA4ED32EFDEF06AF2E7F386F53FF72DF959FB8FFDC2FFFF015B04B6060C09680BE00D4E10AE12EE141617EE18881AEF1BE01CA11D761E2F1F731F631F3D1FF81E571E801D9F1CA91BC51AEE19001911180B17DB1564140213A2116710240FA40DCF0BBD09A80798057C03790175FF50FDF8FA7CF8D7F519F3A1F079EE49EC3EEA98E8F5E664E521E4F7E2DBE10CE16FE0E7DFBADFE7DF44E0C6E047E106E216E337E465E5A8E6D8E710E949EA36EB42ECAFEDF6EE37F0DEF147F391F42CF6FAF7EEF930FC91FEFF006903B4052008E40A9B0D3910CB12DD14C4169018D819C61A8D1BE51B151C7F1CBD1CD61C0A1D0F1DC91C7C1C311CD31B6E1BE21A2B1A41191318AD162F158C13FB11AD10440FAE0D210C5F0A6108690679046B0282009CFE6DFC2BFA02F8D9F5C5F3CDF1FAEF50EEB2EC36EBA7E912E8AEE682E563E499E340E3FEE2EBE212E31DE329E3A7E384E469E59FE62CE895E9AFEABAEBDBEC06EE71EF2CF1DDF271F4F7F5A0F724F9AAFA70FC33FEE5FFB0017A03470555078609940B930DD70F1012E613A7152A172A182319301AEE1A6E1B171C851C8C1C7E1C771C3A1CC61B411B851A9D19B918DA17CB16841551143F13F411A910B10F7F0EFD0C7C0BA9099E07D105FC03F5011F002FFEF1FBEBF9D5F78BF597F3E7F148F0E3EE96ED44EC03EBD1E9A7E8B5E7F4E684E675E649E616E625E641E650E6CBE6A6E79AE8CDE93BEB54EC32ED2CEE35EF51F09FF109F355F4A6F5E3F6FEF71EF970FA05FCAFFD72FF8601C103D605D607C609970B690D550F1A118D12081445150216971638179A170918AE1813194D1990199C1967191A19B8184618CA17F416D815AF1455130112C9105B0FF20DBE0C3E0BA7094608BA061F05B60312025100DDFE4CFD6EFB9FF9BBF7B3F5D4F324F28DF03FEFF8EDBAECBAEBB7EA99E9D9E847E8B6E770E75BE74FE78DE7DCE716E8C5E8BDE9B9EAE5EB14ED04EEEFEEDFEF93F056F13EF214F306F41CF50FF629F77CF8E1F989FB41FDF9FED300AA023B04FC05F207B109770B630D030F7F10F9111E13E91381140015A6152B167016A216BD1679162516E7157F151C15AC14E013E5120B121611E20FB40E700D270C090BDD0999085B07FE0598042D03B4013400E4FEA4FD22FC9EFA17F9A2F758F620F5E2F3D2F2E1F1A1F065EF53EE61ED93ECE4EB11EB62EA04EAD1E9CDE9FEE956EAD3EA7AEB3DEC18ED1EEE2DEF2EF0DCF057F1FDF1C6F285F340F41EF5DEF595F680F777F89EF93CFBF7FC92FE3700EB01A40369052407C908630AE90B550D9B0EB10FA510891114126312DD125313A413E513F013BB1385133213C0124812BD1135118F10B00FB60ED00DE50CF30B220B680AC9091A093F082507F005D004A40367023001EFFF9FFE32FD97FBFAF97BF821F7D2F564F4F5F291F13AF0F2EEE5EDFCEC3CECD2EB86EB3BEB16EB1FEB4DEBA2EB0AEC9FEC6AED59EE51EF21F0D0F091F159F2E1F254F3FDF39EF420F5C8F584F65BF783F8EDF940FBA8FC3AFEECFFC901AC03990579074009D30A3A0C740D870E6D0FFF0F5110B31038119F11FA115412BC1218135D136B134A132E131B13D7125C12E1113A116010730F7C0E8A0DA80CB50B9D0A7D0953080D07B80574044D0365029A01C500C1FF5CFECDFC2EFB8CF9FFF792F643F5E5F384F238F1FCEF18EF6DEED7ED6AED12EDC7EC82EC6BEC6CECA7EC3EEDF1EDA0EE5BEF23F0ECF0A1F15BF22CF3ECF392F434F5CCF558F60DF7E8F7DDF806FA51FBA8FC0FFE88FF090195023004C80534079308060A650B950CA90DA80E6F0F2110BD103411A81128128912DC12211352135C134C1336130F13F412E212A4120A1235113310EF0E9D0D620C440B4B0A500939080207AF055F042E031202FC00E8FFCCFE98FD5CFC1DFB06FA02F9E3F7B7F686F550F409F3C1F187F065EF6FEEB5ED31EDD1ECB0ECB7ECDCEC42EDF1EDB0EE7EEF4BF009F1B5F156F2EFF2A2F347F4E9F496F527F6A1F635F7DAF791F87EF9A9FAEFFB3AFDA2FE3A00D7017C0343051607C808700AF80B420D5C0E510F04108910F4103D117411BB11FA110C12201239121C12011213121912E5118511F6103A106A0F8C0EA80DBF0CEA0B240B160AD708B3076406F304D103CA02A801A10075FF01FE9DFC53FBEBF998F88DF78FF692F588F467F33BF2FAF0E0EF23EF8AEEFEED9EED2DED99EC4DEC5CEC77ECCCEC79ED2BEECEEEA4EF65F01AF10CF202F3E8F3E9F4EAF5CAF6B9F78"
$bWav2 &= "DF83CF902FACFFAADFBC4FCFEFD4EFFC7004702BB035E05F5067D08030A4C0B6C0C920D6F0E040FA90F22104D108510D41003112911641190119411861169112F11C2103510930FB80EC60DB90CA00B8D0AA109B808A10791066D051E04E102D801F100110038FF30FE09FDD9FB84FA2DF9FFF7E2F6CFF5C0F492F363F238F13EF091EF10EF9AEE4AEE10EEA0ED54ED6DED99EDD5ED48EEF3EEB6EFA8F0BCF19EF25BF320F4D4F48FF56DF651F706F8B2F852F9E7F9C3FA04FC5CFD93FECBFFFB000C0214036404D7053B07A008150A370B1E0C0C0DCD0D440EBC0E2D0F7B0FC90F17103E1039102C101E10F50FD00FC60FC70F980F3C0FA90EC90DCA0CBB0B910A4F093A0836070F06EB04DD03CE02EC013E018100D2FF2FFF38FEF6FCA8FB60FA17F9EAF7F1F603F6F7F4C7F3B2F29EF1A0F0FDEF9CEF3DEF20EF15EF0DEF1BEF41EF69EFD4EF8BF054F130F200F398F3FDF356F4C5F48BF56DF632F7F0F785F8EDF886F954FA38FB66FCB5FDDFFE12007201A302B003FC04390655079308E209EA0AC40B6F0CE60C410DA70D150E850EE70E180F300F0B0FD60ED60EE80EED0EF90E0C0FC70E460EBC0D080D360C800B890A600959084C0736064805530447037E02B101E300450095FFB0FEB9FD98FC6BFB62FA40F92BF82CF71CF60EF52EF44EF382F212F2B6F172F179F17DF144F11BF112F119F16DF11BF2E0F2A2F34BF4CCF43AF5A9F54AF623F7FAF7A3F83EF9AAF9FAF980FA4CFB26FC27FD5EFE80FF8700A201C902E6030C05290647076D086D09400A010B790BE30B530CB30C030D600DA60DC20DD50DD30DBE0DD40DF80D050EFE0DE70D9E0D250D7C0CA40BB40ACD09D608E907120732064F05560444034A028401E6007500160081FFC4FEF8FD07FD02FC2BFB6BFAA9F9EAF81DF82CF73FF658F57FF4DEF36EF33BF339F30FF3CBF2B5F2C2F2F6F26FF30CF4B9F459F5BEF501F64EF6B1F62CF7B4F736F8AAF82FF9AEF918FA81FA14FBE9FBE7FCF3FD0BFF1C001301BF015C022B0326043C0567065D071008A60820096809B3091C0A8C0AF80A4C0B8A0BB80BD50BE80B060C0C0C060C090CCA0B410BC60A3A0A930901097008CA073807BB0621067A05DF044D04C1033F03BC023402B1010801250032FF5BFE96FDCBFC0DFC5AFB7FFA74F961F876F79BF6F5F597F52FF5B8F46FF42CF4DFF3BDF3C4F3E0F333F4ACF411F55CF5BAF507F634F67FF6FEF69CF733F8B9F81AF960F9AAF904FA6EFA10FBE6FBCDFCA9FD7CFE41FFEBFF9D0077016C0261036604590502068906110788070A08AF084709D509510AA50AC50ADF0A1E0B6E0BB00BF20B1D0C1E0C040CD00B680BF00A660AB809FA0846089407D8060E064F058504B60310037E02E9016801F20057009AFFECFE47FE9FFD05FD71FCB6FBD1FAE2F9FFF822F872F7DFF649F6CCF568F5FFF49FF467F44FF450F476F4B0F4DAF408F53EF558F578F5CEF55BF6D6F639F7A4F703F83AF878F8E7F875F935FA19FBF2FBB3FC71FD3DFEFAFEC0FFA900A901A002890356040805A7054806E2067A072008CB086309D1090A0A1D0A1B0A2B0A4C0A7C0AC50AE60ACC0AA50A800A4D0A0E0AD4098D093809DD087408E70737077A06C50519058E041F04A303F6022E02530168008EFFD2FE12FE41FD6BFC7AFB8AFAB5F9F3F847F8BFF734F796F60EF698F520F5BCF47FF467F468F493F4EAF433F56BF59AF5B5F5C1F5F6F55BF6B4F6FDF640F773F7A3F700F893F84BF92CFA20FB07FCDAFCACFD72FE2BFFE4FFBD00A401830257030A04900404056C05D80567062007C4073608B40825097509E9098B0A1A0B910BEC0B180C070CD90B980B360BC10A490ACB0932099C0816087007C0062F069705FF049D0438049E03040362029301C700170060FFB3FE15FE69FDA6FCCFFB06FB42FA69F9AAF824F8AFF734F7DAF67FF614F6D2F5BCF59FF59CF5C0F5CCF5CCF5EAF501F624F67AF6D3F61CF76EF7C2F704F859F8CEF873F940FA17FBF8FBD4FC94FD60FE3FFFEEFF940068012B02CB02750306046504D1045805D4056A063A07FD078F0811098809E709410AA90A060B440B710B890B6E0B290BDC0A7C0AFB097109F4086F08EA077E07F9066106DC056505DE0467041404B00322038202CB010D016300B8FFF1FE20FE44FD4AFC52FB6DFAA9F909F97FF8FAF77EF7FBF699F662F639F631F653F67CF6AEF6E3F603F720F74DF763F770F797F7C2F7F1F72BF856F890F8EDF851F9B6F933FAC9FA7BFB4AFC16FDDDFDBBFE8EFF62003401E60185022703A703F6035704C2042A05A40523068906FB067007C00708085A089F08E8083E0979099709AA099A0967092009CA0876082008B1072B079906E5053705AC043B04F203D3039E033C03C8023902A4012601A5000C0075FFC5FEE0FDF0FC16FC47FB8FFAE7F93FF9CCF872F80CF8B9F779F73EF72AF72CF725F728F732F734F73CF75FF794F7E3F733F85EF875F8A2F8C8F8E9F830F98EF9FDF989FA22FBB3FB52FCF4FC8AFD37FEE0FE96FF6A002B01BF015A02F9027A0301048C0406057805EB054C069D06E206120752078607B107030852087D08B108BF0886084D082908F107CE07BC0788073907C6063606AE052C05BC045F04F7038403170393021A02AA012501910016008CFFDFFE3BFE93FDD6FC28FC9BFB1BFBABFA56FA05FAA4F938F9F3F8BBF87AF854F843F82AF825F838F850F867F893F8CCF8FEF830F969F9BAF9F6F92AFA7AFAC9FA1EFB98FB10FC79FCF4FC68FDCDFD31FEACFE2EFFB4FF3400A70011017F01F5017302F2027703030486040F05980509066006B406FB062B076C07B707DB07D207C207A00759071407E00698063906E705"
$bWav2 &= "960545050B05DA04AA0472043904F103A203570304039502120299012201A200170083FFDFFE2EFE74FDB4FC0BFC93FB2DFBD8FAA3FA7CFA49FA23FA03FAD2F9A5F98BF970F94BF92DF911F9EDF8CAF8B5F8ADF8BEF8F3F839F970F9B9F928FAA4FA18FB96FB14FC8CFCFCFC5BFDBDFD10FE62FEB8FE0DFF6DFFE1FF5700B9001F018601E8015702CE023A039B03FD036204C40437059D05F00544068406B006D606E806E406D606B30682064606FD05B80583054205F104B004750430040004DB03A80371032903D0026C02070296012501AE002C00A0FF0CFF79FEF4FD72FDFBFC97FC39FCE8FB9EFB52FB02FBC5FA8FFA5BFA33FAFDF9B7F977F93BF90EF9F5F8FEF820F94BF974F9ADF9EFF93CFA99FAF8FA45FB97FBF1FB3CFC87FCEBFC3BFD7AFDC4FD0DFE4AFE8FFEDFFE34FF89FFEBFF6100EB007001FC018C020C037E03F6035F04BF0433059805DF05250662068406960699067D065B063E061B06F605D005AA05830559053705290528051C050305D6049D045C040E04B0034E03E5026202CC0127018300E5FF45FFA3FE12FE99FD27FDC5FC79FC36FC01FCD6FB99FB58FB22FBEFFAC8FAA1FA6DFA35FA05FAD5F9ADF9A0F9ABF9B5F9BFF9D0F9EEF927FA77FADBFA44FBB2FB12FC65FCACFCE7FC27FD6FFDB6FDFDFD5AFEBFFE27FF98FF04007500E4005001B9013002B6024603CB034004AD040B0557059A05D805FF052006340638062E061D060706F805FC0505061406280628061406EC05B70580053C05E2048C043004C6035A03EB026E02F20183010D0191002700C5FF5CFFFDFE9EFE3BFEE2FD8DFD31FDD2FC77FC17FCCDFB8CFB4BFB0CFBD3FA8DFA3FFAF5F9C8F9C0F9DBF9F9F90BFA1BFA24FA3BFA6AFA9AFAD1FA0FFB35FB4DFB81FBC9FB05FC4BFC98FCD9FC38FDB7FD45FEDCFE65FFD1FF3E00AC001F01AF013F02A602030356039303D6032F048004D9042E056F05A405D205F5050E0615060D060D06110610060F060D06EB05B30576052A05DB049E045D041104C70376031903C6027C022E02EC01AA014501CF005400C8FF3FFFB9FE2EFEB0FD34FDBEFC66FC11FCA5FB51FB0BFBB3FA6BFA46FA2FFA1BFA12FA0CFA12FA24FA2BFA2BFA2FFA35FA3DFA53FA6DFA91FAB4FACFFA02FB46FB81FBCCFB17FC60FCB8FC2BFDA9FD32FEC6FE4BFFC4FF3E00B20028019F010D027002C702100346036E03A503EF0335046E04A904ED0422053F056E059805AB05BE05D105CB05C205B5058F055E0535050505CC0496044A04FA03AD0359030C03CF0282023302E3017E011A01C40070001700B6FF38FFBAFE45FECCFD60FD12FDBDFC6AFC24FCD5FB91FB70FB4EFB1EFBFAFAD6FAB8FAA5FA91FA7CFA74FA78FA86FA98FAA2FAB8FADAFAEFFA0AFB35FB62FB9DFBDAFB10FC57FCB8FC2AFDACFD35FEB9FE32FFA5FF0F007A00E7005301BB01090235026902A202CD0205034F039603EA0342048204BB04F10410053205590579059E05C205BD05A1057A053F050B05DF04AA047B044F041104D703AA0373034E033B030F03D8029D024602D5015E01D7004C00BAFF21FF91FE0DFE91FD2CFDD2FC6DFC15FCDFFBAFFB8CFB80FB6FFB58FB4CFB3EFB2BFB2BFB29FB19FB09FBFFFAF2FAEBFAF5FAF6FA06FB24FB49FB77FBAAFBE6FB24FC6EFCBFFC23FD85FDE3FD43FE9AFEE0FE1CFF6EFFC1FF0A006000BC000A016501C1010C026502CD0226037D03D5031D046104A204D504FF0424053305480552053B0526050805D00497046A043B041C040304D703AF03950368033A031303DF02AA0276022A02CF016E01FB0085000F0095FF1DFFB6FE54FEFBFDADFD60FD1CFDE9FCB1FC7EFC5CFC2EFCF4FBBEFB8CFB5CFB40FB22FBF7FACFFAAFFA96FA8FFA92FA92FA9DFAB6FAD8FA0CFB50FB98FBDCFB18FC59FCB1FC10FD6CFDC6FD28FE85FECFFE23FF75FFBAFFFFFF45008900D0001F017D01EC015E02CF024803B70308045804A504D604FE0422052A052A053C0543053B0528050805EA04C8049804730458042F040A04E803BD039103720348031103D60294024102DE017A011A01B9005F000900B1FF55FFF2FE8BFE1EFEB2FD57FD13FDD8FC99FC60FC25FCEAFBB6FB8EFB62FB3FFB2CFB1FFB17FB17FB1BFB2AFB3EFB57FB77FB9EFBBBFBD4FBF2FB08FC37FC84FCCDFC24FD88FDD9FD2AFE7CFEC1FE07FF58FFA6FFEFFF3B008400D4002A017401CD0132028A02DE024303A103FD034F048F04BA04D504EE0405051B051E051505FE04DE04BA0498047B0469045D044C04370424041304FC03DD03BF0397035E031D03CA026302FC0195012001A6003300D6FF88FF3DFFF4FEAEFE6CFE2EFEF6FDC7FD91FD53FD0EFDC0FC6CFC23FCEAFBB8FB7FFB3EFB03FBD5FAAAFA98FA9FFAAEFAD1FA04FB30FB67FBA9FBEBFB37FC8DFCD3FC1EFD6BFDA4FDDEFD11FE34FE61FE96FEC0FEFAFE47FF8AFFDBFF3E009D0004017A01EA015502C0021B036403A603D4030104330469049704BF04CE04CB04BE04B404A504A704B104AC04A3049304760456043A040A04D703A00354030403B2024F02EA018A012201C6007A003200DDFF86FF2AFFCAFE7CFE3FFE08FEDCFDB0FD77FD3AFDF2FCA7FC6CFC37FC00FCD0FBA1FB5EFB25FBF5FAD0FABFFAADFA9DFAA6FABAFACBFAFEFA30FB5BFB9EFBF3FB45FCA5FC09FD52FD88FDB4FDD9FD09FE41FE7CFEC1FE0CFF52FFA0FFEEFF32008400F3005F01D9015B02C10212035E039C03D2031D045F049304B204B1049F049404890488049C04AC04AF04AA049B0484046D0453043C041D04E803B2037D032803C4026302FD0198014401F800A90059000100A0FF3BFFE0FE94FE47FE02FEC5FD7FFD3AFDFCFCBFFC8DF"
$bWav2 &= "C70FC51FC23FCEBFBA3FB4DFB03FBC2FA96FA88FA8BFAA1FAC5FADEFAFFFA31FB5DFB93FBE8FB3FFC92FCE5FC1BFD3FFD72FDB2FDF5FD4AFEA8FE03FF5AFFA1FFE8FF3D009E0003017001DB013D029802E1021C0350037E03A703DC030A042C044C04610462045F045E04640470048D04A804B704B804B10495046E0454043A040A04CD0385032A03BF025B020A02C60188014701FE00A5004000DBFF80FF30FFF1FEBDFE86FE4CFE03FEB2FD63FD1EFDD7FC9CFC64FC2CFCF9FBC0FB80FB4FFB36FB30FB3AFB4EFB6EFB8BFBA6FBBCFBDDFBFEFB36FC75FCA7FCDDFC11FD2EFD38FD4CFD65FD92FDD6FD21FE6AFEB7FE07FF66FFD0FF4400BF003E01B20113026A02BA02F80223033D0351037403A003C803E603FC03F903F303F8030404210448046104650461045504460445043F0427040704D30389033703E30289023402D80175012901E900AA0060000D00AEFF55FF06FFBFFE82FE3CFEE3FD87FD35FDEEFCC6FCB3FC98FC72FC48FC16FCE3FBBFFBA1FB8BFB7DFB79FB76FB7CFB8EFBAAFBD9FB09FC3CFC7BFCC2FCF9FC25FD41FD54FD6FFD8FFDB9FDFBFD49FE8DFECFFE15FF67FFD3FF4B00BD0028018E01E201220259028402B102E102160351038903B003C303C703BA03B303BA03C603D103DB03DE03DC03D803CF03CA03CE03CE03C003A20375033C03F602AC026B023302F901C40197015F011A01CF007A002400DBFFA4FF6DFF30FFDFFE80FE1AFEC2FD79FD4BFD2FFD09FDD5FCA0FC6EFC3EFC1FFC11FC10FC16FC1CFC22FC2CFC36FC46FC5EFC7AFCA7FCDDFC03FD1CFD28FD28FD30FD49FD69FD92FDC5FDFCFD2EFE65FEA7FEF3FE3FFF9BFFFBFF5500B20012016801B7010D0251028502B902E1020003280358037D03A003C503E8030D043204500461045F045704480429040E040204E803B803880359031D03E502B302780246021602DB019A015F011F01D7009D0062002400EAFFA3FF4AFFE9FE89FE42FE0EFED6FDA3FD69FD1AFDCAFC86FC44FC14FCF9FBDEFBC0FBAEFB9EFB91FB8BFB8CFB9EFBBFFBE4FB0BFC31FC4DFC67FC8CFCACFCD0FCFBFC24FD50FD7EFDACFDE6FD35FE89FEE9FE4EFFB7FF1F007800C7001C016D01B901020246028102C002FE023203630383039603AB03C103DF03FD031E0435043D043A043E044604450439042404F303B1036C032603E802B0027A0245020902CF01990157010F01C900860041000C00D5FF81FF2CFFDBFE7CFE27FEECFDB3FD71FD27FDCEFC78FC32FCF9FBCEFBABFB8DFB77FB64FB4DFB46FB56FB6DFB8DFBBBFBE7FB15FC44FC5DFC70FC8AFCA5FCC5FCF4FC1EFD44FD6FFD9DFDD5FD22FE88FEFBFE70FFDDFF3F00A30005016501B901FD01370268028A02A502C602E402FE021F03360355038803C103EB03170440045C0472047D047E04720456042E04F803B50375033E030103BB02800249020A02CB0194015E012401ED00B0006B002200D2FF78FF14FFAAFE51FE0BFEC4FD84FD42FDFAFCA8FC63FC2AFC05FCF8FBF3FBE9FBDFFBD7FBC7FBC4FBC7FBCDFBDFFBFCFB16FC3DFC68FC8EFCB1FCCFFCE7FC0AFD37FD62FD95FDC9FDFAFD3BFE8CFEE1FE48FFBCFF1D007600D30024017401C90109023F0273029802C202F602250354038703A903C303E8030E043804660483049704A904A904A6049F0486045B042304D703890347030203BA0275023002EB01AA0163011901DB009E00650034000200C3FF7CFF28FFCDFE7FFE3BFE03FEC9FD88FD43FDFAFCB0FC6FFC3FFC14FCECFBD1FBB8FBA5FBA6FBB5FBC6FBE0FB07FC30FC5DFC86FCA0FCABFCBBFCCDFCE8FC13FD44FD6FFD96FDBDFDEBFD2CFE7DFED8FE3CFF9BFFFBFF6800CE0030019501EB01290267029702BA02E0020603210337034B0362038403B203DA03FD031B042B043A04510463046F04710455042404EE03B20375033F03FE02B90276022502D80196014F010E01DC00A4006D003E000000ADFF59FF02FFA9FE5AFE10FECDFD88FD3CFDF3FCB1FC78FC55FC41FC34FC2BFC29FC25FC1DFC12FC0EFC0FFC1CFC2EFC46FC65FC84FC96FCA1FCB1FCC3FCD5FCF7FC1BFD45FD76FDAFFDE9FD31FE89FEEAFE52FFB3FF12007300CE0026017C01C90107023E0272029F02C302E202F60206031503290347036C038A03A803C603D603E403FB03080406040304F103D703B7038C0357031D03DC02A10268022602E701AF0165011E01E700B300770042000600BFFF73FF1DFFC7FE76FE29FEE4FDACFD72FD36FD05FDDDFCBDFCA3FC85FC6FFC60FC4FFC42FC3FFC35FC25FC23FC28FC34FC4CFC6EFC88FC9FFCBCFCDBFC03FD34FD62FD8CFDBAFDF2FD30FE75FEC6FE20FF7DFFD0FF1C006200A900F30040018A01C70101022C0252027C02A002BE02E30206031E03410366037E038E039F03B203CA03E80300040E040404E503BA03830342030103C1027C023C02FD01BE01870154011B01E500B800880052002400EBFFABFF65FF11FFBCFE75FE35FEF3FDB1FD63FD0EFDC8FC90FC6AFC54FC49FC47FC4AFC4BFC5BFC79FC96FCADFCC7FCE0FCF3FC04FD0DFD04FDFEFC02FD09FD1FFD43FD69FD90FDBEFDEBFD24FE6BFEB7FE02FF4AFF95FFE5FF3A008C00DF002F017301B001DF01FE01190237024902530266028302A102C402F1021A03400364037F039C03BA03CC03D503C3039B036A0338030603DB02B4028A0259021C02D601920155011D01F000C4009B00790055002800F3FFB6FF74FF36FFFEFEC5FE8BFE4BFE04FEBCFD78FD42FD24FD0DFDF8FCE6FCD8FCCAFCC2FCBEFCBDFCBDFCC4FCCDFCD0FCD4FCD8FCDAFCE1FCF0FC07FD29FD4EFD7AFDA3FDCCFDFEFD3BFE7CFEC4FE15FF62FFA4FFE5FF1E0057009000C9"
$bWav2 &= "00FE0028014E017701A001C601EB01100235025B028202A902D60203032803440361038403A203BC03CD03CB03B9039E037E0357032803F602BF027D023802FB01C0018901580127010001E600C9009D0066002600E6FFB3FF8AFF63FF35FFFEFEB4FE61FE17FED8FDA7FD7FFD59FD33FD12FDF3FCD8FCC4FCAFFCA9FCB4FCBDFCCDFCE3FCF3FCFBFC03FD04FD05FD1AFD33FD49FD64FD82FDA4FDD1FD10FE56FEA0FEEAFE2DFF6BFFA3FFD6FF11004C007F00B200E8001601420171019B01CA01FD01270250027D02A602CB02F5021A033C03620382039903A503A3039A038B036E034D032D030603D702A702740246021F02F001C00194016D0145011901E700B20075003400EDFFA9FF64FF26FFF0FEB2FE6DFE2FFEF4FDBAFD90FD6AFD46FD2BFD0DFDE6FCC7FCBEFCB7FCB5FCB6FCB2FCB2FCB5FCB2FCB1FCB0FCB5FCC8FCDFFCF9FC23FD57FD84FDB7FDF3FD2BFE6DFEBCFEFFFE3DFF82FFC5FF030041007800AA00DD0008012F015D019001C001F3011C0242026C029802BD02E10200031E033E03570370038B039B039D039C0395037F03650346031803E802BD028A0251021C02E301AF01840154012101EB00AF0070002E00ECFFACFF78FF40FF0AFFD3FE9AFE5EFE29FEF6FDCCFDB0FD96FD7AFD5FFD42FD25FD16FD0BFDFAFCECFCE2FCDCFCD7FCD3FCD3FCD7FCD8FCDEFCEDFC09FD2DFD53FD7AFDA0FDCEFD05FE46FE90FEDFFE28FF6CFFA8FFDDFF110048007E00B100E2001001390160018501A901D101FA0129025C028D02BD02E9020C032B0349035E0370037B0375036603500330030F03F402D702B5028D025E022902F601C30197016B013B010A01DD00AF00820050001900DFFFA4FF68FF2EFFFBFEC0FE82FE45FE0BFEDAFDB4FD94FD69FD3CFD1FFD0AFDFDFCFEFC02FD01FDFDFCF7FCECFCEAFCF2FCF9FC01FD04FD0DFD20FD3AFD58FD83FDADFDD8FD0AFE45FE8AFED7FE20FF5DFF98FFCBFFFBFF330067009200B800D700F4001801420166018B01B201DD010802350263028C02AD02CA02E502FD0215032803260316030303EE02D002AD028C02690243021902EB01BC01930170014D0127010401E700C400960066003200FCFFC6FF91FF5BFF27FFEDFEAAFE65FE2AFEFAFDD6FDB8FDA1FD8DFD80FD78FD71FD6BFD62FD5CFD58FD54FD58FD63FD6EFD74FD74FD6EFD6AFD70FD7EFD93FDACFDC8FDECFD17FE48FE85FECAFE12FF55FF92FFCBFF04003C007300A300C500DD00F400070118012D014B016E019501B901DC0101022902500272029202B302D002E302F002FD02FE02EF02D502B0028602640248022602FD01D301A601730143011901F700DC00BD0099007700550032000A00DEFFB6FF91FF67FF3EFF16FFE9FEBAFE8FFE5FFE32FE13FEF7FDE0FDCEFDBAFDA8FDA0FD9DFD98FD98FD9AFD9AFD95FD8EFD90FD9FFDB2FDC6FDE4FD01FE1FFE43FE69FE8EFEBEFEF3FE27FF59FF89FFBAFFEAFF16003C0066009600C500EC000D0126013A014A0153015F0174019201B301D901FB0122024A0267027B029002A102AB02AB029B027F026102440223020702EE01D201B10187015C013A011A01F600D200B300990081006700460027000100D7FFAEFF87FF60FF38FF0DFFD8FEA8FE7CFE57FE3CFE2AFE17FE07FEFCFDEEFDE0FDDDFDE1FDE7FDEBFDEAFDE6FDDEFDD8FDD6FDDDFDE7FDF9FD0CFE21FE38FE55FE7AFEA9FEDEFE11FF44FF73FF9DFFC1FFE3FF010020003F005D0078009100A900BC00CA00DC00F600160136015D018501A701C401DA01E701F40106021B022A02350239023302280219020702F601E601CF01B801A3018701660140011801F000D000B30096007800590032000B00E4FFC4FFAEFF99FF83FF69FF4CFF26FF04FFE2FEBFFEA3FE88FE70FE5DFE47FE2FFE20FE0FFEFAFDF0FDECFDE6FDE6FDEBFDEBFDF0FDFDFD0FFE29FE3DFE4CFE5EFE71FE87FEA8FED3FEFCFE26FF4FFF6EFF8EFFAFFFCEFFF0FF130031004B00650078008C00A600BF00DE0005012D014F016F018B01A101B501C601D501E801FC010A020E020302F101DC01C001A70198018B017A016A015801430133011B010001E900DA00CA00B700A1007E0055002800FBFFD2FFB4FF98FF76FF50FF23FF02FFE6FECFFEBFFEB7FEAEFEA7FEA2FE95FE8BFE84FE76FE69FE5EFE4DFE37FE26FE0DFEFAFDF3FDF6FD05FE1EFE3CFE5EFE81FEA0FEC0FEEBFE13FF39FF5EFF79FF8EFFA7FFBCFFCAFFE0FFF8FF0C002500400055006B007E009100A900CD00F4001D013E0158016F018801A101BB01D201E501F001EE01E001D001C201B701AB01A30199018A01770160014A013801290118010801F600E100CD00B5009400740059003E002100FFFFD7FFABFF7CFF4EFF28FF08FFEDFEDDFEC9FEB3FEA3FE9AFE8EFE86FE85FE80FE75FE6BFE5BFE45FE37FE2FFE28FE27FE2CFE36FE46FE59FE6BFE82FE98FEB8FEE1FE03FF29FF50FF6EFF8AFFA8FFC4FFE0FFFFFF16002900400054006300730084009A00B800D900F9001D013C015801710186019D01B201BF01C801C801BE01AD019F0195018A018601800174016501560142012E011F0111010201F300E300CA00A9008700600036001400FAFFDEFFC1FFA6FF82FF5CFF3DFF23FF0CFFF8FEEAFED9FEC5FEB1FEA1FE90FE85FE7EFE7CFE7AFE79FE78FE75FE6FFE69FE65FE63FE68FE72FE7AFE84FE90FEA0FEB4FED0FEF2FE19FF3BFF5CFF7AFF96FFAEFFC7FFE0FFF8FF10002900410058006A007C009200A600BE00D700F3000B011D012E0144015B0171018C01A501B601C101C401BD01B101A10191017F01690153013C0124010901F200DD00C900B800A70094007F006A004F0036001D000"
$bWav2 &= "500EFFFD5FFB8FF9AFF79FF57FF3DFF25FF0FFF01FFF3FEE5FED6FECBFEC3FEC2FEC3FEC3FEBDFEB4FEA7FE98FE8DFE85FE85FE89FE8CFE91FE98FEA6FEB8FED0FEE8FE08FF2AFF4EFF6CFF8BFFA5FFBCFFD2FFE6FFF9FF0D002300320040004E005F0074008C00A400C100E000FB0012012501350142014F015A0165016C0172017501700165015D015701510147014001330122010E01F600DE00CD00BA00A5008F007D006C005B0049003700270014000300F2FFDEFFCAFFB6FFA0FF8CFF77FF61FF4BFF38FF1FFF0BFFF9FEEAFEE0FED9FED4FED1FECDFEC6FEBEFEBBFEBCFEBEFEC5FECDFED6FEE3FEF4FE06FF18FF2DFF42FF56FF6DFF82FF98FFABFFBAFFC8FFD8FFECFF04001A002F00400050005E006D007D008F00A100B400C500D300E300F10000010F011D0124012B013001310130012A0126011C010F010501FC00F100E600D800CC00BD00B200A5009300820071005E004A00360024001200FEFFEBFFD7FFC3FFB0FF9CFF88FF73FF62FF54FF45FF39FF2EFF22FF15FF0DFF06FFFEFEFCFEFAFEF6FEF0FEEAFEE6FEE7FEEAFEEDFEF5FEFCFE05FF0FFF1CFF29FF3AFF4AFF5FFF76FF8DFFA4FFB9FFC5FFCCFFD5FFDFFFEBFFF9FF050010001B0023002F003E00520069007C008B009A00A700B100BE00C600CE00D600DC00DF00E100E500E500E200DA00D400CA00C500BE00B600AC00A4009C0094008C0086007C00700063005500450037002B001D000C00FCFFEAFFD7FFC4FFB2FF9FFF8FFF85FF79FF6CFF62FF56FF4CFF45FF41FF3FFF40FF3FFF3DFF37FF32FF30FF2DFF29FF28FF28FF2BFF30FF32FF38FF3EFF4AFF56FF61FF74FF88FF9AFFA7FFB4FFBFFFCAFFD7FFE3FFEEFFFBFF04000D000F00150022002F003E004D0060007000850094009F00AC00BA00C400CB00D200D600D900D800D300CE00C800C100BA00AF00A800A0009A00930091008C008500820079006B006000550048003C00350026001B000E00FEFFEFFFE2FFD4FFC5FFB7FFA9FF9CFF8FFF81FF75FF6AFF61FF5CFF59FF51FF4EFF4DFF4CFF4CFF4EFF51FF52FF56FF5AFF5CFF60FF64FF67FF68FF6BFF6FFF75FF7FFF88FF92FF9CFFA9FFB2FFBDFFC7FFD3FFE0FFEDFFFAFF0800140020002B0034003D004B005900640073007F008A0094009F00A400AA00AF00AF00AD00AB00A800A500A300A0009C00980092008D00880083007F007A0072006B0064005B00530049003D00310027001A000C00FFFFF1FFE5FFDAFFCFFFC5FFBEFFB6FFADFFA8FFA1FF9CFF95FF90FF8AFF87FF85FF82FF7DFF76FF6FFF6AFF62FF5DFF59FF59FF5CFF60FF65FF6AFF71FF78FF7EFF87FF95FFA2FFAEFFBBFFC6FFD1FFDAFFE3FFEAFFF2FFFAFF010007000D0014001B002100290035003F004D005600600067006F00740077007A007D007E008200860087008A008B008B0088008600860083007F007A0076006F0065005C0053004A0044003F003900340030002B00230018000F000500FBFFF1FFE6FFDAFFCFFFC4FFB9FFB0FFA7FFA2FF9CFF98FF94FF93FF8DFF8AFF86FF85FF84FF84FF85FF86FF86FF87FF88FF89FF8BFF8DFF8EFF91FF96FF9CFFA4FFACFFB2FFB8FFBFFFC5FFCCFFD3FFDDFFE6FFEFFFF7FF000004000B001200180023002D00380040004D0056005F0066006E00730078007A007B007C007A00790078007900790079007800750072006E006A0067005E00570053004D00450040003B0035002F0027001E0016000C000400FAFFF2FFECFFE5FFDAFFD1FFC5FFBAFFB2FFA9FFA3FF9DFF9BFF97FF93FF91FF8EFF8CFF8CFF8CFF8DFF8EFF91FF94FF97FF9AFF9EFF9FFFA0FFA1FFA2FFA5FFA9FFADFFB1FFB6FFBBFFC2FFC6FFCBFFD1FFD9FFE1FFE9FFF1FFFBFF050010001900250030003A00420048004C004E00540055005A005D00610064006600660067006A006A006B006B00690067006600620060005C0058005100490040003B0034002F00280022001D001500100008000300FCFFF3FFE9FFDEFFD5FFCEFFC8FFC0FFBAFFB5FFB1FFAEFFABFFA8FFA6FFA6FFA2FF9EFF9CFF9BFF98FF98FF97FF97FF98FF9AFF9CFF9DFF9FFFA3FFA6FFA9FFADFFB3FFB7FFBCFFBFFFC4FFCAFFD3FFDBFFE4FFECFFF6FFFEFF03000A0010001A001F0025002C0034003B00400045004A004E005200560057005C005D005F005F0062006000610061005D005B00580054004E004A0045003F003A00370032002E00270023001C00190014000F000B000500FDFFF6FFEDFFE6FFE0FFD8FFD1FFC9FFC4FFBFFFBBFFB8FFB6FFB3FFB0FFAEFFACFFABFFAAFFA8FFA8FFA7FFA7FFA9FFAAFFABFFACFFAFFFAFFFB2FFB5FFB8FFBDFFC1FFC5FFCAFFCEFFD3FFDBFFE0FFE8FFEDFFF5FFFAFFFFFF06000D00130019001E00230028002B003000330038003C004000440047004B004E00510051005200510050004F004D004C0049004600430040003C003A003600340031002F002C00290025001E00190014000D000600FFFFF8FFF1FFECFFE6FFE1FFDDFFD8FFD5FFD2FFCFFFCEFFCCFFCCFFCAFFC7FFC7FFC2FFC1FFBFFFBEFFBCFFBDFFB9FFB7FFB8FFB9FFBAFFBEFFBEFFC1FFC4FFC7FFCBFFD0FFD4FFDBFFDFFFE4FFEAFFF0FFF6FFFDFF00000200050007000A000D0012001300170019001D002100260027002C002E003200350039003D0040004000430042004200410040003D003A00360033002F002E002C0029002700240024002100200020001C0019001400100009000300FCFFF6FFF0FFE9FFE5FFDFFFDCFFD9FFD8FFD6FFD5FFD4FFD1FFD0FFCFFFCEFFCDFFCDFFCDFFCCFFCDFFCCFFCDFFCEFFD0FFCEFFCFFFCFFFCEFFCEFFCFFFD2FFD4FFD7FFD9FFDDFFE0FFE4FF"
$bWav2 &= "E8FFEDFFF0FFF4FFF8FFFCFF0000050008000D001100140018001B001F002000230023002600280029002C00300031003400320033003300340035003400330030002E002A0028002500240021001E001B001A001A0019001700130011000D00090007000200FDFFF9FFF5FFEFFFEDFFE9FFE6FFE3FFE0FFDDFFDDFFDBFFDAFFDAFFD9FFD8FFD7FFD7FFD5FFD6FFD5FFD6FFD3FFD3FFD4FFD5FFD5FFD6FFD5FFD7FFD7FFDAFFDBFFDEFFE0FFE3FFE3FFE6FFEAFFEDFFF1FFF5FFF9FFFCFF01000400070008000B000E0011001400170017001A001A001C001D0020002100240022002400250025002600270025002500240023002300220021001F001F001F001D001C001B001800160011000E000B00090004000100FDFFF9FFF3FFF0FFEEFFECFFEBFFEAFFE9FFE8FFE8FFE8FFE7FFE6FFE4FFE3FFE0FFE0FFDEFFDBFFDAFFD8FFD8FFD8FFD8FFD9FFDBFFDCFFDEFFDEFFDFFFE1FFE3FFE5FFE8FFE9FFEAFFEAFFECFFEFFFF1FFF3FFF6FFFAFFFCFFFFFF03000400070009000A000D000F001000110011001400130015001600190019001A001C001C001C001C001D001D001C001B001A001800170015001400110011000F0010000F000F000D000C000A0009000600040002000000FCFFF9FFF6FFF4FFF3FFF1FFF0FFEFFFEDFFEEFFECFFECFFECFFEBFFEBFFEAFFE9FFE8FFE8FFE6FFE4FFE4FFE4FFE4FFE4FFE4FFE3FFE4FFE4FFE5FFE7FFE8FFEAFFECFFEDFFEEFFF0FFF3FFF4FFF6FFF7FFF8FFFAFFFBFFFDFFFFFF000003000400060008000A000C000D000E000F000E001000100011001200130014001500150015001600160015001500140014001300140013001100110011000F000F000D000C000B000B0009000A0007000600030002000000FEFFFCFFF9FFF8FFF6FFF5FFF3FFF3FFF2FFF2FFF1FFF1FFF2FFF2FFF1FFF1FFF0FFF0FFF1FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF2FFF1FFF3FFF3FFF4FFF5FFF5FFF6FFF7FFF7FFF8FFF9FFFAFFFBFFFCFFFDFFFFFF00000000000001000300030004000400040004000400040004000400050005000600050005000500050005000500050005000500050005000400040004000400030003000300030002000200020001000100000000000000000000000000FFFFFFFF000000000000000000000000"
Global $tWav1 = DllStructCreate("byte[" & BinaryLen($bWav1) & "];")
DllStructSetData($tWav1, 1, $bWav1)
Global $tWav2 = DllStructCreate("byte[" & BinaryLen($bWav2) & "];")
DllStructSetData($tWav2, 1, $bWav2)
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $hGui = GUICreate("PlayWav", 200, 50)
GUISetOnEvent(-3, "_Exit")
Global $cButton1 = GUICtrlCreateButton("Wav 1", 10, 10, 85, 30)
GUICtrlSetOnEvent($cButton1, "_Play")
Global $cButton2 = GUICtrlCreateButton("Wav 2", 105, 10, 85, 30)
GUICtrlSetOnEvent($cButton2, "_Play")
GUISetState()
While Sleep(100)
WEnd
Func _Exit()
Exit
EndFunc ;==>_Exit
Func _Play()
Switch @GUI_CtrlId
Case $cButton1
_PlayFromMem($tWav1)
Case $cButton2
_PlayFromMem($tWav2)
EndSwitch
EndFunc ;==>_Play
Func _PlayFromMem($tWav)
Local $aResult = DllCall("winmm.dll", "int", "PlaySoundW", "ptr", DllStructGetPtr($tWav), "ptr", 0, "dword", BitOR(0x00000001, 0x00000004, 0x00002000))
If @error Then Return SetError(1, 1, False)
Return $aResult[0]
EndFunc ;==>_PlayFromMem
Der Sourcecode ist im Zip-Archive dabei.
Hi
du kannst die Größe der Schrift auslesen und damit die Größe des Edit berechnen:
#include <Constants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <StructureConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <GuiScrollBars.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $hGui = GUICreate("Test", 320, 240)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
Global $cEdit = GUICtrlCreateEdit("", 10, 10, 300, 18, BitOR($ES_MULTILINE, $ES_WANTRETURN))
Global $hEdit = GUICtrlGetHandle($cEdit)
Global $iFontHeight = _GetFontHeight($hEdit)
Global $iEditH = $iFontHeight * 2
_CalcEditSize()
GUISetState()
Global $hProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
Global $hMod = _WinAPI_GetModuleHandle(0)
Global $hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hProc), $hMod)
OnAutoItExitRegister("_Cleanup")
While 1
Sleep(100)
WEnd
Func _GetFontHeight($hWnd)
Local $hDC = _WinAPI_GetDC($hEdit)
Local $tTEXTMETRIC = DllStructCreate($tagTEXTMETRIC)
DllCall("gdi32.dll", "bool", "GetTextMetricsW", "handle", $hDC, "ptr", DllStructGetPtr($tTEXTMETRIC))
_WinAPI_ReleaseDC($hEdit, $hDC)
Return DllStructGetData($tTEXTMETRIC, "tmAscent")
EndFunc ;==>_GetFontHeight
Func _CalcEditSize()
Local $iCnt = _GUICtrlEdit_GetLineCount($hEdit)
$iEditH = $iCnt * $iFontHeight
GUICtrlSetPos($cEdit, 10, 10, 300, $iEditH + $iFontHeight)
EndFunc ;==>_CalcEditSize
Func _KeyProc($nCode, $wParam, $lParam)
If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
Local $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
If $wParam = $WM_KEYDOWN Then
If DllStructGetData($tKEYHOOKS, "vkCode") = 13 Then
_WinAPI_SetWindowPos($hEdit, 0, 10, 10, 300, $iEditH + $iFontHeight * 2, $SWP_NOZORDER)
EndIf
EndIf
_CalcEditSize()
Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
EndFunc ;==>_KeyProc
Func _Cleanup()
_WinAPI_UnhookWindowsHookEx($hHook)
DllCallbackFree($hProc)
EndFunc ;==>_Cleanup
Func _Exit()
Exit
EndFunc ;==>_Exit
E
Edit: der Einfacheit halber hab ich nur "tmAscent" als Höhe verwendet und nochmals dazuaddiert - solltest du Wert auf ganz genaue Größe legen, dann solltest du auch "tmDescent" in die Berechnung eibfließen lassen...
Ich hätte da eine Idee - hast du zufällig einen Beispieltext (Screenshot) zum ausprobieren?
Mit Ausnahme von meiner Lösung kann man mit allen auch die Größe des Bildes ändern
Bei Convert.exe gibt man die gewünschte Größe einfach mit " size 320x240 " an
Bei FreeImage sollte die Funktion so aussehen:
Func _ConvertBMP2JPG_FreeImage($sFileName)
Local $aResult = DllCall($hDll, "ptr", "_FreeImage_Load@12", "int", 0, "str", $sFileName, "int", 0)
Local $hDIB = $aResult[0]
$aResult = DllCall($hDll, "ptr", "_FreeImage_Rescale@16", "ptr", $hDIB, "int", $iRescaleX, "int", $iRescaleY, "dword", 5)
DllCall($hDll, "int", "_FreeImage_Save@16", "int", 2, "ptr", $aResult[0], "str", StringTrimRight($sFileName, 3) & "jpg", "int", 50)
DllCall($hDll, "none", "_FreeImage_Unload@4", "ptr", $aResult[0])
DllCall($hDll, "none", "_FreeImage_Unload@4", "ptr", $hDIB)
EndFunc ;==>_ConvertBMP2JPG_FreeImage
Und die Funktion von UEZ hat sowieso schon die entsprechenden Parameter eingebaut.
Hier mein Benchmarkscript:
E
Da bin ich mir auch nicht sicher.
Soweit ich weiß, kommen die Werte direkt vom Prozessor und nicht von Windows
Vielleicht weiß da jemand genau bescheid...
Die Funktionen sind gleich
TimerInit gibt in etwa die Anzahl der Prozessortakte seit dem letzten Systemstart zurück
Dividiert durch die Frequenz erhält man die Zeit seit dem Systemstart in ms
Um auch nach einem Reboot weiterzurechnen, musst du wahrscheinlich die Datums/Zeit Funktionen benutzen und die Zeit im Format: "YYYY/MM/DD HH:MM:SS" in der Ini abspeichern
Hier die Ergebnisse meines Vergleichs:
ImageMagick: 9683.29187089421
GDIPlus: 7424.86768569748
UEZ: 8915.10261779081
FreeImage: 6704.62195614247
FreeImage New: 7547.15529487686
Um Convert.exe eine Chance zu geben, hab ich immer 10 Instanzen gleichzeitig gestartet, was die Konvertierung etwas beschleunigt hat - ist aber immer noch an letzter Stelle.
bei "FreeImage" handelt es sich um die Version 3.9.3, welche ich seit etwa 4 Jahren benutze
"FreeImage New" ist die nahezu aktuelle Version 3.15.0 aus Prog@ndy´s UDF: http://progandy.de/downloads/view.download/7
evtl. kann man davon ausgehen, daß eine noch ältere Version von FreeImage.dll noch schneller und kleiner ist...
E