_MsgBox

  • das sieht doch schonma sehr gut aus :) großes lob xD
    aber wie heißen die sounds auf nicht-deutschsprachigen betriebssystemen? (ich bestitze leider keins :()
    ..wäre so vielleicht möglich es auch auf solchen systemen zum laufen zu bringen was vielleicht im interesse einiger benutzer ist. :) man könnte ja mal sammeln, von denen die solche systeme laufen haben :)

  • Gute Idee.

    Die User, die Windows 98, 2000, Vista oder Linux ... haben, könnten mal gucken, wo deren Sounds sind, sodass man es einrichten kann, dass je nach Betribssystem die richtigen Sounds kommen.

    Wer lust hat, einfach mal den Ordner hinschreiben und vllt die Namen der Sounds. Wäre super ^^

  • Hallo Commander21,

    Zitat

    Die User, die Windows 98, 2000, Vista oder Linux ... haben, könnten mal gucken, wo deren Sounds sind, sodass man es einrichten kann, dass je nach Betribssystem die richtigen Sounds kommen.

    das mit Linux wird wohl nicht klappen, siehe Auszug aus Hilfe:

    Zitat

    Kompatibel mit Windows 95 / 98 / ME / NT4 / 2000 / XP / 2003 / Vista / 2008

    mfg (Auto)Bert

  • oh ok, dann wird das mit Linux wohl nix.

    Oder kann man i.wonachgucken, wo welche Dateien auf anderen System liegen?

    Bei google find ich nich wirklich was brachbares... Vllt bin ich aber auch nur zu blöd zum suchen :rofl:

  • Klar, bei XP weis ichs ja, für XP die sind ja auch in der UDF. Aber für Vista und vllt. noch 2000 wärs gut zu wissen.

    Und die Namen der Einzelnen sounds brauch ich auch. ^^

  • Klar, bei XP weis ichs ja, für XP die sind ja auch in der UDF. Aber für Vista und vllt. noch 2000 wärs gut zu wissen.

    Und die Namen der Einzelnen sounds brauch ich auch. ^^

    Idee:

    Spoiler anzeigen
    [autoit]

    _PlaySystemSound("SystemStart")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _PlaySystemSound($sSoundName)
    ; Play a System-Definied-Sound
    ;
    ; SystemAsterisk - Asterisk
    ; Default - Default Beep
    ; EmptyRecycleBin - when recycle bin is emptied
    ; SystemExclamation - when windows shows a warning
    ; SystemExit - when Windows shuts down
    ; Maximize - when a program is maximized
    ; MenuCommand - when a menu item is clicked on
    ; MenuPopup - when a (sub)menu pops up
    ; Minimize - when a program is minimized to taskbar
    ; MailBeep - when email is received
    ; Open - when a program is opened
    ; SystemHand - when a critical stop occurs
    ; AppGPFault - when a program causes an error
    ; SystemQuestion - when a system question occurs
    ; RestoreDown - when a program is restored to normal size
    ; RestoreUp - when a program is restored to normal size from taskbar
    ; SystemStart - when Windows starts up
    ; Close - when program is closed
    ; Ringout - when (fax) call is made outbound and the line is ringing
    ; RingIn - incoming (fax) call

    [/autoit] [autoit][/autoit] [autoit]

    Local Const $SND_ALIAS = 0x10000
    DllCall('winmm.dll', 'int', 'PlaySoundA', 'str', $sSoundName, 'int', 0, 'int', $SND_ALIAS)
    EndFunc ; ==> _PlaySystemSound()

    [/autoit]

    Ich werde die Funktion später noch erweitern, muss erstmal was essen ;)

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    Einmal editiert, zuletzt von Micha_he (5. Mai 2009 um 20:25)

  • Nice, werds gleich mal testen. Doch spielt es denn auch sounds von allen gängigen Windows Versionen ab?

    Kanns leder dicht testen, weil ich nur XP hab und auch niemanden kenne, der andere wie z.B. Vista hat.

    Vllt könnte das testen auf anderen Systemen jmd anderes übernehmen und dann hier die ergebnisse posten.


    EDIT: Hab jetz mal alle getestet. Also bei den meisten kommt leider nur der "default" ( dong oder ping ) ton.
    Musst mal gucken, an was das liegen könnte. Kenne mich mit Dll's leider nicht aus.

    Einmal editiert, zuletzt von Commander21 (5. Mai 2009 um 21:16)

  • Das hängt natürlich davon ab, was Du unter "Systemsteuerung\Sound und Audiogeräte\Sounds" definiert hast!

    Ich habe gerade noch probiert, die Funktion auf Asyncron umzustellen, damit das Script nicht jedesmal an der Funktion bis zum Ende des Sounds stehen bleibt. Nur funktioniert das ASYNC-Flag nicht. Wenn jemand noch eine Idee hat, warum nicht: Immer zu !

    Spoiler anzeigen
    [autoit]

    _PlaySystemSound("SystemStart", TRUE)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _PlaySystemSound($sSoundName, $bAsync = FALSE)
    ; Play a System-Definied-Sound
    ; [email='micha_he@AutoIt.de'][/email]
    ; SystemAsterisk - Asterisk
    ; Default - Default Beep
    ; EmptyRecycleBin - when recycle bin is emptied
    ; SystemExclamation - when windows shows a warning
    ; SystemExit - when Windows shuts down
    ; Maximize - when a program is maximized
    ; MenuCommand - when a menu item is clicked on
    ; MenuPopup - when a (sub)menu pops up
    ; Minimize - when a program is minimized to taskbar
    ; MailBeep - when email is received
    ; Open - when a program is opened
    ; SystemHand - when a critical stop occurs
    ; AppGPFault - when a program causes an error
    ; SystemQuestion - when a system question occurs
    ; RestoreDown - when a program is restored to normal size
    ; RestoreUp - when a program is restored to normal size from taskbar
    ; SystemStart - when Windows starts up
    ; Close - when program is closed
    ; Ringout - when (fax) call is made outbound and the line is ringing
    ; RingIn - incoming (fax) call

    [/autoit] [autoit][/autoit] [autoit]

    Local Const $SND_ALIAS = 0x10000
    Local Const $SND_ALIAS_ID = 0x110000
    Local Const $SND_APPLICATION = 0x80
    Local Const $SND_ASYNC = 0x1
    Local Const $SND_FILENAME = 0x20000
    Local Const $SND_LOOP = 0x8
    Local Const $SND_MEMORY = 0x4
    Local Const $SND_NODEFAULT = 0x2
    Local Const $SND_NOSTOP = 0x10
    Local Const $SND_NOWAIT = 0x2000
    Local Const $SND_PURGE = 0x40
    Local Const $SND_RESOURCE = 0x40004
    Local Const $SND_SYNC = 0x0
    Local $flags
    $flags = $SND_ALIAS
    If $bAsync Then $flags = BitOr($flags, $SND_ASYNC)
    DllCall('winmm.dll', 'int', 'PlaySoundA', 'str', $sSoundName, 'int', 0, 'int', $flags)
    EndFunc ; ==> _PlaySystemSound()

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Unter Systemsounds definiere ich die Sounds, die z.B. beim Windowsstart oder eben bei MsgBoxen kommen.

    Bei mir liegen diese Sounds in: C:/WINDOWS/Media.

    Ich weis nicht, ob diese Sounds bei Vista auch dort liegen und ob sie genauso heisen, wie bei XP.
    Wenn dass natürlich der Fall wäre, wäre es ja super ^^

  • EDIT: Und wieder eine neue Version ^^

    Nun kann man auch die Größe der msgBox verändern. Dabei bleiben Label und Buttons immer
    im Verhältniss zur Größe.

    Siehe Post 1

  • wird echt langsam richtig gut :)
    aber vllt noch einen rechtschreibfehler verbessern :)
    "heigth" -> "height" ;)

  • Ui super ^^ thx für den Hinweis. wird gleich verbessert ^^

    Anregungen zu weiteren Funktionen sind natürlich immer willkommen :thumbup:

    EDIT: So habs noch etwas gelkürzt und fehler verbessert.

    Einmal editiert, zuletzt von Commander21 (6. Mai 2009 um 17:45)

  • Unter Systemsounds definiere ich die Sounds, die z.B. beim Windowsstart oder eben bei MsgBoxen kommen.

    Bei mir liegen diese Sounds in: C:/WINDOWS/Media.

    Ich weis nicht, ob diese Sounds bei Vista auch dort liegen und ob sie genauso heisen, wie bei XP.
    Wenn dass natürlich der Fall wäre, wäre es ja super ^^

    Wenn Du den Sound Deiner _MsgBox() mit '_PlaySystemSound("Default",TRUE)' erzeugst, müsste es egal sein, welches Betriebssystem und welchen Ton der User gewählt hat. Es wird immer der passende gespielt. Unter Vista und ggf. 2000 sollte das nochmal jemand prüfen !

    Hier nochmal der aktuelle Link zur _PlaySystemSound() (inkl. ASYNC-Flag): _PlaySystemSound()

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Also egal was ich mache, es kommt entweder nur dieser default dong, oder garkein sound -.-

    Welches System hast du denn? (2000, XP, Vista ...)

  • wenn die funktionen mehr und mehr werden wird es so viel aufwand die msgbox aufzurufen bwie sich n eigenes GUI zu erstellen :S ich würds so lassen, ist nahezu perfekt :)

  • Pflichteingaben sind ja im Moment nur Flag, ExFlag, Titel und Text.
    Parameter wie Width, Height, Left, Top, Color, OnTop und Soundplay sind ja nur extras, die
    die nicht "unbedingt" nötig sind, da sie ja schon vergegeben sind.

    Ich wollte eigl. noch die TimeOut Funktion der normalen msgBox dazu machen,
    aber ich lass es mal vorerst ^^


    Aber auf jeden fall danke für das super Feedback. Hoffe, das die UDF ihre Benutzer findet :thumbup:

  • Also egal was ich mache, es kommt entweder nur dieser default dong, oder garkein sound -.-

    Welches System hast du denn? (2000, XP, Vista ...)

    Wenn Du '_PlaySystemSound("Default")' nutzt, muss doch der 'DEFAULT'-Sound kommen ! Die normale MsgBox() erzeugt doch auch den Default-Sound (und das wolltest Du doch nachbilden, oder ?).

    Ich habe es mit XP Pro, SP3 gestestet. Alle der Sound's die ich probieren konnte, erzeugen die Klänge, die unter "Systemsteuerung\Sounds und Audiogeräte\Sounds" in meinem Soundschema definiert sind.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    Einmal editiert, zuletzt von Micha_he (6. Mai 2009 um 23:02)