Beep
-
BTW: Doch, tut es
-
Die MSDN sagt:
Eventually because of the lack of hardware to communicate with, support for Beep was dropped in Windows Vista and Windows XP 64-Bit Edition.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms679277(v=vs.85).aspx
-
Martin Richter schrieb:
Die MSDN sagt:
Eventually because of the lack of hardware to communicate with, support for Beep was dropped in Windows Vista and Windows XP 64-Bit Edition.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms679277(v=vs.85).aspx
Bei Win 7 64 erhalte ich über die Soundkarte ein Beep.
Da steht ja auch nur "Windows Vista and Windows XP 64-Bit"
-
Und was wäre jetzt die Alternative zu 'Beep()'?
-
Das was genau gefordert ist gibt es AFAIK nicht. Du könntest auch einen Ton generieren und den abspielen, aber das sprengt wohl etwas den Rahmen. Ich denke Die erste Antwort sollte die Lösung sein.
-
könnt ihr den Code dazu posten, das kann ich mir nämlich nicht vorstellen...
-
Standardantwort: Lies den Petzold (Sinusgenerator)
.
Für deinen Fall kommt evtl auch MIDI in Frage.
Und ja, im Petzold gibt es dazu auch ein Beispiel (kbMidi), bei dem Töne in Folge von Tastatureingaben ausgegeben werden.
-
Hi,
hier mal ein ganz grober Vorschlag:#include <iostream> #include <windows.h> #include <conio.h> using namespace std; int main() { unsigned char auswahl; do { auswahl = getch(); if(auswahl == 72) { Beep(264, 1000); } } while(auswahl != 83); return(0); }
Erklärung:
Solange du die Pfeiltaste-Hoch drückst, wird ein Ton mit der länge 1sek. ausgegeben. Das Programm wird beendet, wenn du die Taste [Entf] drückst.Problem ist evtl., wenn du 5sek. die ↑-Taste drückst, wird zwar 5sek lang ein Ton ausgegeben, jedoch ist jede sek. eine kurze Pause von wenigen Millisekunden, da ich als Tonlänge 1sek festgelegt habe.
Ich hoffe ich konnte dir etwas weiterhelfen ; )
Edit:
Wenn du ca. weißt, wielange die Taste gedrückt wird, kannst du diese Zeit in die Beep-Funktion schreiben.
Wenn du z.b 10sek die Taste drückst, und in der Beep-Fkt 500 steht, hast sehr oft Pausen, wenn du aber z.b 5000 schreibst, hast du während dem ganzen Tastendruck nur eine Pause. ; )
-
Danke . . . aber soweit war ich ja auch schon. Mein Problem war eben jene Pause zwischen den Anschlägen. Um die Zeit perfekt einzustellen, müsste ich wissen, wie lange ein Klavierttastenanschlag dauert . . .
-
Beep() stammt aus DOS-Zeiten und wurde für Windows mit Frequenz und Dauer erweitert. Geblieben ist aber der Zweck als simpler Alarmton. Für den gefragten Zweck eignet sich vielleicht besser das Abspielen einer Tonfolge in einer eigenen Funktion, etwa eine Polzeisirene oder irgendwas von Beethoven. Wie man das macht, wurde dir gesagt. Wenn du mit der Polizeisirene oder Beethoven fertig bist, freuen wir uns das übernehmen zu können!