Ist eine einfache, aber lustige UDF. Einfach den Ton, Dauer und Anzahl angeben und schon kann man kleine Musikstücke aus dem Systemlautsprecher ausgeben, wie z.B. mit "Alle meine Entchen":
Spoiler anzeigen
#Include <_beepton.au3>
_beepton("c",500)
_beepton("d",500)
_beepton("e",500)
_beepton("f",500)
_beepton("g",1000,2)
_beepton("a",500,4)
_beepton("g",1500)
_beepton("a",500,4)
_beepton("g",1500)
_beepton("f",500,4)
_beepton("e",1000,2)
_beepton("d",500,4)
_beepton("c",2000)
_beepton("c2",500)
_beepton("d2",500)
_beepton("e2",500)
_beepton("f2",500)
_beepton("g2",1000,2)
_beepton("a2",500,4)
_beepton("g2",1500)
_beepton("a2",500,4)
_beepton("g2",1500)
_beepton("f2",500,4)
_beepton("e2",1000,2)
_beepton("d2",500,4)
_beepton("c2",2000)
_beepton("c3",500)
_beepton("d3",500)
_beepton("e3",500)
_beepton("f3",500)
_beepton("g3",1000,2)
_beepton("a3",500,4)
_beepton("g3",1500)
_beepton("a3",500,4)
_beepton("g3",1500)
_beepton("f3",500,4)
_beepton("e3",1000,2)
_beepton("d3",500,4)
_beepton("c3",2000)
Funktion _beepton(Ton[,Dauer[,Anzahl]])
Ton - Ton angeben (z.B. "c", "e", "f#", "a#")
Dauer - Dauer des Tons (Standard = 1000[1s])
Anzahl - Wie oft dieser Ton abgespielt wird. (Standard = 1)
_beepton UDF:
Spoiler anzeigen
#include-once
Func _beepton($v_ton, $i_dauer = 1000, $i_anzahl = 1)
Local $frequenz = -1, $v_ton2 = $v_ton, $i_oktave = StringRight($v_ton,1)
Local $aToene[17][2] = [["c", 262],["c#",277],["db",277],["d",294],["d#",311],["eb",311],["e", 330],["f", 349],["f#",370],["gb",370],["g", 392],["g#",415],["ab",415],["a", 440],["a#",466],["b",466],["h", 494]]
If StringIsInt($i_oktave) Then $v_ton2 = StringTrimRight($v_ton,1)
If Not StringIsInt($i_oktave) Then $i_oktave = 1
For $i = 0 To 16
If $v_ton2 = $aToene[$i][0] Then $frequenz = $aToene[$i][1]
Next
If $frequenz = -1 Then
Return 0
SetError(1)
EndIf
$beepton = ($frequenz*2^$i_oktave)/2
For $i = 1 To $i_anzahl
Beep($beepton,$i_dauer)
Next
Return 1
EndFunc
UPDATE: Geht jetzt bis zu drei Tonleitern hoch! Einfach die Zahl der Tonleiter davorsetzen, also z.B. "2c","2f#","3h","3g#"
UPDATE: Geht jetzt (rein theoretisch) bis zu 7 Tonleitern hoch; Script drastisch gekürzt; Der Anhang "b" wird unterstützt;
Gibt bei Misserfolg(z.B. durch falsche angaben) 0 zurück und setzt @Error auf 1; Tonleiter wird wie folgt angegeben:
_beepton("a") ; normal
_beepton("a1") ;normal
_beepton("a3") ;3 Oktaven höher
_beepton("ab2") ;2 Oktaven höher + einen Halbton tiefer
_beepton("f#") ;Einen Halbton höher
_beepton("fb") ;Fehler, da nicht unterstützt