MsgBox() Buttons

  • Hey,
    gibt es eine Möglichkeit die Beschriftung der Buttons in einer MsgBox selber zu bestimmen?
    Mfg

  • Ich würd dir empfehlen einen eigenen Dialog zu basteln.

    Einmal editiert, zuletzt von bluelamp (29. Oktober 2008 um 20:26)

  • Hab deshalb mal eine UDF geschrieben: MessageBox mit Benutzerdefinierten Schaltflächen

    Klingt ja sehr interessant.

    Entschuldigt aber bitte meine naive Frage: Wie binde ich so eine UDF in mein Skript ein, etwa einfach per #include?
    Wenn ich im Forum nach udf suche, erhalte ich keine Treffer. :(

    Gruß Ashpool

    Zitat von mir

    Bin immer wieder erstaunt, wie begrenzt ein Horizont sein kann.

  • UDF bedeuted: User Defined Function (Benutzerdefinierte Funktion)
    und du hast 2 Möglichekeiten:
    1) den Code direkt in dein Skript kopieren ( bei größeren nicht so toll)
    2) mit #include einbinden. #include "UDF.au3"
    Ordner für #include-Dateien: include im AutoIt-Verzeichnis (da sind alle Standard-UDFs, wie array.au3, GuiConstants.au3)
    oder im Skript-Verzeichnis
    oder den ganzen Pfad angeben: #include "C:\Pfad\zur\in.au3"

    //Edit: Message Box mit 6 Schaltflächen musst du dir selber machen ...

  • progandy , das war jetzt keineswegs böse gemeint!

    Gibt es den eine Möglichkeit nur mit dem ProcesssNamen an die PID zu kommen? =)

  • und du hast 2 Möglichekeiten:
    1) den Code direkt in dein Skript kopieren ( bei größeren nicht so toll)
    2) mit #include einbinden. #include "UDF.au3"


    Danke dir, hätte ich auch selbst drauf kommen sollen 8|

    Gruß Ashpool

    Zitat von mir

    Bin immer wieder erstaunt, wie begrenzt ein Horizont sein kann.

  • Weil ich leider mit 2 Guis nicht zurechtkomme , da ich mich mit den GuiOnEventMode's nicht auskenne und mit GetMsg(1) finde ich sehr kompliziert und mir erschien eine MsgBox mit 6 Buttons viiiiel leichter für den Benutzer.

  • Da ich kein neues Thema erstellen möchte frage ich einfach hier:
    Warum wird in diesem Code beim 2. Refresh immer nur Programm Manager angezeigt?

    [autoit]

    #include <GUIConstants.au3>
    #include<process.au3>

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

    $Form1 = GUICreate("Process Manager", 257, 414, 195, 121)
    $Button1 = GUICtrlCreateButton("Refresh", 0, 18, 100, 19, 0)
    GUICtrlSetBkColor(-1, 0x808080)
    $Button2 = GUICtrlCreateButton("Schließen", 0, 36, 100, 19, 0)
    GUICtrlSetBkColor(-1, 0x808080)
    $Button3 = GUICtrlCreateButton("Priorität", 0, 54, 100, 19, 0)
    GUICtrlSetBkColor(-1, 0x808080)
    $List1 = GUICtrlCreateList("", 99, 18, 157, 188)
    $List2 = GUICtrlCreateList("", 99, 225, 157, 188)
    $Label1 = GUICtrlCreateLabel("Processes", 150, 0, 53, 17)
    $Label2 = GUICtrlCreateLabel("Windows", 150, 207, 48, 17)
    $Button4 = GUICtrlCreateButton("Refresh", 0, 225, 100, 19, 0)
    GUICtrlSetBkColor(-1, 0x808080)
    $Button5 = GUICtrlCreateButton("Close", 0, 243, 100, 19, 0)
    GUICtrlSetBkColor(-1, 0x808080)
    $Button6 = GUICtrlCreateButton("Rename", 0, 261, 100, 19, 0)
    GUICtrlSetBkColor(-1, 0x808080)
    $Button7 = GUICtrlCreateButton("Hide/Show", 0, 279, 100, 19, 0)
    GUICtrlSetBkColor(-1, 0x808080)
    $Button8 = GUICtrlCreateButton("Flash", 0, 297, 100, 19, 0)
    GUICtrlSetBkColor(-1, 0x808080)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $liste = ProcessList()
    For $i = 1 To $liste[0][0]
    $test = GUICtrlSetData($List1, $liste[$i][0])
    Next
    Case $Button2
    $auslesen = GUICtrlRead($List1)
    If $auslesen = "" Then
    MsgBox(48, "Fehler", "Bitte wähle einen Process aus!")
    Else
    ProcessClose($auslesen)
    EndIf
    Case $Button3
    $auslesen = GUICtrlRead($List1)
    If $auslesen = "" Then
    MsgBox(48, "Fehler", "Bitte wähle einen Process aus!")
    Else
    $prioritaet = InputBox("Eingabe", "Gebe bitte die entsprechende Zahl ein" & @CRLF & "0 - Niedrig" & @CRLF & "1 - Niedriger als normal" & @CRLF & "2 - Normal" & @CRLF & "3 - Höher als normal" & @CRLF & "4 - Hoch" & @CRLF & "5 - Echtzeit Mit Vorsicht verwenden, kann das System instabil machen!", "2", "", 265, 220)
    $name = WinGetProcess ( $auslesen )
    ProcessSetPriority ($name, $prioritaet)
    EndIf
    Case $Button4
    $liste2 = WinList()
    For $i = 1 To $liste2[0][0]
    $test2 = GUICtrlSetData($List2, $liste2[$i][0])
    Next
    EndSwitch
    WEnd

    [/autoit]