Bei MessageBox Ping abschalten



  • Hallo!

    Gibts eigentlich ne Möglichkeit, bei ner Application->MessageBox den Sound beim aufpoppen abzuschalten?

    Phips



  • Den entsprechenden FAQ-Beitrag kennst du (Standard-Beep/Pling-Sound unterdrücken)?



  • Ja, hab ich gesehen. Aber ich will ja nicht gleich den Ping fürs ganze System lahm leg



  • Original erstellt von Phips:
    ich will ja nicht gleich den Ping fürs ganze System lahm leg

    Tip: Solche Informationen gehören immer mit in die ursprüngliche Frage!



  • Nebenbei gesagt bringt mir der FAQ-Eintrag gar nichts. Damit wird dieser Sound leider nicht deaktiviert.

    Phips



  • Hallo,

    Ich schätze mal, du musst dich hier mit WinAPI beschäftigen. Die Zuweisungen für Sounds zu Aktionen sind in der Registry. Du müsstest im zugehöringen Event den Sound abschalten oder den Registry Eintrag ändern oder ...
    Schau dir mal die Hilfe zu den API-Funktionen PlaySound, sndPlaySound oder ähnlichen an.

    Ciao



  • Mach dir doch kurz einen eigenen "MessageBox-Dialog". Geht doch mit dem BCB ganz fix!!!



  • Original erstellt von <!!!>:
    Mach dir doch kurz einen eigenen "MessageBox-Dialog". Geht doch mit dem BCB ganz fix!!!

    Und ist Resourcenverschwendung!

    @Phips: Ich hab da was gefunden in den Google Groups, was aber nur bestätigen wird, dass es nicht wirklich geht: Hier Du könntest dir höchstens nen Hook anlegen, was aber IMHO zuviel Aufwand für sowas ist. Außerdem solltest du Windows Standard-Verhalten so lassen wie es ist.

    [ Dieser Beitrag wurde am 26.03.2003 um 02:11 Uhr von WebFritzi editiert. ]



  • Danke WebFritzi!
    Der Link hat sehr geholfen. Und für alle, die es interessiert, so macht man eine MessageBox ohne Sound:

    MSGBOXPARAMS MsgParam;
    MsgParam.cbSize=sizeof(MSGBOXPARAMS);
    MsgParam.hwndOwner=Application->Handle;
    MsgParam.hInstance=NULL;
    MsgParam.lpszText="Diese MessageBox \"plingt\" nicht!";
    MsgParam.lpszCaption="Titel";
    MsgParam.dwStyle=MB_USERICON|MB_YESNO;
    MsgParam.lpszIcon=IDI_ASTERISK;
    MsgParam.dwLanguageId=LANG_NEUTRAL;
    MessageBoxIndirect(&MsgParam);
    

    Wichtig ist dabei das Flag MB_USERICON, weil Windows diesem Flag keinen Sound zuordnen kann.

    Phips



  • Einwandfrei recherchiert (-;

    ...und damit wir nun das blöde Struct wieder loswerden, setzen wir einfach MB_USERICON bei den üblichen Flags bei dem MessageBox-Aufruf ein und alle sind glücklich:

    MessageBox(Application->Handle, "Diese Message \"plingt\" auch nicht", "Titel", MB_OK | MB_USERICON | MB_ICONASTERISK);

    -junix



  • Original erstellt von junix:
    alle sind glücklich

    Ganz sicher? Ich hatte das hier auch getestet, allerdings "nur" mit dem Kommandozeilencompiler. Und dort erscheint bei der Kombination MB_USERICON | MB_ICONASTERISK überhaupt kein Icon mehr.



  • naja der 'beep' ist weg, aber das icon MB_ICONASTERIX wird nicht mehr angezeigt wird, wenn man es direkt setzt!

    [ Dieser Beitrag wurde am 26.03.2003 um 13:44 Uhr von Sunday editiert. ]



  • Es geht eigentlich nur mit der Struct-Methode einwandfrei. Bei den Standard-Methoden wird das Icon verschluckt. 😞

    Phips



  • Hmmm merkwürdig... bei mir hats - als ich das vorhin schnell getestet habe - gut funktioniert... naja, wie das hald so ist mit schnellen tests. vielleicht hab ich da was verbockt... (: Tschuldigt

    -junix



  • @Phips: Sauber! Ich hab da auch damit versucht. Nur bin ich nicht auf die gloreiche Idee gekommen, bei lpszIcon was einzusetzen. 🙄 Allerdings hatte ich auch versucht, ne Messagebox ohne Sound und ohne Icon hinzubekommen. Wenn es so deinen Vorstellungen entspricht, ist ja alles wunderbar. 🙂



  • Blöde Frage, aber: Kann man dem Parameter "MB_USERICON" ein Icon nach Wahl(z.B nicht das Icon, welches man für das eigene Prog nimmt, aber ein anderes...) zuweisen? 😕

    Ich habe festgestellt, das bei dem Office-Installer bei Installationsabbruch die MessageBox das "Office-Logo"-Icon beinhaltet. 😮



  • Ja das funktioniert. Schau dir mal in der Ms-Hilfe den Punkt MSGBOXPARAMS an. Da ist eigentlich alles genau beschrieben.

    Phips



  • Herrje... nein... Nichts gefunden... (Oje...) MSGBOXPARAMS hat bei mir keinerlei Wirkung in der MS-Hilfe...

    [ Dieser Beitrag wurde am 27.05.2003 um 10:14 Uhr von Bowser editiert. ]



  • Dann gibts genau zwei Möglichkeiten. Entweder Du installierst dir noch nachträglich die Ms-Hilfe von der Borland-CD dazu (Wird meines Wissens nach leider NICHT standardmäßig installiert) oder Du guckst direkt bei Microsoft vorbei.

    Gruß,
    Phips



  • Grundsätzlich hat diese Frage auch nichts mehr mit der Ursprünglichen Frage zu tun. Bitte weitere Nachfragen in einem neuen Thread machen.

    -junix


Anmelden zum Antworten