Kein Ton

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Kein Ton

Beitrag von KeyKon »

Ich habe ein Programm geschrieben das die ganze Zeit, bis man auf ein SysTrayIcon klickt verborgen, gar nichts macht, es benutzt unter anderem die Sound Lib.
Es lief alles wunderbar.
Doch jetzt hab ich es zur EXE gemacht und sobald dieses Programm läuft (also auch wenn es verborgen läuft) geht der Ton von allen anderen Programmen die laufen nicht mehr!
Liegt das am Programm, oder ist das unvermeidlich???

KeyKon
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Kein Ton

Beitrag von Kiffi »

> Doch jetzt hab ich es zur EXE gemacht

als was lief es denn vorher?

Grüße ... Kiffi
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Ja als Code (mit PB gestartet)
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> als Code (mit PB gestartet)

hast Du schon mal in den Taskamanger geschaut, wenn der 'Code' gestartet
worden ist? Dort findest Du eine EXE mit dem Präfix PureBasic gefolgt von
einer eindeutigen ID. Das ist Dein Code, der zu einer temporären EXE
kompiliert worden ist.

Es kann also nicht daran liegen, daß Du Dein Programm zu einer EXE
'gemacht' hast, weil PB das sowieso bei jedem Programmstart für Dich
erledigt.

Grüße ... Kiffi
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Nun woran liegt es denn???
Hat denn keiner eine Ahnung?

KeyKon
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

ohne beispielcode kann dir auch nicht geholfen werden.

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Ich befürchte nur das der Code selbst gekürzt sehr unübersichtlich ist :roll:
Naja hier einmal gekürzt:

Code: Alles auswählen

InitSprite()
InitMouse()
InitKeyboard()
InitSound()
NewList Prog.s()
AddElement(Prog())
Prog() = "D:\PureBasic\PureBasic Demo\PureBasic.exe"
Procedure runprogramm(nummer)
If nummer <> -1
SelectElement(Prog(),nummer)
RunProgram(Prog())
EndIf
hit = 0
Goto back
EndProcedure
OpenScreen(640,480,16,"")
Procedure stexten(text$,x1,x2,y1)
Locate(x1+((x2-x1)-TextLength(text$))/2,y1)
DrawText(text$)
EndProcedure
Global sfx$
Global gfx$
Global hit.l
sfx$ = "C:\Eigene Dateien\Eigene Musik\"
gfx$ = "C:\Eigene Dateien\Eigene Bilder\"
Procedure Load()
For x = 0 To 1
LoadSound(x,sfx$+"Sound"+Str(x+1)+".wav")
Next
LoadSprite(0,gfx$+"Back640-480.bmp",0)
LoadSprite(1,gfx$+"Mouse.bmp",0)
For x = 1 To 11
LoadSprite(1+x,gfx$+"Icon"+Str(x)+".bmp",0)
Next
;LoadMovie(0,"")
For x = 1 To 1
TransparentSpriteColor(x,255,0,255)
Next
EndProcedure
Structure frage
frage.s
sound.l
spezi.s
EndStructure
NewList frage.frage()
AddElement(frage())
frage()\frage = "Wilkommen! Melden sie sich bitte an:"
frage()\sound = 0
frage()\spezi = "abf"
AddElement(frage())
frage()\frage = "Wilkommen Master KeyKon! Was wollen sie heute tun?"
frage()\sound = 1
frage()\spezi = "aus"
NewList names1.s()
AddElement(names1())
names1() = "PureBasic"
AddElement(names1())
names1() = "Andere Software"
AddElement(names1())
names1() = "Spiele"
AddElement(names1())
names1() = "Kalender"
AddElement(names1())
names1() = "Gehen"

Ele = 0
Lel = 1
Repeat

If Ele <> Lel
SelectElement(frage(),Ele)
If frage()\sound <> -1
PlaySound(frage()\sound)
EndIf
Lel = Ele
EndIf

ExamineMouse()
ExamineKeyboard()
DisplaySprite(0,0,0)
StartDrawing(ScreenOutput())
FrontColor(255,255,0)
Box(0,0,640,50)
Box(590,450,50,30)
DrawingMode(1)
FrontColor(250,10,10)
Locate(5,5)
DrawText(frage()\frage)
stexten("Back",590,640,455)

If frage()\spezi = "abf"
If abf = 0
 input$ + KeyboardInkey()  
     If KeyboardReleased(#PB_Key_Back)  
        input$ = Left(input$, Len(input$)-1) 
      EndIf 
Locate(5,30)
DrawText(input$)
ElseIf abf = 1
code$ + KeyboardInkey()  
     If KeyboardReleased(#PB_Key_Back)  
        code$ = Left(code$, Len(code$)-1) 
      EndIf 
 stern$ = ""
For x = 0 To Len(code$)-1
stern$+"x"
Next
Locate(5,30)
DrawText(stern$)

ElseIf abf = 2
If UCase(input$) = "KEYKON" And UCase(code$) = "12311"
Ele = 1
abf = 0
ElseIf code$ = ""
Goto Back
Else
Lel = 12345
Ele = 0
abf = 0
code$ = ""
input$ = ""
EndIf
EndIf
If KeyboardPushed(#PB_Key_Return)
abf+1
Delay(1000)
EndIf
If back = 1
back = 0
StopDrawing()
runprogramm(-1)
EndIf
EndIf

StopDrawing()
If frage()\spezi = "aus"

For x = 0 To 4
StartDrawing(ScreenOutput())
FrontColor(10,100,250)
If x < 4
Box(30,70+x*100,200,80)
Else
Box(30+230,70+x*100-400,200,80)
EndIf
DrawingMode(1)
FrontColor(200,200,30)
If x < 4
Locate(30+8+64+8,70+x*100+30)
Else
Locate(30+8+64+8+230,70+x*100+30-400)
EndIf
SelectElement(names1(),x)
DrawText(names1())
StopDrawing()
If x < 4
DisplaySprite(x+2,38,70+x*100+8)
Else
DisplaySprite(x+2,38+230,70+x*100+8-400)
EndIf
Next
If back = 1
Ele = 0
EndIf
Select hit
Case 1
RunProgramm(0)
Case 2
Ele = 2
Case 3
Ele = 3
Case 4
Case 5
Goto back
EndSelect
EndIf



back = 0
hit = 0
If MouseButton(1) = 1 And klick = 0
klick = 1
For x = 0 To 7
If x < 4
If MouseX() > 30 And MouseY() > 70+x*100 And MouseX() < 30+200 And MouseY() < 70+x*100+80
Hit = x+1
EndIf
Else
If MouseX() > 30+230 And MouseY() > 70+x*100-400 And MouseX() < 30+230+200 And MouseY() < 70+80+x*100-400
Hit = x+1
EndIf
EndIf
Next
If MouseX() > 590 And MouseX() < 640 And MouseY() > 450 And MouseY() < 480
Back = 1
EndIf
ElseIf MouseButton(1) = 0 And klick = 1
klick = 0
EndIf


DisplayTransparentSprite(1,MouseX(),MouseY())
FlipBuffers()
Until Ende = 1


back:
hit = 0
CloseScreen()

OpenWindow(0,0,0,20,10,#PB_Window_SystemMenu,"Test1")
AddSysTrayIcon(0,WindowID(),LoadImage(0,"C:\eigene Dateien\Icon.ico"))
SysTrayIconToolTip(0,"Angemeldet")
 HideWindow(0,1)
Repeat
    Event = WaitWindowEvent()
    
    If Event = #PB_Event_SysTray
      If EventType() = #PB_EventType_LeftClick
      RemoveSysTrayIcon(0)
      CloseWindow(0)
      code$ = ""
      hit = 0
      OpenScreen(640,480,16,"")
      Load()
Goto start
       
      EndIf
      
    EndIf
  Until Event = #PB_Event_CloseWindow
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Ich befürchte nur das der Code selbst gekürzt sehr unübersichtlich ist

das liegt wohl auch daran, daß Du den Code nicht eingerückt hast und keine
Kommentare verwendest.

Es sollte in Deinem Sinne sein, das jetzt nachzuholen.

Grüße ... Kiffi
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Ich hoffe das ist besser:

Code: Alles auswählen

; Inits

InitSprite() 
InitMouse() 
InitKeyboard() 
InitSound() 

; Variablen (Normalerweise viel mehr)

NewList Prog.s() 

;Start-Links:

AddElement(Prog()) 
Prog() = "D:\PureBasic\PureBasic\PureBasic.exe" 

;MenüModie:

Structure frage 
frage.s 
sound.l 
spezi.s 
EndStructure 

NewList frage.frage() 
AddElement(frage()) 
frage()\frage = "Wilkommen! Melden sie sich bitte an:" 
frage()\sound = 0 
frage()\spezi = "abf" 
AddElement(frage()) 
frage()\frage = "Wilkommen Master KeyKon! Was wollen sie heute tun?" 
frage()\sound = 1 
frage()\spezi = "aus" 

;Namen des Hauptmenüs

NewList names1.s() 
AddElement(names1()) 
names1() = "PureBasic" 
AddElement(names1()) 
names1() = "Andere Software" 
AddElement(names1()) 
names1() = "Spiele" 
AddElement(names1()) 
names1() = "Kalender" 
AddElement(names1()) 
names1() = "Gehen" 

Ele = 0 
Lel = 1 

Global sfx$ 
Global gfx$ 
Global hit.l 

sfx$ = "C:\Eigene Dateien\Eigene Musik\" 
gfx$ = "C:\Eigene Dateien\Eigene Bilder\" 


OpenScreen(640,480,16,"") 

; Proceduren

Procedure runprogramm(nummer) 
 If nummer <> -1 
   SelectElement(Prog(),nummer) 
   RunProgram(Prog()) 
 EndIf 
 hit = 0 
 Goto back 
EndProcedure 


Procedure stexten(text$,x1,x2,y1) 
  Locate(x1+((x2-x1)-TextLength(text$))/2,y1) 
  DrawText(text$) 
EndProcedure 


Procedure Load() 

  ;hier wird der Ton geladen:
  
  For x = 0 To 1 
    LoadSound(x,sfx$+"Sound"+Str(x+1)+".wav") 
  Next 
  ;
  LoadSprite(0,gfx$+"Back640-480.bmp",0) 
  LoadSprite(1,gfx$+"Mouse.bmp",0) 
  For x = 1 To 11 
    LoadSprite(1+x,gfx$+"Icon"+Str(x)+".bmp",0) 
  Next 
  For x = 1 To 1 
    TransparentSpriteColor(x,255,0,255) 
  Next 
EndProcedure 

; RestartLabel und Load

start:
Load()

; HauptSchleife

Repeat 

If Ele <> Lel 
  SelectElement(frage(),Ele) 
  If frage()\sound <> -1 
  
  ;Und hier im Fall der Fälle abgespielt:
  
    PlaySound(frage()\sound) 
  ;  
  EndIf 
  Lel = Ele 
EndIf 

; Abfragen

ExamineMouse() 
ExamineKeyboard() 

;Hintergrund:

DisplaySprite(0,0,0) 

;2D Drawing

StartDrawing(ScreenOutput()) 
FrontColor(255,255,0) 
Box(0,0,640,50) 
Box(590,450,50,30) 
DrawingMode(1) 
FrontColor(250,10,10) 
Locate(5,5) 
DrawText(frage()\frage) 
stexten("Back",590,640,455) 

;Die Verschiedenen Modie:

If frage()\spezi = "abf" 
  If abf = 0 
    input$ + KeyboardInkey()  
     If KeyboardReleased(#PB_Key_Back)  
        input$ = Left(input$, Len(input$)-1) 
     EndIf 
    Locate(5,30) 
    DrawText(input$) 
  ElseIf abf = 1 
    code$ + KeyboardInkey()  
     If KeyboardReleased(#PB_Key_Back)  
       code$ = Left(code$, Len(code$)-1) 
     EndIf 
    stern$ = "" 
    For x = 0 To Len(code$)-1 
      stern$+"x" 
    Next 
    Locate(5,30) 
    DrawText(stern$) 

  ElseIf abf = 2 
    If UCase(input$) = "KEYKON" And UCase(code$) = "12311" 
      Ele = 1 
      abf = 0 
    ElseIf code$ = "" 
      Goto Back 
    Else 
      Lel = 12345 
      Ele = 0 
      abf = 0 
      code$ = "" 
      input$ = "" 
    EndIf 
  EndIf 
  If KeyboardPushed(#PB_Key_Return) 
    abf+1 
    Delay(1000) 
  EndIf 
  If back = 1 
    back = 0 
    StopDrawing() 
    runprogramm(-1) 
  EndIf 
EndIf 

StopDrawing() 

;Anderer Modus

If frage()\spezi = "aus" 

  For x = 0 To 4 
    StartDrawing(ScreenOutput()) 
    FrontColor(10,100,250) 
    If x < 4 
      Box(30,70+x*100,200,80) 
    Else 
      Box(30+230,70+x*100-400,200,80) 
    EndIf 
    DrawingMode(1) 
    FrontColor(200,200,30) 
    If x < 4 
      Locate(30+8+64+8,70+x*100+30) 
    Else 
      Locate(30+8+64+8+230,70+x*100+30-400) 
    EndIf 
    SelectElement(names1(),x) 
    DrawText(names1()) 
    StopDrawing() 
    If x < 4 
      DisplaySprite(x+2,38,70+x*100+8) 
    Else 
      DisplaySprite(x+2,38+230,70+x*100+8-400) 
    EndIf 
  Next 
  If back = 1 
    Ele = 0 
  EndIf 
  Select hit 
  Case 1 
    RunProgramm(0) 
  Case 2 
    Ele = 2 
  Case 3 
    Ele = 3 
  Case 4 
  Case 5 
    Goto back 
  EndSelect 
EndIf 

back = 0 
hit = 0 

;Universal Mausabfrage:

If MouseButton(1) = 1 And klick = 0 
  klick = 1 
  For x = 0 To 7 
    If x < 4 
      If MouseX() > 30 And MouseY() > 70+x*100 And MouseX() < 30+200 And MouseY() < 70+x*100+80 
        Hit = x+1 
      EndIf 
    Else 
      If MouseX() > 30+230 And MouseY() > 70+x*100-400 And MouseX() < 30+230+200 And MouseY() < 70+80+x*100-400 
        Hit = x+1 
      EndIf 
    EndIf 
  Next 
  If MouseX() > 590 And MouseX() < 640 And MouseY() > 450 And MouseY() < 480 
    Back = 1 
  EndIf 
ElseIf MouseButton(1) = 0 And klick = 1 
  klick = 0 
EndIf 

;Maus zeichnen:

DisplayTransparentSprite(1,MouseX(),MouseY()) 
FlipBuffers() 

Until Ende = 1 

;Loop-Ende und "Schlaf Modus:

back: 
hit = 0 
CloseScreen() 

;Verstecktes Fenster:

OpenWindow(0,0,0,20,10,#PB_Window_SystemMenu,"Test1") 
AddSysTrayIcon(0,WindowID(),LoadImage(0,"C:\eigene Dateien\Icon.ico")) 
SysTrayIconToolTip(0,"Angemeldet") 
HideWindow(0,1) 

;Schlaf-Schleife:

Repeat 
    Event = WaitWindowEvent() 
    If Event = #PB_Event_SysTray 
      If EventType() = #PB_EventType_LeftClick 
      RemoveSysTrayIcon(0) 
      CloseWindow(0) 
      code$ = "" 
      hit = 0 
      OpenScreen(640,480,16,"") 
      Goto start 
      EndIf 
    EndIf 
Until Event = #PB_Event_CloseWindow
Benutzeravatar
PBZecke
Beiträge: 399
Registriert: 02.09.2004 17:34

Re: Kein Ton

Beitrag von PBZecke »

KeyKon hat geschrieben: geht der Ton von allen anderen Programmen die laufen nicht mehr!
Liegt das am Programm, oder ist das unvermeidlich???

KeyKon
Hört man denn von Deinem Programm noch etwas?
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... :lol:
Antworten