Hey,
ich habe mal vor einem Jahr schon ein virtueles keyboard gecodet (mit dem Systembeeper :D)
und da es eigentlich spaß macht darauf rum zu tippen, wollte ich es euch mal zeigen ;D
Es können keine Töne gleichzeitig gespielt werden!
Die meisten Infos, wie Tastenbelegung ect. ist im Keyboard selbst aufgelistet
Menü Hilfe > Hot Key's
ohne große Worte, der Code
Spoiler anzeigen
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=ICON\Keyboard.ico
#AutoIt3Wrapper_outfile=VirtualKeyboard.exe
#AutoIt3Wrapper_Res_Comment=Keyboard das Musik macht
#AutoIt3Wrapper_Res_Description=Keyboard
#AutoIt3Wrapper_Res_Fileversion=0.1.4.1
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=p
#AutoIt3Wrapper_Res_LegalCopyright=Krabat (C) 2011
#AutoIt3Wrapper_Res_Language=1031
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstants.au3>
#include <audio.au3>
Opt("TrayIconHide", 0)
Opt("TrayMenuMode",1)
Opt("TrayOnEventMode",1)
Opt("GUIOnEventMode", 1)
$lenge = 100
$head = "Virtual Keyboard"
$pause = 1
$process = ProcessList(@ScriptName)
If $process[0][0] > 1 Then
Opt("TrayIconHide", 1)
MsgBox(16, $head & " - Error", "Dieses Programm lässt sich nur 1x gleichzeitig ausführen!")
Exit
EndIf
$keyboard = GUICreate($head, 460, 110)
GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$slider1 = GUICtrlCreateSlider(1,10,455,20)
GUICtrlSetData(-1,100)
GUICtrlSetLimit(-1,500,50)
$okbutton = GUICtrlCreateButton("OK",10,38,80,25)
GUICtrlSetOnEvent($okbutton, "_lange")
$status = GUICtrlCreateLabel("Status: Loading",5,73,100,15)
$pressedKey = GUICtrlCreateLabel("Letze Taste: Keine",360,73,100,15)
$menuA = GUICtrlCreateMenu("&Datei")
$menuAItemA = GUICtrlCreateMenuitem("Pause",$menuA)
$menuAItemB = GUICtrlCreateMenuitem("Beenden",$menuA)
GUICtrlSetOnEvent($menuAItemB, "_exit")
GUICtrlSetOnEvent($menuAItemA, "_paused")
$menuE = GUICtrlCreateMenu("&Audio")
$menuEItemA = GUICtrlCreateMenuitem("Noten eingeben",$menuE)
$menuEItemB = GUICtrlCreateMenuitem("",$menuE)
$menuEItemC = GUICtrlCreateMenuitem("Sound +",$menuE)
$menuEItemD = GUICtrlCreateMenuitem("Sound -",$menuE)
$menuEItemE = GUICtrlCreateMenuitem("",$menuE)
$menuEItemF = GUICtrlCreateMenuitem("Sound An",$menuE)
GUICtrlSetOnEvent($menuEItemA, "_eingabe")
GUICtrlSetOnEvent($menuEItemC, "_soundplus")
GUICtrlSetOnEvent($menuEItemD, "_soundminus")
GUICtrlSetOnEvent($menuEItemF, "_mute")
$menuC = GUICtrlCreateMenu("&Hilfe")
$menuCItemA = GUICtrlCreateMenuitem("Hot Key's",$menuC)
$menuCItemB = GUICtrlCreateMenuitem("Sound",$menuC)
$menuCItemC = GUICtrlCreateMenuitem("",$menuC)
$menuCItemD = GUICtrlCreateMenuitem("Info",$menuC)
GUICtrlSetOnEvent($menuCItemA, "_key")
GUICtrlSetOnEvent($menuCItemB, "_sound")
GUICtrlSetOnEvent($menuCItemD, "_info")
$menuD = GUICtrlCreateMenu("&?")
$menuDItemA = GUICtrlCreateMenuitem("Mitwirkend",$menuD)
$menuDItemB = GUICtrlCreateMenuitem("About...",$menuD)
GUICtrlSetOnEvent($menuDItemA, "_with")
GUICtrlSetOnEvent($menuDItemB, "_about")
$trayAA = TrayCreateItem("Fenster Öffnen")
TrayCreateItem("")
$trayA = TrayCreateItem("Mitwirkend")
$trayB = TrayCreateItem("About...")
TrayCreateItem("")
$trayC = TrayCreateItem("Beenden")
TrayItemSetOnEvent($trayAA, "_open")
TrayItemSetOnEvent($trayA, "_with")
TrayItemSetOnEvent($trayB, "_about")
TrayItemSetOnEvent($trayC, "_exit")
TraySetToolTip("> "&$head & "" & @CRLF & "Version 0.1.4")
[/autoit] [autoit][/autoit] [autoit]If _isMute() = 1 Then GUICtrlSetState($menuEItemF, $GUI_UNCHECKED)
If _isMute() = 0 Then GUICtrlSetState($menuEItemF, $GUI_CHECKED)
WinActivate($head)
GUISetState ()
While 1
TrayItemSetState($trayAA, 4)
TrayItemSetState($trayA, 4)
TrayItemSetState($trayB, 4)
TrayItemSetState($trayC, 4)
Sleep(200)
If WinActive($head) AND $pause = 1 Then
GUICtrlSetData($status, "Status: Ready")
GUICtrlSetState($menuAItemA, $GUI_UNCHECKED)
HotKeySet("{ESC}","_exit")
HotKeySet("{+}","_plus")
HotKeySet("{-}","_minus")
HotKeySet("{NUMPADADD}","_plus")
HotKeySet("{NUMPADSUB}","_minus")
HotKeySet("{p}","_p")
HotKeySet("{o}","_soundplus")
HotKeySet("{l}","_soundminus")
HotKeySet("{ö}","_mute")
HotKeySet("{ü}","_paused")
HotKeySet("{F8}","_C8")
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{F7}","_B7")
HotKeySet("{F6}","_A7")
HotKeySet("{F5}","_G7")
HotKeySet("{F4}","_F7")
HotKeySet("{F3}","_E7")
HotKeySet("{F2}","_D7")
HotKeySet("{F1}","_C7")
HotKeySet("{7}","_B6")
HotKeySet("{6}","_A6")
HotKeySet("{5}","_G6")
HotKeySet("{4}","_F6")
HotKeySet("{3}","_E6")
HotKeySet("{2}","_D6")
HotKeySet("{1}","_C6")
HotKeySet("{u}","_B5")
HotKeySet("{z}","_A5")
HotKeySet("{t}","_G5")
HotKeySet("{r}","_F5")
HotKeySet("{e}","_E5")
HotKeySet("{w}","_D5")
HotKeySet("{q}","_C5")
HotKeySet("{j}","_B4")
HotKeySet("{h}","_A4")
HotKeySet("{g}","_G4")
HotKeySet("{f}","_F4")
HotKeySet("{d}","_E4")
HotKeySet("{s}","_D4")
HotKeySet("{a}","_C4")
HotKeySet("{m}","_B3")
HotKeySet("{n}","_A3")
HotKeySet("{b}","_G3")
HotKeySet("{v}","_F3")
HotKeySet("{c}","_E3")
HotKeySet("{x}","_D3")
HotKeySet("{y}","_C3")
HotKeySet("{NUMPAD7}","_B2")
HotKeySet("{NUMPAD6}","_A2")
HotKeySet("{NUMPAD5}","_G2")
HotKeySet("{NUMPAD4}","_F2")
HotKeySet("{NUMPAD3}","_E2")
HotKeySet("{NUMPAD2}","_D2")
HotKeySet("{NUMPAD1}","_C2")
Else
GUICtrlSetData($status, "Status: Paused")
GUICtrlSetState($menuAItemA, $GUI_CHECKED)
HotKeySet("{ESC}")
HotKeySet("{+}")
HotKeySet("{-}")
HotKeySet("{NUMPADADD}")
HotKeySet("{NUMPADSUB}")
HotKeySet("{p}")
HotKeySet("{o}")
HotKeySet("{l}")
HotKeySet("{ö}")
HotKeySet("{ü}")
HotKeySet("{F8}")
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{F7}")
HotKeySet("{F6}")
HotKeySet("{F5}")
HotKeySet("{F4}")
HotKeySet("{F3}")
HotKeySet("{F2}")
HotKeySet("{F1}")
HotKeySet("{7}")
HotKeySet("{6}")
HotKeySet("{5}")
HotKeySet("{4}")
HotKeySet("{3}")
HotKeySet("{2}")
HotKeySet("{1}")
HotKeySet("{q}")
HotKeySet("{w}")
HotKeySet("{e}")
HotKeySet("{r}")
HotKeySet("{t}")
HotKeySet("{z}")
HotKeySet("{u}")
HotKeySet("{a}")
HotKeySet("{s}")
HotKeySet("{d}")
HotKeySet("{f}")
HotKeySet("{g}")
HotKeySet("{h}")
HotKeySet("{j}")
HotKeySet("{y}")
HotKeySet("{x}")
HotKeySet("{c}")
HotKeySet("{v}")
HotKeySet("{b}")
HotKeySet("{n}")
HotKeySet("{m}")
HotKeySet("{NUMPAD7}")
HotKeySet("{NUMPAD6}")
HotKeySet("{NUMPAD5}")
HotKeySet("{NUMPAD4}")
HotKeySet("{NUMPAD3}")
HotKeySet("{NUMPAD2}")
HotKeySet("{NUMPAD1}")
EndIf
WEnd
Func _C8()
Beep(4186.01,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: C8")
EndFunc
; NEXT
Func _B7()
Beep(3951.07,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: B7")
EndFunc
Func _A7()
Beep(3520.00,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: A7")
EndFunc
Func _G7()
Beep(3135.96,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: G7")
EndFunc
Func _F7()
Beep(2793.83,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: F7")
EndFunc
Func _E7()
Beep(2637.02,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: E7")
EndFunc
Func _D7()
Beep(2349.32,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: D7")
EndFunc
Func _C7()
Beep(2093.00,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: C7")
EndFunc
; NEXT
Func _B6()
Beep(1975.53,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: B6")
EndFunc
Func _A6()
Beep(1760.00,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: A6")
EndFunc
Func _G6()
Beep(1567.98,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: G6")
EndFunc
Func _F6()
Beep(1396.91,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: F6")
EndFunc
Func _E6()
Beep(1318.51,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: E6")
EndFunc
Func _D6()
Beep(1174.66,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: D6")
EndFunc
Func _C6()
Beep(1046.50,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: C6")
EndFunc
; NEXT
Func _B5()
Beep(987.767,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: B5")
EndFunc
Func _A5()
Beep(880.000,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: A5")
EndFunc
Func _G5()
Beep(783.991,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: G5")
EndFunc
Func _F5()
Beep(698.456,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: F5")
EndFunc
Func _E5()
Beep(659.255,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: E5")
EndFunc
Func _D5()
Beep(587.330,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: D5")
EndFunc
Func _C5()
Beep(523.251,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: C5")
EndFunc
; NEXT
Func _B4()
Beep(493.883,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: B4")
EndFunc
Func _A4()
Beep(440.000,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: A4")
EndFunc
Func _G4()
Beep(391.995,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: G4")
EndFunc
Func _F4()
Beep(349.228,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: F4")
EndFunc
Func _E4()
Beep(329.628,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: E4")
EndFunc
Func _D4()
Beep(293.665,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: D4")
EndFunc
Func _C4()
Beep(261.626,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: C4")
EndFunc
; NEXT
Func _B3()
Beep(246.942,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: B3")
EndFunc
Func _A3()
Beep(220.000,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: A3")
EndFunc
Func _G3()
Beep(195.998,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: G3")
EndFunc
Func _F3()
Beep(174.614,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: F3")
EndFunc
Func _E3()
Beep(164.814,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: E3")
EndFunc
Func _D3()
Beep(146.832,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: D3")
EndFunc
Func _C3()
Beep(130.813,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: C3")
EndFunc
; NEXT
Func _B2()
Beep(123.471,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: B2")
EndFunc
Func _A2()
Beep(110.000,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: A2")
EndFunc
Func _G2()
Beep(97.9989,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: G2")
EndFunc
Func _F2()
Beep(87.3071,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: F2")
EndFunc
Func _E2()
Beep(82.4069,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: E2")
EndFunc
Func _D2()
Beep(73.4162,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: D2")
EndFunc
Func _C2()
Beep(65.4064,$lenge)
GUICtrlSetData($pressedKey, "Letze Taste: C2")
EndFunc
Func _exit()
Exit
EndFunc
Func _lange()
$lenge = GUICtrlRead($slider1)
EndFunc
Func _about()
Sleep(200)
MsgBox(0, $head & " - About", $head&" Version 0.1.4 - BETA" & @CRLF & "" & @CRLF & " Copyright © 2011" & @CRLF & " by Krabat")
EndFunc
Func _key()
Sleep(200)
MsgBox(0, $head & " - HotKey's", "> Duration:" & @CRLF & "F8 = C8" & @CRLF & "F1 - F7 = C7,D7,E7,F7,G7,A7,B7" & @CRLF & "1 - 7 = C6,D6,E6,F6,G6,A6,B6" & @CRLF & "Q - U = C5,D5,E5,F5,G5,A5,B5" & @CRLF & "A - J = C4,D4,E4,F4,G4,A4,B4" & @CRLF & "Y - M = C3,D3,E3,F3,G3,A3,B3" & @CRLF & "Nummblock 1 - 7 = C2,D2,E2,F2,G2,A2,B2" & @CRLF & "" & @CRLF & "Immer von links nach rechts sortiert!" & @CRLF & "Nur die weißen Tasten gibt es!" & @CRLF & "+ und - regulieren die Tonlänge!" & @CRLF & "P = Ein/Viertel Sekunde Pause" & @CRLF & "O und L = Sound Plus / Minus" & @CRLF & "Ö = Sound Ein/Aus Schalten" & @CRLF & "Ü = Pause (des Programms)")
EndFunc
Func _with()
Sleep(200)
MsgBox(0, $head & " - Mitwirkende", "> Development:" & @CRLF & " - Krabat" & @CRLF & "> Helfer:")
EndFunc
Func _sound()
Sleep(200)
MsgBox(0, $head & " - Sound Einstellungen", "Der Computer Sound und Interne Pieper des PC's muss aktiviert sein." & @CRLF & "Mit der Leiste im Index wird eingestellt wie lange ein Ton gespielt wird!")
EndFunc
Func _info()
Sleep(200)
MsgBox(0, $head & " - Info", "Das Hauptfenster muss aktiv sein um Musik zu machen!")
EndFunc
Func _open()
Sleep(200)
WinActivate($head)
EndFunc
Func _paused()
If $pause = 1 Then
$pause = 0
Else
$pause = 1
EndIf
EndFunc
Func _minus()
If $lenge >=50 Then
$lenge = $lenge-5
GUICtrlSetData($slider1,$lenge)
EndIf
EndFunc
Func _plus()
If $lenge <=500 Then
$lenge = $lenge+5
GUICtrlSetData($slider1,$lenge)
EndIf
EndFunc
Func _p()
Sleep(250)
EndFunc
Func _eingabe()
Sleep(200)
MsgBox(0, $head & " - Noten eingeben", "> Duration:" & @CRLF & "F8 = C8" & @CRLF & "F1 - F7 = C7,D7,E7,F7,G7,A7,B7" & @CRLF & "1 - 7 = C6,D6,E6,F6,G6,A6,B6" & @CRLF & "Q - U = C5,D5,E5,F5,G5,A5,B5" & @CRLF & "A - J = C4,D4,E4,F4,G4,A4,B4" & @CRLF & "Y - M = C3,D3,E3,F3,G3,A3,B3" & @CRLF & "Nummblock 1 - 7 = C2,D2,E2,F2,G2,A2,B2" & @CRLF & "" & @CRLF & "Immer von links nach rechts sortiert!" & @CRLF & "Nur die weißen Tasten gibt es!" & @CRLF & "+ und - regulieren die Tonlänge!" & @CRLF & "P = Ein/Viertel Sekunde Pause" & @CRLF & "" & @CRLF & "Gib jetzt die Noten ein!" & @CRLF & "Drücke auf OK und die Noten werden gespielt!")
EndFunc
Func _mute()
Send("{VOLUME_MUTE}")
If _isMute() = 1 Then GUICtrlSetState($menuEItemF, $GUI_UNCHECKED)
If _isMute() = 0 Then GUICtrlSetState($menuEItemF, $GUI_CHECKED)
WinActivate($head)
EndFunc
Func _soundplus()
Send("{VOLUME_UP}")
If _isMute() = 1 Then GUICtrlSetState($menuEItemF, $GUI_UNCHECKED)
If _isMute() = 0 Then GUICtrlSetState($menuEItemF, $GUI_CHECKED)
WinActivate($head)
EndFunc
Func _soundminus()
Send("{VOLUME_DOWN}")
If _isMute() = 1 Then GUICtrlSetState($menuEItemF, $GUI_UNCHECKED)
If _isMute() = 0 Then GUICtrlSetState($menuEItemF, $GUI_CHECKED)
WinActivate($head)
EndFunc
ja und auch hier wird man sehen das es etwas älter ist durch das änfängerhafte programmiern^^
da ich nicht weiß ob jeder die audio.au3 hat, habe ich die mal angehängt
und hier gebe ich euch noch das erste Lied mit ;D
spielt folgende Tasten: (von links nach Rechts, dann die nächste Zeile)
A S D F G G
H H H H G
H H H H G
F F F F D D
S S S S A
wer hört raus was das ist? ;D
Wichtig!
Das Programm benutzt den Systempieper, dieser muss nachtürlich An sein / Funktionsfähigsein und wenn man die Lautsprecher an macht hören sich die Töne noch besser an
ich entwickel diesen code nicht weiter, wenn jemand anders was daran tun will viel spaß
macht eigentlich spaß drauf rum zu tippen, kommen so E-Keyboard sounds raus xD
mfg Krabat