Kann man die Beschreibung der Buttons änder? Z.B. aus „Ja“ „Aber Ja“ machen?
MsgBox - Beschreibung der Buttons
-
- [ gelöst ]
-
emeuv -
24. September 2011 um 12:43 -
Geschlossen -
Erledigt
-
-
Ich würde einfach ne keine GUI erstellen, wo du dann ja eigene Buttons erstellen kannst. Villeicht gibt es aber auch eine UDF, die das ermöglicht.
mfg
Hauke -
Juhuu, kann endlich Mal was sinvolles beitragen, statt nur mit Fragen zu nerven

In einem im Koda-Form-Designer erstellten GUI kannste super die Buttons (Bezeichnung) unter "Caption" anpassen..
Spoiler anzeigen
[Blockierte Grafik: http://mm-edv.eu/AutoIT/koda.jpg]
Kannst auch erst `nen "Ja"-Button basteln und später im Skript anpassen:
Spoiler anzeigen
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 625, 443, 193, 125)
$Button1 = GUICtrlCreateButton("Drück mich endlich, damit`s endlich losgeht :D", 24, 16, 553, 41, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
WEndLG Mike
#EDIT Hauke war schneller

#EDIT2 Grad "_GUICtrlButton_Create" Inner Hilfe gefunden, evtl hilfts ja auch weiter

-
Mit Forensuche in 5 Sekunden gefunden:
[autoit]Func _MsgBoxIndividual($flag, $title, $text, $btn_text1 = "&OK", $btn_text2 = "&Nein", $btn_text3 = "&Vielleicht", $TimeOut = 0)
[/autoit]
Local $str = "Local $x = Opt('WinWaitDelay',50)+WinWait('" & $title & "','')+" & _
"ControlSetText('" & $title & "','" & $text & "','Button1','" & $btn_text1 & "')+" & _
"ControlSetText('" & $title & "','" & $text & "','Button2','" & $btn_text2 & "')+" & _
"ControlSetText('" & $title & "','" & $text & "','Button3','" & $btn_text3 & "')"
Run('"' & @AutoItExe & '" /AutoIt3ExecuteLine "' & $str & '"')
Sleep(100)
Return MsgBox($flag, $title, $text, $TimeOut)
EndFunc ;==>_MsgBoxIndividual
_MsgBoxIndividual(34, "Frage", "Gehst du heute mit mir aus?", "&Bin dabei", "&Mag nicht")
Bedank dich bei funkey bzw. AutoBert -
Da kommt "Abbrechen", "Wiederholen", "Ignorieren"

-
Danke für Eure Vorschläge, dann ergibt sich die Anschlussfrage, wie kann ich eine eigene GUI in MSAccess einbinden?
-
Klappt es, wenn du das Sleep(100) weglässt?
Bzw. so:Spoiler anzeigen
[autoit]
[/autoit]
Func _MsgBoxIndividual($flag, $title, $text, $btn_text1 = "&OK", $btn_text2 = "&Nein", $btn_text3 = "&Vielleicht", $TimeOut = 0)
Local $str = "Local $x = Opt('WinWaitDelay',80)+WinWait('" & $title & "','')+" & _
"ControlSetText('" & $title & "','" & $text & "','Button1','" & $btn_text1 & "')+" & _
"ControlSetText('" & $title & "','" & $text & "','Button2','" & $btn_text2 & "')+" & _
"ControlSetText('" & $title & "','" & $text & "','Button3','" & $btn_text3 & "')"
Run('"' & @AutoItExe & '" /AutoIt3ExecuteLine "' & $str & '"')
Sleep(100)
Return MsgBox($flag, $title, $text, $TimeOut)
EndFunc ;==>_MsgBoxIndividual
_MsgBoxIndividual(34, "Frage", "Gehst du heute mit mir aus?", "&Bin dabei", "&Mag nicht") -
Klappt es, wenn du das Sleep(100) weglässt?
Jupp
emeuv: Geh mir weg mit Access

Kannst in Access selbst GUI`s basteln...
Da halt ich mich raus
-
Mit Forensuche in 5 Sekunden gefunden:
richtig wenn man weis dass man nach " ControlSetText" suchen muss
Aber Danke.
-
Die Methode mittels CBTHook ist die beste! Die andere Variante funktioniert leider nicht immer.
Hier ein Beispiel aus meiner FunSkin-UDF:
Spoiler anzeigen
[autoit]#include <WinAPI.au3>
[/autoit] [autoit][/autoit] [autoit]Local $hProcMsgBox = DllCallbackRegister("CbtHookProcMsgBox", "int", "int;int;int")
[/autoit] [autoit][/autoit] [autoit]
Local $TIDMsgBox = _WinAPI_GetCurrentThreadId()
Local $hHookMsgBox = _WinAPI_SetWindowsHookEx($WH_CBT, DllCallbackGetPtr($hProcMsgBox), 0, $TIDMsgBox)Local $iRet = MsgBox(34, "Select example", "Please select the skin you want to try")
[/autoit] [autoit][/autoit] [autoit]_WinAPI_UnhookWindowsHookEx($hHookMsgBox)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
DllCallbackFree($hProcMsgBox)#region Just for fun!!
[/autoit] [autoit][/autoit] [autoit]
;##########################################################
Func CbtHookProcMsgBox($nCode, $wParam, $lParam)
Local $RET = 0, $hBitmap = 0, $xWnd = 0
If $nCode < 0 Then
$RET = _WinAPI_CallNextHookEx($hHookMsgBox, $nCode, $wParam, $lParam)
Return $RET
EndIf
Switch $nCode
Case 5 ;5=HCBT_ACTIVATE
_WinAPI_SetDlgItemText($wParam, 3, "1")
_WinAPI_SetDlgItemText($wParam, 4, "2")
_WinAPI_SetDlgItemText($wParam, 5, "3")
EndSwitch
Return
EndFunc ;==>CbtHookProcMsgBoxFunc _WinAPI_SetDlgItemText($hDlg, $nIDDlgItem, $lpString)
[/autoit] [autoit][/autoit] [autoit]
Local $aRet = DllCall('user32.dll', "int", "SetDlgItemText", _
"hwnd", $hDlg, _
"int", $nIDDlgItem, _
"str", $lpString)
Return $aRet[0]
EndFunc ;==>_WinAPI_SetDlgItemText;##########################################################
[/autoit]
#endregion Just for fun!! -
Danke, das mit "DllCall" ist die Lösung die auch in MSAccess geht.