Oh man, was für ein Kampf. Aber jetzt funktioniert es so wie es soll. Vielen vielen Dank für deine Hilfe.
Ich werde das Ganze noch designerisch gestalten

, dass es ein Transport Kontroller wird, als ob er schon immer dazu gehört

Werde noch einen Stopp Button neben den Play Button setzen und mir dann Gedanken machen wie ich das Transport Fenster am Besten mit Soundforge zusammen Starte. Warscheinlich über eine simple Batch.
Muss nur noch schauen wie ich ein gefülltes Dreieck als PlayButton direkt zeichnen kann damit ich keine Grafik als PLayButton laden muss.
Gibt es da ein Beispiel?
Hier ist jetzt mein angepasster Code aus deinem Werk.
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
Enumeration
#Btn_play
#Btn_stop
#Exit_btn
#Gadget_exit
EndEnumeration
Define.i Event, EventWindow, EventGadget, EventType, EventMenu
Define Handle
;DEFINIERE EXIT BUTTON: X
CreateImage(#Exit_btn,15,15)
StartDrawing(ImageOutput(#Exit_btn))
FillArea(1,1,-1,RGB(202, 139, 133))
Line(3,11,9,-9,$FFFFFF)
Line(3,3,9,9,$FFFFFF)
StopDrawing()
Procedure OpenWindow_Window_0()
If OpenWindow(#Window_0, 727, 371, 254, 119, " ", #PB_Window_BorderLess)
;1px thin window frame
SetWindowLongPtr_(WindowID(#Window_0),#GWL_STYLE,GetWindowLongPtr_(WindowID(0),#GWL_STYLE)|#WS_BORDER)
SetWindowPos_(WindowID(#Window_0), 0,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_FRAMECHANGED)
;ALWAYS ON TOP
SetWindowPos_(WindowID(#Window_0),#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
;PLAY BTN
ButtonGadget(#Btn_play, 20, 28, 70, 70, "play")
;STOPP BTN
ButtonGadget(#Btn_stop, 120, 28, 70, 70, "stop")
;EXIT X
ImageGadget(#Gadget_exit,WindowWidth(0)-16,1,30,30,ImageID(#Exit_btn))
EndIf
EndProcedure
OpenWindow_Window_0()
Repeat
Event = WaitWindowEvent()
EventGadget = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget
Select EventGadget()
;PLAY BTN send COMMAND SPACE already PUSHED TO PLAY
Case #Btn_play
Handle = FindWindow_("Forge11MDIClass", 0)
If Handle
SetForegroundWindow_(Handle)
keybd_event_(#VK_SPACE, #Null, #Null, #Null)
keybd_event_(#VK_SPACE, #Null, #KEYEVENTF_KEYUP, #Null)
Delay(100)
SetForegroundWindow_(WindowID(#Window_0));Dein Fenster
EndIf
;STOPP BTN send COMMAND SPACE already PUSHED TO STOP
Case #Btn_stop
Handle = FindWindow_("Forge11MDIClass", 0)
If Handle
SetForegroundWindow_(Handle)
keybd_event_(#VK_SPACE, #Null, #Null, #Null)
keybd_event_(#VK_SPACE, #Null, #KEYEVENTF_KEYUP, #Null)
Delay(100)
EndIf
;EXIT BUTTON FUNCTION
Case #Gadget_exit
End
EndSelect
EndIf
;DRAG PLAY WITH MOUSE
Select Event
Case #WM_LBUTTONDOWN
If WindowMouseX(#Window_0) >= 0 And WindowMouseX(#Window_0) <= 240 And WindowMouseY(#Window_0) >= 0 And WindowMouseY(#Window_0) <= 119
SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
EndIf
EndSelect
ForEver
Noch eine weitere Frage. Wozu braucht es das: Delay(100)
und wofür steht in deinem Code die: ,0 hinter der Button Deklarierung?
denn es geht auch ohne dem.