ich habe XP-Fans Script gesehen und dachte nur:" cool!sowas kann ich doch bestimmt auch hinkriegen!muss mir nur genau angucken wie das dort läuft!" (ok die "_Tower" funktion ist fast komplett übernommen )
gesagt getan.
es ist aber wirklich nichts im gegensatz zu XP-Fans script! einfach nur ne kleine übung....
hier script, ihr benötigt aber den anhang wg. bass.dll/bass.au3 etc.! :
Spoiler anzeigen
#include <Bass.au3>
#include <BassConstants.au3>
#include <BassTags.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIplus.au3>
#include <WinAPI.au3>
#include <Misc.au3>
$fftstruct = DllStructCreate('float[128]')
OnAutoItExitRegister("OnAutoItExit")
_BASS_STARTUP(@ScriptDir & '\BASS.dll')
_Bass_Tags_Startup('BassTags.dll')
_BASS_Init(0, -1, 44100, 0, '')
If @error Then
MsgBox(0, 'Error', 'Sound konnte nicht Initialisiert werden!')
Exit
EndIf
$file = FileOpenDialog('Bitte wählen Sie eine Sounddatei aus!', '', 'MP3 Datei (*.mp3)')
If @error Then
Exit
EndIf
$Form1 = GUICreate("Form1", 1280, 700)
$Label1 = GUICtrlCreateLabel("", 0, 0, 461, 28)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUISetBkColor(0x000000)
GUISetState()
;~ GuiSetOnEvent(-3,"OnAutoItExit",$Form1)
HotKeySet("{ESC}","OnAutoItExit")
_GDIPlus_Startup()
$distance = 7
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($Form1)
$hBitmap = _GDIPlus_BitmapCreateFromGraphics(1280, 700, $hGraphic)
$Buffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
$Pen1 = _GDIPlus_PenCreate(0xFF00FF00)
$hBrush1 = _GDIPlus_BrushCreateSolid(0xFFFFF2FF)
$hBrush2 = _GDIPlus_BrushCreateSolid(0xFFFFF2FF)
Global $hFormat = _GDIPlus_StringFormatCreate()
Global $hFamily = _GDIPlus_FontFamilyCreate('Arial')
Global $hFont = _GDIPlus_FontCreate($hFamily, 20, 1, 2)
Global $tLayout1 = _GDIPlus_RectFCreate(100, 70, 500, 35)
Global $tLayout2 = _GDIPlus_RectFCreate(100, 105, 500, 35)
$MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
$song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
$ID3Title = _Bass_Tags_Read($MusicHandle, '%IFV1(%TRCK,%TRCK. )%IFV2(%ARTI,%ICAP(%ARTI), Nichts) - %IFV2(%TITL,%ICAP(%TITL) , Nichts )')
$MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
$ID3Album = _Bass_Tags_Read($MusicHandle, '%IFV1(%ALBM,%IUPC(%ALBM))')
GUICtrlSetData($Label1,$ID3Title&" - "&$ID3Album)
_BASS_ChannelPlay($MusicHandle, 0)
$mal = 8
If @error Then
Exit
EndIf
While Sleep(1)
_Tower()
WEnd
Func OnAutoItExit()
_BASS_Stop()
_BASS_Free()
_GDIPlus_Shutdown()
AdlibUnRegister()
Exit
EndFunc ;==>OnAutoItExit
Func _Tower()
_GDIPlus_GraphicsClear($Buffer, 0xFF000000)
$level = 300
_GDIPlus_PenSetWidth($Pen1, 19)
_BASS_ChannelGetData($MusicHandle, DllStructGetPtr($fftstruct), $BASS_DATA_FFT256)
For $i = 1 To 63 Step 1
If $i > 5 Then $level = 500
_GDIPlus_GraphicsDrawLine($Buffer, 20 * $i, 400*$mal, 20 * $i, 400 - DllStructGetData($fftstruct, 1, $i) * $level*$mal, $Pen1)
_GDIPlus_GraphicsSetSmoothingMode($Buffer, 2)
Next
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0,0,1280,1200)
_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2)
EndFunc ;==>_Tower
Edit:\\ habe nun eine neue version die nen bissel anders aussieht!