Autor Beitrag
Maweki
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 197

Ubuntu Linux
Lazarus
BeitragVerfasst: Fr 22.04.05 17:43 
Hallo
Also, ich will wie ein kleines Keyboard programmieren, und das ganze, wegen dem unverwechselbaren Ton ueber den Speaker ausgeben (nein, nicht ueber den Lautsprecher, den echten PC-Speaker. Das Ding, was am Board haengt).
Jetzt ist es bei einem Keyboard ja so, dass ein Ton solange gehalten werden soll, bis man eine Taste loslaesst.
Das Problem ist, dass man mit dem Windows-Internen Aufruf windows.beep() Frequenz und Dauer angibt. Aber die Dauer steht ja, wenn es Echtzeit sein soll noch nicht fest...

Bei Win9x ist das kein Problem, da der assembler-Interrupt den Ton aktiviert und ein anderer ihn wieder deaktiviert. Aber bei XP meldet er mir bei der 9x-methode einen Zugriffsfehler.
Ich habe schon probiert, viele kurze toene hintereinander, aber das ist ein "Tonflackern", also man hoert die Pause zwischen den Beeps...

Gibt es noch eine andere Moeglichkeit den Speaker so zu benutzen, wie ich das moechte?

Gruesse
Maweki
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Fr 22.04.05 18:03 
bei win9x werden die die systembefehle über die interrupts "ausgeführt"
bei 2k wird das alles übers int3 abgewickelt und bei XP über sysenter

nach kurzem debuggen hab ich gesehn das auch nur nen sysenter benutzt wird d.h. der ton wird halt so lange abgespielt wie die parameter angeben, es wird also nicht das abspielen aktiviert und deaktiviert bei bei win9x

vielleicht hilft dir das ja weiter und aknsnt ja selbst mal schaun was die parameter genau sagen

winsta._WinStationBeepOpen

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
Maweki Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 197

Ubuntu Linux
Lazarus
BeitragVerfasst: Fr 22.04.05 18:11 
Ich weiss schon, was die normalen Parameter machen. Und ich weiss auch ganz genau, wo das Problem liegt (XP erlaubt keine Interrupts und eine Absolute Laenge ist nunmal nicht dynamisch)
die Frage, die sich mir stellt:
gibt es noch einen anderen Weg, den Speaker anzusprechen?