Mainboard-Lautsprecher ansprechen



  • Hallo,
    gibt es eine Möglichkeit einen Ton (Warnmeldung) über den Lautsprecher bzw. Summer auf dem Mainboard auszugeben?
    Es soll keine Konsolenanwendung sein, ich habe noch im Hinterkopf dass es da über Steuerzeichen ging.
    An den PC ist kein Lautsprecher angeschlossen, darum möchte ich einen Fehler hierüber akustisch signalisieren.

    Gruß
    Thomas



  • Beep();
    

    PS: Siehe FAQ im Abschnitt 'System'.



  • Beep() gibt aber einen Ton auf dem angeschlossenen Lautsprecher aus.
    Ich möchte halt diesen Summer auf dem Mainboard ansprechen, der z.B. auch bei Fehlern in der Hardware von Bios verwendet wird.
    Das Beep aus der FAQ gibt bei mir ebenso nur einen Ton aus dem angeschlossenen Lautsprecher aus.



  • Hallo

    Ist das mit dem PC Speaker zwingend? Zumindestens bedient Beep die SPeaker, wenn keine Lautsprecher/Soundkarte vorhanden ist

    BCB-Hilfe zu Beep schrieb:

    Beep ruft die Windows-API-Funktion MessageBeep auf.

    MS-SDK zu MessageBeep schrieb:

    If it cannot play the specified alert sound, MessageBeep attempts to play the system default sound. If it cannot play the system default sound, the function produces a standard beep sound through the computer speaker.

    bis bald
    akari



  • Es ist zwar eine Soundkarte drin, aber kein Lautsprecher angeschlossen - darum schon zwingend 😉

    Wenn ich eine Konsolenanwendung schreibe, in dem ein
    printf("\a");
    steht, bekomme ich beides. Also einmal einen Piepton aus dem PC-Lautsprecher (wenn angeschlossen), und den gleichen Ton aus dem Lautsprecher der am Mainboard angeschlossen ist.
    Den hätte ich gerne, nur halt nicht als Konsolenanwendung sondern BCB-GUI.

    Oder kommt bei euch bei Beep() aus dem Mainboard-Speaker ein Ton?



  • Hallo

    dann hast du nicht verstanden, was ich aus dem SDK zitiert habe. Wenn Beep keine Soundkarte/Lautsprecher findet, verwendet es automatisch den PC Speaker. Du brauchst dir also darüber keinen Kopf zu machen.

    bis bald
    akari



  • Beep(3000, 1000);
    

    Deswegen der Verweis auf die FAQ.

    PS:

    void improvise(int playtime)
    {
      randomize();
      int freq, dur;
      for (int i = 0; i < playtime; i++)
      {
        freq = (rand() % 3000) + 500;
        dur = (rand() % 800) + 50;
        Beep(freq, dur);
      }
    }
    

    🙂



  • Hm, vielleicht sowas:

    Beep(<Frequenz>, <dauer in ms>);
    Damit fängt bei mir nur mein Mainboardspeaker das piepen an.

    //Edit: zu langsam... 👍



  • Danke, das meinte ich.
    Bei einem Beep ohne Parameter kam bei mir nur der Ton aus dem angeschlossenen Lautsprecher.


Anmelden zum Antworten