So you can choose between
Code:
;Tray-Menu
Menu, Tray, Add, Open, Open
Menu, Tray, Add, Reset Settings, Reset
Menu, Tray, Add, Close, GuiClose
Menu, Tray, Click, 1
Menu, Tray, Default, Open
Menu, Tray, NoStandard
;GUI
Gui, Add, Groupbox, x10 y10 w510 h125, Title && Text
Gui, Add, Text, xs+10 ys+20 section, Title:
Gui, Add, Edit, xs+30 ys-3 w460 vTitle gCreate_Msgbox_Command WantTab,
Gui, Add, Text, xs+0 ys+25 section, Text:
Gui, Add, Edit, xs+30 ys-3 r5 w460 vText gCreate_Msgbox_Command WantTab,
Gui, Add, Groupbox, x10 y145 h45 w510 section, Modality
Gui, Add, Radio, xs+10 ys+20 section Checked vModality1 gCreate_Msgbox_Command, Normal
Gui, Add, Radio, xs+70 ys+0 vModality2 gCreate_Msgbox_Command, Task Modal
Gui, Add, Radio, xs+160 ys+0 vModality3 gCreate_Msgbox_Command, System Modal
Gui, Add, Radio, xs+270 ys+0 section vModality4 gCreate_Msgbox_Command, Always on top
Gui, Add, Radio, xs+100 ys+0 section vModality5 gCreate_Msgbox_Command, Default desktop
Gui, Add, Groupbox, x10 y200 w510 h90 section, Icons
;Gui, Add, Picture, xs+20 ys+20 gSelect_NoIcon section icon1, %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+20 ys+20 gSelect_NoIcon h30 w20 section,
Gui, Add, Picture, xs+115 ys+0 gSelect_ErrorIcon icon4 , %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+215 ys+0 gSelect_Question icon3 , %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+310 ys+0 gSelect_Exclamation icon2, %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+415 ys+0 gSelect_Info icon5 , %A_WinDir%\system32\user32.dll
Gui, Add, Radio, xs-10 ys+40 section vIcon1 Checked gCreate_Msgbox_Command, No Icon
Gui, Add, Radio, xs+105 ys+0 vIcon2 gCreate_Msgbox_Command, Stop/Error
Gui, Add, Radio, xs+205 ys+0 vIcon3 gCreate_Msgbox_Command, Question
Gui, Add, Radio, xs+300 ys+0 vIcon4 gCreate_Msgbox_Command, Exclamation
Gui, Add, Radio, xs+415 ys+0 vIcon5 gCreate_Msgbox_Command, Info
Gui, Add, Groupbox, x10 y300 h65 w510 section, Buttons
Gui, Add, Radio, xs+10 ys+20 vButton_Selection1 section Checked gCreate_Msgbox_Command, OK
Gui, Add, Radio, xs+115 ys+0 vButton_Selection2 gCreate_Msgbox_Command, OK/Cancel
Gui, Add, Radio, xs+210 ys+0 vButton_Selection3 gCreate_Msgbox_Command, Abort/Retry/Ignore
Gui, Add, Checkbox, xs+335 ys+0 vButton_Selection_Help gCreate_Msgbox_Command, Help button
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection4 gCreate_Msgbox_Command, Yes/No/Cancel
Gui, Add, Radio, xs+115 ys+0 vButton_Selection5 gCreate_Msgbox_Command, Yes/No
Gui, Add, Radio, xs+210 ys+0 vButton_Selection6 gCreate_Msgbox_Command, Retry/Cancel
Gui, Add, Radio, xs+335 ys+0 section vButton_Selection7 gCreate_Msgbox_Command, Cancel/Try Again/Continue
Gui, Add, Groupbox, x10 y375 h45 w200 section, Default-Button
Gui, Add, Radio, xs+10 ys+20 section Checked vDefault1 gCreate_Msgbox_Command, 1st
Gui, Add, Radio, xs+70 ys+0 section vDefault2 gCreate_Msgbox_Command, 2nd
Gui, Add, Radio, xs+70 ys+0 section vDefault3 gCreate_Msgbox_Command, 3rd
Gui, Add, Groupbox, x220 y375 h45 w90 section, Timeout
Gui, Add, Edit, xs+10 ys+17 w70 vTimeout gCreate_Msgbox_Command
Gui, Add, UpDown, Range-1-2147483, -1
Gui, Add, Groupbox, x315 y375 w205 h45 section, Allignment
Gui, Add, Checkbox, xs+10 ys+20 vAllignment1 section gCreate_Msgbox_Command, Right-justified
Gui, Add, Checkbox, xs+100 ys+0 vAllignment2 gCreate_Msgbox_Command, Right-to-left
Gui, Add, Groupbox, x10 y430 w510 h105 section, Result
Gui, Add, Edit, xs+10 ys+20 w485 r3 vMsgbox_Command,
Gui, Add, Button, xs+20 ys+75 section h20 w40 vTest gTest, Test
Gui, Add, Button, xs+60 ys+0 h20 w100 Default gCopy_to_Clipboard, Copy to Clipboard
Gui, Add, Button, xs+180 ys+0 h20 w40 gReset, Reset
Gui, Show, , Create MessageBox
GoSub, Reset ;Initalize GUI from Ini
return
Select_NoIcon:
GuiControl, , Icon1, 1
GoSub, Create_Msgbox_Command
return
Select_ErrorIcon:
GuiControl, , Icon2, 1
GoSub, Create_Msgbox_Command
return
Select_Question:
GuiControl, , Icon3, 1
GoSub, Create_Msgbox_Command
return
Select_Exclamation:
GuiControl, , Icon4, 1
GoSub, Create_Msgbox_Command
return
Select_Info:
GuiControl, , Icon5, 1
GoSub, Create_Msgbox_Command
return
Create_Msgbox_Command:
Gui, Submit, NoHide
;Get types of used buttons
Loop, 7
{
if Button_Selection%A_Index% = 1
{
ButtonSelection := A_Index -1
if Button_Selection_Help = 1
ButtonSelection += 16384
break
}
}
;Get used Icon
Loop, 5
{
if Icon%A_Index% = 1
{
if A_Index = 1
Icon = 0
else if A_Index = 2
Icon = 16
else if A_Index = 3
Icon = 32
else if A_Index = 4
Icon = 48
else if A_Index = 5
Icon = 64
break
}
}
;Get Modality-State
Loop, 5
{
if Modality%A_Index% = 1
{
if A_Index = 1
Modality = 0
else if A_Index = 2
Modality = 8192
else if A_Index = 3
Modality = 4096
else if A_Index = 4
Modality = 262144
else if A_Index = 5
Modality = 131072
break
}
}
;Get Default-Button
Loop, 3
{
if Default%A_Index% = 1
{
if A_Index = 1
Default = 0
else if A_Index = 2
Default = 256
else if A_Index = 3
Default = 512
break
}
}
;Check Allignment
Allignment = 0
if Allignment1 = 1
Allignment += 524288
if Allignment2 = 1
Allignment += 1048576
Msgbox_Number := ButtonSelection + Icon + Modality + Default + Allignment ;Generate type of messagebox
Escape_Characters(Title)
Escape_Characters(Text)
;Timeout "-1" = no timeout
if Timeout = -1
Timeout =
else
{
StringReplace, Timeout, Timeout, `,, . ;Allows "," as decimal-point
Timeout = , %Timeout%
}
;Create command and set it to Edit-Control
Msgbox_Command = msgbox, %Msgbox_Number%, %Title%, %Text%%Timeout%
GuiControl, , Msgbox_Command, %Msgbox_Command%
return
;Creates a Temp-File to show actual configuration
Test:
GoSub, Create_Msgbox_Command
GuiControl, Disable, Test
FileAppend, %Msgbox_Command%, MsgboxTemp.ahk
RunWait, MsgboxTemp.ahk
FileDelete, MsgboxTemp.ahk
GuiControl, Enable, Test
return
;Escapes Characters like ","
Escape_Characters(byref Var)
{
StringReplace, Var, Var, `n, ``n, All ;Translate line breaks in entered text
StringReplace, Var, Var, `,, ```,, All ;Escapes ","
StringReplace, Var, Var, `;, ```;, All ;Escapes ";"
}
Copy_to_Clipboard:
Clipboard = %Msgbox_Command%
IniRead, Reset_after_Clipboard, %A_ScriptDir%\Msgbox.ini, Clipboard, Reset after Clipboard, 0
if Reset_after_Clipboard = 1
GoSub, Reset
return
GuiClose:
ExitApp
Open:
Gui, Show
return
Reset:
IfExist %A_ScriptDir%\Msgbox.ini
{
IniRead, Title, %A_ScriptDir%\Msgbox.ini, Reset, Title, plk
if Title = plk
Title =
IniRead, Text, %A_ScriptDir%\Msgbox.ini, Reset, Text, plk
if Text = plk
Text =
IniRead, Modality, %A_ScriptDir%\Msgbox.ini, Reset, Modality, 1
IniRead, Icon, %A_ScriptDir%\Msgbox.ini, Reset, Icon, 1
IniRead, Button_Selection, %A_ScriptDir%\Msgbox.ini, Reset, Button, 1
IniRead, Button_Selection_Help, %A_ScriptDir%\Msgbox.ini, Reset, Help Button, 0
IniRead, Default, %A_ScriptDir%\Msgbox.ini, Reset, Default Button, 1
IniRead, Timeout, %A_ScriptDir%\Msgbox.ini, Reset, Timeout, -1
IniRead, Allignment1, %A_ScriptDir%\Msgbox.ini, Reset, Allignment_Right, 0
IniRead, Allignment2, %A_ScriptDir%\Msgbox.ini, Reset, Allignment_RtL, 0
}
else
{
Title =
Text =
Modality = 1
Icon = 1
Button_Selection = 1
Button_Selection_Help = 0
Default = 1
Timeout = -1
Allignment1 = 0
Allignment2 = 0
}
GuiControl, , Title, %Title%
GuiControl, , Text, %Text%
GuiControl, , Modality%Modality%, 1
GuiControl, , Icon%Icon%, 1
GuiControl, , Button_Selection%Button_Selection%, 1
GuiControl, , Button_Selection_Help, %Button_Selection_Help%
GuiControl, , Default%Default%, 1
GuiControl, , Timeout, %Timeout%
GuiControl, , Allignment1, %Allignment1%
GuiControl, , Allignment2, %Allignment2%
return
GuiSize:
if A_EventInfo = 1
Gui, Show, Hide
return
and
Code:
;Tray-Menu
Menu, Tray, Add, Open, Open
Menu, Tray, Add, Reset Settings, Reset
Menu, Tray, Add, Close, GuiClose
Menu, Tray, Click, 1
Menu, Tray, Default, Open
Menu, Tray, NoStandard
;GUI
Gui, Add, Text, x10 y10 section, Title
Gui, Add, Edit, xs+0 ys+15 section w400 vTitle gCreate_Msgbox_Command,
Gui, Add, Text, xs+0 ys+25 section, Text:
Gui, Add, Edit, xs+0 ys+15 section r3 w400 vText gCreate_Msgbox_Command WantTab,
Gui, Add, Groupbox, x10 y130 h215 w190 section, Buttons
Gui, Add, Radio, xs+10 ys+20 section vButton_Selection1 Checked gCreate_Msgbox_Command, OK
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection2 gCreate_Msgbox_Command, OK/Cancel
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection3 gCreate_Msgbox_Command, Abort/Retry/Ignore
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection4 gCreate_Msgbox_Command, Yes/No/Cancel
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection5 gCreate_Msgbox_Command, Yes/No
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection6 gCreate_Msgbox_Command, Retry/Cancel
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection7 gCreate_Msgbox_Command, Cancel/Try Again/Continue
Gui, Add, Checkbox, xs+0 ys+25 vButton_Selection_Help gCreate_Msgbox_Command, Help button
Gui, Add, Groupbox, x220 y130 h215 w190 section, Icons
Gui, Add, Radio, xs+10 ys+25 section vIcon1 Checked gCreate_Msgbox_Command, No Icon
Gui, Add, Radio, xs+0 ys+40 vIcon2 gCreate_Msgbox_Command, Stop/Error
Gui, Add, Radio, xs+0 ys+80 vIcon3 gCreate_Msgbox_Command, Question
Gui, Add, Radio, xs+0 ys+120 vIcon4 gCreate_Msgbox_Command, Exclamation
Gui, Add, Radio, xs+0 ys+160 vIcon5 gCreate_Msgbox_Command, Info
;Gui, Add, Picture, xs+90 ys-10 gSelect_NoIcon icon1, %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+90 ys-10 gSelect_NoIcon h30 w20
Gui, Add, Picture, xs+90 ys+30 gSelect_ErrorIcon icon4 , %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+90 ys+70 gSelect_Question icon3 , %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+90 ys+110 gSelect_Exclamation icon2, %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+90 ys+150 gSelect_Info icon5 , %A_WinDir%\system32\user32.dll
Gui, Add, Groupbox, x430 y20 h140 w190 section, Modality
Gui, Add, Radio, xs+10 ys+20 section Checked vModality1 gCreate_Msgbox_Command, Normal
Gui, Add, Radio, xs+0 ys+25 section vModality2 gCreate_Msgbox_Command, Task Modal
Gui, Add, Radio, xs+0 ys+25 section vModality3 gCreate_Msgbox_Command, System Modal (always on top)
Gui, Add, Radio, xs+0 ys+25 section vModality4 gCreate_Msgbox_Command, Always on top
Gui, Add, Radio, xs+0 ys+25 section vModality5 gCreate_Msgbox_Command, Default desktop
Gui, Add, Groupbox, x430 y170 h45 w190 section, Default-Button
Gui, Add, Radio, xs+10 ys+20 section Checked vDefault1 gCreate_Msgbox_Command, 1st
Gui, Add, Radio, xs+65 ys+0 section vDefault2 gCreate_Msgbox_Command, 2nd
Gui, Add, Radio, xs+65 ys+0 section vDefault3 gCreate_Msgbox_Command, 3rd
Gui, Add, Groupbox, x435 y220 h45 w190 section, Allignment
Gui, Add, Checkbox, xs+10 ys+20 vAllignment1 section gCreate_Msgbox_Command, Right-justified
Gui, Add, Checkbox, xs+100 ys+0 vAllignment2 gCreate_Msgbox_Command, Right-to-left
Gui, Add, Groupbox, x430 y270 h45 w90 section, Timeout
Gui, Add, Edit, xs+10 ys+17 w70 vTimeout gCreate_Msgbox_Command
Gui, Add, UpDown, Range-1-2147483, -1
Gui, Add, Button, x530 y280 h30 w90 vTest gTest, &Test
Gui, Add, Button, x430 y320 h30 w90 Default gCopy_to_Clipboard, &Clipboard
Gui, Add, Button, x530 y320 h30 w90 gReset, &Reset
Gui, Add, Groupbox, x10 y350 w610 h75 section, Result
Gui, Add, Edit, xs+10 ys+20 w590 r3 vMsgbox_Command,
Gui, Show, , Create MessageBox
GoSub, Reset ;Initalize GUI from Ini
return
Select_NoIcon:
GuiControl, , Icon1, 1
GoSub, Create_Msgbox_Command
return
Select_ErrorIcon:
GuiControl, , Icon2, 1
GoSub, Create_Msgbox_Command
return
Select_Question:
GuiControl, , Icon3, 1
GoSub, Create_Msgbox_Command
return
Select_Exclamation:
GuiControl, , Icon4, 1
GoSub, Create_Msgbox_Command
return
Select_Info:
GuiControl, , Icon5, 1
GoSub, Create_Msgbox_Command
return
Create_Msgbox_Command:
Gui, Submit, NoHide
;Get types of used buttons
Loop, 7
{
if Button_Selection%A_Index% = 1
{
ButtonSelection := A_Index -1
if Button_Selection_Help = 1
ButtonSelection += 16384
break
}
}
;Get used Icon
Loop, 5
{
if Icon%A_Index% = 1
{
if A_Index = 1
Icon = 0
else if A_Index = 2
Icon = 16
else if A_Index = 3
Icon = 32
else if A_Index = 4
Icon = 48
else if A_Index = 5
Icon = 64
break
}
}
;Get Modality-State
Loop, 5
{
if Modality%A_Index% = 1
{
if A_Index = 1
Modality = 0
else if A_Index = 2
Modality = 8192
else if A_Index = 3
Modality = 4096
else if A_Index = 4
Modality = 262144
else if A_Index = 5
Modality = 131072
break
}
}
;Get Default-Button
Loop, 3
{
if Default%A_Index% = 1
{
if A_Index = 1
Default = 0
else if A_Index = 2
Default = 256
else if A_Index = 3
Default = 512
break
}
}
;Check Allignment
Allignment = 0
if Allignment1 = 1
Allignment += 524288
if Allignment2 = 1
Allignment += 1048576
Msgbox_Number := ButtonSelection + Icon + Modality + Default + Allignment ;Generate type of messagebox
Escape_Characters(Title)
Escape_Characters(Text)
;Timeout "-1" = no timeout
if Timeout = -1
Timeout =
else
{
StringReplace, Timeout, Timeout, `,, . ;Allows "," as decimal-point
Timeout = , %Timeout%
}
;Create command and set it to Edit-Control
Msgbox_Command = msgbox, %Msgbox_Number%, %Title%, %Text%%Timeout%
GuiControl, , Msgbox_Command, %Msgbox_Command%
return
;Creates a Temp-File to show actual configuration
Test:
GoSub, Create_Msgbox_Command
GuiControl, Disable, Test
FileAppend, %Msgbox_Command%, MsgboxTemp.ahk
RunWait, MsgboxTemp.ahk
FileDelete, MsgboxTemp.ahk
GuiControl, Enable, Test
return
;Escapes Characters like ","
Escape_Characters(byref Var)
{
StringReplace, Var, Var, `n, ``n, All ;Translate line breaks in entered text
StringReplace, Var, Var, `,, ```,, All ;Escapes ","
StringReplace, Var, Var, `;, ```;, All ;Escapes ";"
}
Copy_to_Clipboard:
Clipboard = %Msgbox_Command%
IniRead, Reset_after_Clipboard, %A_ScriptDir%\Msgbox.ini, Clipboard, Reset after Clipboard, 0
if Reset_after_Clipboard = 1
GoSub, Reset
return
GuiClose:
ExitApp
Open:
Gui, Show
return
Reset:
IfExist %A_ScriptDir%\Msgbox.ini
{
IniRead, Title, %A_ScriptDir%\Msgbox.ini, Reset, Title, plk
if Title = plk
Title =
IniRead, Text, %A_ScriptDir%\Msgbox.ini, Reset, Text, plk
if Text = plk
Text =
IniRead, Modality, %A_ScriptDir%\Msgbox.ini, Reset, Modality, 1
IniRead, Icon, %A_ScriptDir%\Msgbox.ini, Reset, Icon, 1
IniRead, Button_Selection, %A_ScriptDir%\Msgbox.ini, Reset, Button, 1
IniRead, Button_Selection_Help, %A_ScriptDir%\Msgbox.ini, Reset, Help Button, 0
IniRead, Default, %A_ScriptDir%\Msgbox.ini, Reset, Default Button, 1
IniRead, Timeout, %A_ScriptDir%\Msgbox.ini, Reset, Timeout, -1
IniRead, Allignment1, %A_ScriptDir%\Msgbox.ini, Reset, Allignment_Right, 0
IniRead, Allignment2, %A_ScriptDir%\Msgbox.ini, Reset, Allignment_RtL, 0
}
else
{
Title =
Text =
Modality = 1
Icon = 1
Button_Selection = 1
Button_Selection_Help = 0
Default = 1
Timeout = -1
Allignment1 = 0
Allignment2 = 0
}
GuiControl, , Title, %Title%
GuiControl, , Text, %Text%
GuiControl, , Modality%Modality%, 1
GuiControl, , Icon%Icon%, 1
GuiControl, , Button_Selection%Button_Selection%, 1
GuiControl, , Button_Selection_Help, %Button_Selection_Help%
GuiControl, , Default%Default%, 1
GuiControl, , Timeout, %Timeout%
GuiControl, , Allignment1, %Allignment1%
GuiControl, , Allignment2, %Allignment2%
return
GuiSize:
if A_EventInfo = 1
Gui, Show, Hide
return
If something is added afterwards I'll choose the most rated GUI. You can also do suggestions (I'm not the design-boy

).
My favourite is Nr. 2.
Another question:
Does anyone use the changeable default-settings (via ini)?
Thalon