Systemsounds

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2935
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Systemsounds

Beitrag von Wolfgang Ciriack »

Hat jemand eine Funktion, mit der man die verschiedenen Systemsounds abspielen kann (neue Benachrichtigung, Kalendererinnerung etc.) ?
Viele Grüße
Wolfgang
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Systemsounds

Beitrag von brandelh »

Es gibt PlaySoundA() in der API und diesen Link habe ich auch gefunden:
http://www.xbaseforum.de/viewtopic.php? ... nda#p44630

Ich habe es aber schon ewig nicht mehr benutzt ;-)
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Systemsounds

Beitrag von brandelh »

das müsste so einfach gehen:

http://msdn.microsoft.com/en-us/library ... 85%29.aspx

hier ein Beispiel mit PowerBasic:

Code: Alles auswählen

         MSGBOX STR$(%SND_FILENAME)+" Filename"
         PlaySound "chimes.wav", 0, %SND_FILENAME OR %SND_ASYNC ' => PlaySoundA()

'/*
' *  flag values for fuSound and fdwSound arguments on [snd]PlaySound
' */
%SND_SYNC           = &H0000???         ' /* play synchronously (default) */
%SND_ASYNC          = &H0001???         ' /* play asynchronously */
%SND_NODEFAULT      = &H0002???         ' /* silence not default, if sound not found */
%SND_MEMORY         = &H0004???         ' /* lpszSoundName points to a memory file */
%SND_LOOP           = &H0008???         ' /* loop the sound until next sndPlaySound */
%SND_NOSTOP         = &H0010???         ' /* don't stop any currently playing sound */

%SND_NOWAIT         = &H00002000???     ' /* don't wait if the driver is busy */
%SND_ALIAS          = &H00010000???     ' /* name is a WIN.INI [sounds] entry */
%SND_ALIAS_ID       = &H00110000???     ' /* name is a WIN.INI [sounds] entry identifier */
%SND_FILENAME       = &H00020000???     ' /* name is a file name */
%SND_RESOURCE       = &H00040004???     ' /* name is a resource name or atom */
'#if(WINVER >= 0x0400)
%SND_PURGE          = &H0040???         ' /* purge non-static events for task */
%SND_APPLICATION    = &H0080???         ' /* look for application specific association */
'#endif /* WINVER >= 0x0400 */
%SND_SENTRY         = &H00080000???     ' /* Generate a SoundSentry event with this sound */
%SND_RING           = &H00100000???     ' /* Treat this as a "ring" from a communications app - don't duck me */
%SND_SYSTEM         = &H00200000???     ' /* Treat this as a system sound */

%SND_ALIAS_START    = 0  ' must be > 4096 to keep strings in same section of resource file

'#ifdef _WIN32
'#define sndAlias(ch0, ch1)      (SND_ALIAS_START + (DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8))

FUNCTION sndAlias (BYVAL strch0 AS STRING, BYVAL strch1 AS STRING) AS DWORD
   LOCAL ch0 AS DWORD, ch1 AS DWORD
   ch0 = ASC(strch0)
   ch1 = ASC(strch1)
   SHIFT LEFT ch1, 8
   FUNCTION = %SND_ALIAS_START + (ch0 OR ch1)
END FUNCTION

%SND_ALIAS_SYSTEMASTERISK       = &H00002A53   ' sndAlias('S', '*')
%SND_ALIAS_SYSTEMQUESTION       = &H00003F53   ' sndAlias('S', '?')
%SND_ALIAS_SYSTEMHAND           = &H00004853   ' sndAlias('S', 'H')
%SND_ALIAS_SYSTEMEXIT           = &H00004553   ' sndAlias('S', 'E')
%SND_ALIAS_SYSTEMSTART          = &H00005353   ' sndAlias('S', 'S')
%SND_ALIAS_SYSTEMWELCOME        = &H00005753   ' sndAlias('S', 'W')
%SND_ALIAS_SYSTEMEXCLAMATION    = &H00002153   ' sndAlias('S', '!')
%SND_ALIAS_SYSTEMDEFAULT        = &H00004453   ' sndAlias('S', 'D')

DECLARE FUNCTION PlaySoundA IMPORT "WINMM.DLL" ALIAS "PlaySoundA" ( _
   BYREF pszSound AS ASCIIZ _                           ' __in LPCSTR pszSound
 , BYVAL hmod AS DWORD _                                ' __in HMODULE hmod
 , BYVAL fdwSound AS DWORD _                            ' __in DWORD fdwSound
 ) AS LONG                                              ' BOOL

DECLARE FUNCTION PlaySoundW IMPORT "WINMM.DLL" ALIAS "PlaySoundW" ( _
   BYREF pszSound AS WSTRINGZ _                         ' __in LPCWSTR pszSound
 , BYVAL hmod AS DWORD _                                ' __in HMODULE hmod
 , BYVAL fdwSound AS DWORD _                            ' __in DWORD fdwSound
 ) AS LONG                                              ' BOOL
Gruß
Hubert
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2935
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Systemsounds

Beitrag von Wolfgang Ciriack »

Danke Hubert, werde ich mal ein bischen mit rumspielen.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2935
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Systemsounds

Beitrag von Wolfgang Ciriack »

Nochmals danke, hat geklappt.
Viele Grüße
Wolfgang
Antworten