Guten Morgen.
Kann mir jemand sagen warum die Play/Pause/Stop funktion nicht geht? Das Fileopen geht aber der rest nicht.
Hier mein Code:
Spoiler anzeigen
#cs ============================================================================
Author: Slash (Martin P)
Script: iFlow Music Player
#ce ============================================================================
[/autoit] [autoit][/autoit] [autoit]#NoTrayIcon
#include <GDIPlus.au3>
#include <File.au3>
#include <array.au3>
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <extprop.au3>
#include <Sound.au3>
#include <StaticConstants.au3>
#include <GuiSlider.au3>
#include <GuiToolTip.au3>
Opt("MustDeclareVars", 0)
[/autoit] [autoit][/autoit] [autoit]$dll=DllOpen("user32.dll")
[/autoit] [autoit][/autoit] [autoit]Global Const $AC_SRC_ALPHA = 1
Global $ImageDir = @ScriptDir & "\data\"
; Load PNG file as GDI bitmap
_GDIPlus_Startup()
$pngSrc = @ScriptDir & "\data\iflowbg.png"
$hImage = _GDIPlus_ImageLoadFromFile($pngSrc)
; Extract image width and height from PNG
$width = _GDIPlus_ImageGetWidth($hImage)
$height = _GDIPlus_ImageGetHeight($hImage)
;Hauptfenster
$GUI = GUICreate("iFlow Music Player", $width, $height, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
SetBitmap($GUI, $hImage, 0)
GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
GUISetState()
For $i = 0 To 255 Step 5
SetBitmap($GUI, $hImage, $i)
Next
;Ende Hauptfenster
;Keine Ahnung für was das ist??
$GUI1 = GUICreate("ControlGUI", $width, $height, 0, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $GUI)
GUICtrlCreatePic($ImageDir & "grey.gif", 0, 0, $width, $height)
GUICtrlSetState(-1, $GUI_DISABLE)
;Ende Keine Ahnung für was das ist??
;Fenster Titel
GUICtrlCreateLabel("iFlow Music Player", 233, 16, 100, 32)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, 0xFFFFFF)
GUISetState(@SW_SHOW)
;Ende Fenster Titel
;Close Button
$hImageclose = _GDIPlus_ImageLoadFromFile("data\close.png")
$hImageclose1 = _GDIPlus_ImageLoadFromFile("data\closehover.png")
$hImageclose2 = _GDIPlus_ImageLoadFromFile("data\closehover.png")
$Close = GUICreate("Close", 0, 0, 488,13,$WS_POPUP,BitOR($WS_EX_LAYERED,$WS_EX_MDICHILD),$GUI)
SetBitmap($Close,$hImageclose,255)
GUISetState()
;Ende Close Button
;Minimier Button
$hImagemin = _GDIPlus_ImageLoadFromFile("data\min.png")
$hImagemin1 = _GDIPlus_ImageLoadFromFile("data\minhover.png")
$hImagemin2 = _GDIPlus_ImageLoadFromFile("data\minhover.png")
$Min = GUICreate("Minimieren", 0, 0, 469,13,$WS_POPUP,BitOR($WS_EX_LAYERED,$WS_EX_MDICHILD),$GUI)
SetBitmap($Min,$hImagemin,255)
GUISetState()
;Ende Minimier Button
;Play Button
$hImageplay = _GDIPlus_ImageLoadFromFile("data\play.png")
$hImageplay1 = _GDIPlus_ImageLoadFromFile("data\playhover.png")
$hImageplay2 = _GDIPlus_ImageLoadFromFile("data\playhover.png")
$Play = GUICreate("Play", 0, 0, 20,305,$WS_POPUP,BitOR($WS_EX_LAYERED,$WS_EX_MDICHILD),$GUI)
SetBitmap($Play,$hImageplay,255)
GUISetState()
;Ende Play Button
;Pause Button
$hImagepause = _GDIPlus_ImageLoadFromFile("data\pause.png")
$hImagepause1 = _GDIPlus_ImageLoadFromFile("data\pausehover.png")
$hImagepause2 = _GDIPlus_ImageLoadFromFile("data\pausehover.png")
$Pause = GUICreate("Pause", 0, 0, 60,305,$WS_POPUP,BitOR($WS_EX_LAYERED,$WS_EX_MDICHILD),$GUI)
SetBitmap($Pause,$hImagepause,255)
GUISetState()
;Ende Pause Button
;Stop Button
$hImagestop = _GDIPlus_ImageLoadFromFile("data\stop.png")
$hImagestop1 = _GDIPlus_ImageLoadFromFile("data\stophover.png")
$hImagestop2 = _GDIPlus_ImageLoadFromFile("data\stophover.png")
$Stop = GUICreate("Stop", 0, 0, 100,305,$WS_POPUP,BitOR($WS_EX_LAYERED,$WS_EX_MDICHILD),$GUI)
SetBitmap($Stop,$hImagestop,255)
GUISetState()
;Ende Stop Button
;Open Button
$hImageopen = _GDIPlus_ImageLoadFromFile("data\open.png")
$hImageopen1 = _GDIPlus_ImageLoadFromFile("data\openhover.png")
$hImageopen2 = _GDIPlus_ImageLoadFromFile("data\openhover.png")
$Open = GUICreate("Open", 0, 0, 460,305,$WS_POPUP,BitOR($WS_EX_LAYERED,$WS_EX_MDICHILD),$GUI)
SetBitmap($Open,$hImageopen,255)
GUISetState()
;Ende Open Button
;Volume Button
$hImagevolume = _GDIPlus_ImageLoadFromFile("data\volume.png")
$hImagevolume1 = _GDIPlus_ImageLoadFromFile("data\volumehover.png")
$hImagevolume2 = _GDIPlus_ImageLoadFromFile("data\volumemute.png")
$VolumeBTN = GUICreate("Volume", 0, 0, 390,305,$WS_POPUP,BitOR($WS_EX_LAYERED,$WS_EX_MDICHILD),$GUI)
SetBitmap($VolumeBTN,$hImagevolume,255)
GUISetState()
;Ende Volume Button
;Volume Button
$hImagevolumepopup = _GDIPlus_ImageLoadFromFile("data\volumepopup.png")
$hImagevolumepopup1 = _GDIPlus_ImageLoadFromFile("data\volumepopuphover.png")
$hImagevolumepopup2 = _GDIPlus_ImageLoadFromFile("data\volumepopuphover.png")
$VolumeBTNPopup = GUICreate("Volume", 0, 0, 415,305,$WS_POPUP,BitOR($WS_EX_LAYERED,$WS_EX_MDICHILD),$GUI)
SetBitmap($VolumeBTNPopup,$hImagevolumepopup,255)
GUISetState()
;Ende Volume Button
While 1
btnclose($Close,$hImageclose,$hImageclose1,$hImageclose2)
btnmin($Min,$hImagemin,$hImagemin1,$hImagemin2)
btnplay($Play,$hImageplay,$hImageplay1,$hImageplay2)
btnpause($Pause,$hImagepause,$hImagepause1,$hImagepause2)
btnstop($Stop,$hImagestop,$hImagestop1,$hImagestop2)
btnopen($Open,$hImageopen,$hImageopen1,$hImageopen2)
btnvolume($VolumeBTN,$hImagevolume,$hImagevolume1,$hImagevolume2)
btnvolumepopup($VolumeBTNPopup,$hImagevolumepopup,$hImagevolumepopup1,$hImagevolumepopup2)
$nMsg = GUIGetMsg()
Select
Case $nMsg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
GUIDelete($GUI)
[/autoit] [autoit][/autoit] [autoit];Bild aufbauen
For $i = 0 To 255 Step 10
SetBitmap($GUI, $hImageclose, $i)
Next
For $i = 0 To 255 Step 10
SetBitmap($GUI, $hImagemin, $i)
Next
For $i = 0 To 255 Step 10
SetBitmap($GUI, $hImageplay, $i)
Next
For $i = 0 To 255 Step 10
SetBitmap($GUI, $hImagepause, $i)
Next
For $i = 0 To 255 Step 10
SetBitmap($GUI, $hImagestop, $i)
Next
For $i = 0 To 255 Step 10
SetBitmap($GUI, $hImageopen, $i)
Next
For $i = 0 To 255 Step 10
SetBitmap($GUI, $hImagevolume, $i)
Next
For $i = 0 To 255 Step 10
SetBitmap($GUI, $hImagevolumepopup, $i)
Next
; Release resources
_WinAPI_DeleteObject($hImageclose)
_WinAPI_DeleteObject($hImagemin)
_WinAPI_DeleteObject($hImageplay)
_WinAPI_DeleteObject($hImagepause)
_WinAPI_DeleteObject($hImagestop)
_WinAPI_DeleteObject($hImageopen)
_WinAPI_DeleteObject($hImagevolume)
_WinAPI_DeleteObject($hImagevolumepopup)
_WinAPI_DeleteObject($hImage)
_GDIPlus_Shutdown()
Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
If ($hWnd = $GUI) And ($iMsg = $WM_NCHITTEST) Then Return $HTCAPTION
EndFunc ;==>WM_NCHITTEST
;Minimier Button Hover
func btnmin($guicanset,$anh1,$anh2,$anh3)
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
Do
if event() then
Do
if hander()<>$guicanset then
SetBitmap($guicanset,$anh1,255)
Else
SetBitmap($guicanset,$anh3,255)
EndIf
Until not event()
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
Exit
EndIf
EndIf
Until hander()<>$guicanset
SetBitmap($guicanset,$anh1,255)
EndIf
EndFunc
;Ende Minimier Button Hover
;Close Button Hover
func btnclose($guicanset,$anh1,$anh2,$anh3)
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
Do
if event() then
Do
if hander()<>$guicanset then
SetBitmap($guicanset,$anh1,255)
Else
SetBitmap($guicanset,$anh3,255)
EndIf
Until not event()
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
Exit
EndIf
EndIf
Until hander()<>$guicanset
SetBitmap($guicanset,$anh1,255)
EndIf
EndFunc
;Ende Close Button Hover
;Play Button Hover
func btnplay($guicanset,$anh1,$anh2,$anh3)
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
Do
if event() then
Do
if hander()<>$guicanset then
SetBitmap($guicanset,$anh1,255)
Else
SetBitmap($guicanset,$anh3,255)
EndIf
Until not event()
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
_SoundPlay($Song)
EndIf
EndIf
Until hander()<>$guicanset
SetBitmap($guicanset,$anh1,255)
EndIf
EndFunc
;Ende Play Button Hover
;Pause Button Hover
func btnpause($guicanset,$anh1,$anh2,$anh3)
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
Do
if event() then
Do
if hander()<>$guicanset then
SetBitmap($guicanset,$anh1,255)
Else
SetBitmap($guicanset,$anh3,255)
EndIf
Until not event()
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
_SoundPause($Song)
EndIf
EndIf
Until hander()<>$guicanset
SetBitmap($guicanset,$anh1,255)
EndIf
EndFunc
;Ende Pause Button Hover
;Stop Button Hover
func btnstop($guicanset,$anh1,$anh2,$anh3)
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
Do
if event() then
Do
if hander()<>$guicanset then
SetBitmap($guicanset,$anh1,255)
Else
SetBitmap($guicanset,$anh3,255)
EndIf
Until not event()
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
_SoundStop($Song)
EndIf
EndIf
Until hander()<>$guicanset
SetBitmap($guicanset,$anh1,255)
EndIf
EndFunc
;Ende Stop Button Hover
;Open Button Hover
func btnopen($guicanset,$anh1,$anh2,$anh3)
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
Do
if event() then
Do
if hander()<>$guicanset then
SetBitmap($guicanset,$anh1,255)
Else
SetBitmap($guicanset,$anh3,255)
EndIf
Until not event()
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
$Song = FileOpenDialog("Bitte Musik Datei auswählen", @DesktopDir & "", "Musik Dateien(*.mp3;*.wav;*.wma;)",1)
_SoundPlay($Song)
SoundSetWaveVolume(5)
EndIf
EndIf
Until hander()<>$guicanset
SetBitmap($guicanset,$anh1,255)
EndIf
EndFunc
;Ende Open Button Hover
;Volume Button Hover
func btnvolume($guicanset,$anh1,$anh2,$anh3)
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
Do
if event() then
Do
if hander()<>$guicanset then
SetBitmap($guicanset,$anh1,255)
Else
SetBitmap($guicanset,$anh3,255)
EndIf
Until not event()
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
SoundSetWaveVolume(0)
EndIf
EndIf
Until hander()<>$guicanset
SetBitmap($guicanset,$anh1,255)
EndIf
EndFunc
;Ende Volume Button Hover
;VolumePopup Hover
func btnvolumepopup($guicanset,$anh1,$anh2,$anh3)
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
Do
if event() then
Do
if hander()<>$guicanset then
SetBitmap($guicanset,$anh1,255)
Else
SetBitmap($guicanset,$anh3,255)
EndIf
Until not event()
if hander()=$guicanset then
SetBitmap($guicanset,$anh2,255)
_CreateSliderGUI()
EndIf
EndIf
Until hander()<>$guicanset
SetBitmap($guicanset,$anh1,255)
EndIf
EndFunc
;Ende VolumePopup Button Hover
Func _CreateSliderGUI($Min = 0, $Max = 100, $GuiWidth = 200, $GuiHeight = 50)
Local $MousePos = MouseGetPos()
Local $Mouse[2]
$Mouse[0] = $MousePos[0]
$Mouse[1] = $MousePos[1]
Local $sGUI = GUICreate("Slider GUI", $GuiWidth, $GuiHeight, $MousePos[0] - $GuiWidth/2, $MousePos[1] - $GuiHeight/2, $WS_POPUP)
Local $sSlider = GUICtrlCreateSlider(0, 0, $GuiWidth, $GuiHeight)
GUICtrlSetBkColor(-1, 0x333333)
GUICtrlSetLimit(-1, $Max, $Min)
GUISetState(@SW_SHOW)
While (($MousePos[0] >= $Mouse[0] - $GuiWidth/2 And $MousePos[0] <= $Mouse[0] + $GuiWidth/2) And ($MousePos[1] >= $Mouse[1] - $GuiHeight/2 And $MousePos[1] <= $Mouse[1] + $GuiHeight/2))
$MousePos = MouseGetPos()
WEnd
GUISetState(@SW_HIDE)
Return GUICtrlRead($sSlider)
EndFunc ;==>_CreateSliderGUI
;Funktion für Transparentes GUI
Func SetBitmap($hGUI, $hImage, $iOpacity)
Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
$hScrDC = _WinAPI_GetDC(0)
$hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", $iOpacity)
DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA)
_WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
_WinAPI_ReleaseDC(0, $hScrDC)
_WinAPI_SelectObject($hMemDC, $hOld)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteDC($hMemDC)
EndFunc
;Ende Funktion für Transparentes GUI
;Funktion für Button Hover
Func hander()
Local $iRet = DllCall("user32.dll", "int", "WindowFromPoint", "long", MouseGetPos(0), "long", MouseGetPos(1))
If IsArray($iRet) Then Return HWnd($iRet[0])
Return SetError(1, 0, 0)
EndFunc
Func event($sHexKey="01", $vDLL = $dll)
Local $a_R = DllCall($vDLL, "short", "GetAsyncKeyState", "int", '0x' & $sHexKey)
If @error Then Return SetError(@error, @extended, False)
Return BitAND($a_R[0], 0x8000) <> 0
EndFunc
;Ende Funktion für Button Hover