Fabian
Members-
Posts
14 -
Joined
-
Last visited
About Fabian
- Birthday 02/02/1995
Profile Information
-
Location
Germany
Fabian's Achievements
Seeker (1/7)
0
Reputation
-
Why does this script always returns "0" as translated text and why doesn't work the "_IEFormElementOptionselect" function? Can anybody help, plz? #include <GUIConstants.au3> #include <File.au3> #include <IE.au3> #include <String.au3> ;#NoTrayIcon Global $cQuote = '"' If NOT _IsOnline() Then MsgBox(16, "Error", "You must have an internet connection.") Exit EndIf $oIE = _IECreate ("http://www.google.com/language_tools?hl=en") $oTranslateForm = _IEFormGetObjByName ($oIE, "text_form") $oSourceEdit = _IEFormElementGetObjByName ($oTranslateForm, "source") $oLangCombo = _IEFormElementGetObjByName ($oTranslateForm, "langpair") $oForm1 = GUICreate("Translator", 396, 292, 193, 115) ;GUISetIcon(@ScriptDir & "\icon.ico") $oLabel1 = GUICtrlCreateLabel("Translate a text", 8, 16, 128, 27) GUICtrlSetFont(-1, 13, 400, 0, "Trebuchet MS") $oEdit1 = GUICtrlCreateEdit("", 8, 48, 377, 177, BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN)) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $oCombo1 = GUICtrlCreateCombo("", 8, 232, 297, 200) GUICtrlSetData(-1, "Arabic to English|Chinese to English|French to English|German to English|Greek to English|Italian to English|Japanese to English|Korean to English|Portoguese to English|Russian to English|Spanish to English|English to Arabic|English to Chinese|English to French|English to German|English to Greek|English to Italian|English to Japanese |English to Korean|English to Portoguese|English to Russian|English to Spanish") GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $oButton1 = GUICtrlCreateButton("Translate", 312, 232, 75, 23, 0) $oLabel2 = GUICtrlCreateLabel("Google Language Tools", 267, 272, 118, 17, $SS_RIGHT) GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif") GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetCursor($oLabel2, 0) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $oButton1 $sTextToTranslate = GUICtrlRead($oEdit1) $sLang = GUICtrlRead($oCombo1) _IEFormElementSetValue ($oSourceEdit, $sTextToTranslate) _IEFormElementOptionselect ($oLangCombo, $sLang, 1, "byText") _IEFormSubmit ($oTranslateForm) $oSource = _IEDocReadHTML($oIE) $sTranslatedText = _StringBetween($oSource, "<div id=result_box dir=" & $cQuote & "ltr" & $cQuote & ">", "</div>") GUICtrlSetData($oEdit1, $sTranslatedText) Case $oLabel2 ShellExecute("http://www.google.com/language_tools?hl=en") EndSwitch WEnd Func _IsOnline() Return Ceiling(Ping("www.google.com", 250) / 250) EndFunc
-
_WinAPI_RedrawWindow only redraws the client area, not the menus and the border and if I define an update rect it does nothing. Can anybody help?
-
I want to use an app (eg. notepad) in my form (as child). If I use _WinAPI_SetParent and I start the app it looks like this: If I type something it looks like this: And if I move the windowa a bit and type again a bit it looks like this: What can I do that it looks like the third pic from the beginning? Here's my code: $Form1 = GUICreate("Form1", 1000, 650, 0, 0) GUISetState(@SW_SHOW) Run("notepad.exe") WinWait("[CLASS:Notepad]") $Notepad = WinGetHandle("[CLASS:Notepad]") _WinAPI_SetParent($Notepad, $Form1)
-
We in Germany (nearly) always use my version, maybe in other countrys you use your version...
-
I've made a Binary Clock too. Screen: At the top are the hours and at the bottom the mins. So it's 9:07. Source + images - BinaryClock.zip Exe includes images - clock.exe
-
ok, i'll try Here is the new version: ;---------------------------------- ;-------QuickTime Functions-------- ;---------------------------------- #cs _qtcreate($show, $left, $top, $width = 100, $height = 100) $show: 1 = creates the control 2 = doesn't create the control Return: The object for the control #ce Func _qtcreate($show, $left, $top, $width = 100, $height = 100) $oQT = ObjCreate("QTOControl.QTControl") If $oQT = 0 Then Return 0 If $show = 1 Then GUICtrlCreateObj($oQT, $left, $top, $width, $height) EndIf Return $oQT EndFunc #cs _qtloadmedia( $object, $URL, $autostart = 1 ) $object: Object returned from the _qtcreate() $URL: Path or URL of the media $autostart: 1 = yes 0 = no Return: None #ce Func _qtloadmedia( $object, $URL, $autostart = 1 ) $object.URL = $URL _qtautostart($object, $autostart) EndFunc #cs _qtautostart($object, $autostart) $object: Object returned from the _qtcreate() $param: 0 = disable autoplay 1 = enable autoplay Return: The object for the control #ce Func _qtautostart($object, $autostart) If $autostart = 0 Then $object.Autoplay = False ElseIf $autostart = 1 Then $object.Autoplay = True EndIf EndFunc #cs _qtgetv($object) $object: Object returned from the _qtcreate() Return: version of quicktime #ce Func _qtgetv($object) $Version = $object.QuickTimeVersion() Return $Version EndFunc ;---------------------------------- ;------Adobe Flash Functions------- ;---------------------------------- #cs _flashcreate($show, $left, $top, $width = 100, $height = 100) $show: 1 = creates the control 2 = doesn't create the control Return: The object for the control #ce Func _flashcreate($show, $left, $top, $width = 100, $height = 100) If FileFindFirstFile(@SystemDir & "\Macromed\Flash\flash*.ocx") = -1 Then $Value = MsgBox(20, "Error", "It seems that you don't have Flash Player installed. Please download" & @CRLF & "it from www.adobe.com. Do you want to go there now?") If $Value = 6 Then ShellExecute("www.adobe.com") EndIf Exit EndIf $oFlash = ObjCreate("ShockwaveFlash.ShockwaveFlash") If $oFlash = 0 Then Return 0 If $show = 1 Then GUICtrlCreateObj($oFlash, $left, $top, $width, $height) EndIf Return $oFlash EndFunc #cs _flashloadmedia($object, $URL) $object: Object returned from the _flashcreate() $URL: Path or URL of the media Return: None #ce Func _flashloadmedia($object, $URL) $object.LoadMovie(0, $URL) EndFunc #cs _flashsetvalue($object, $setting) $object: Object returned from the _flashcreate() $setting: "play" "stop" Return: None #ce Func _flashvalue($object, $setting) Select Case $setting = "play" $object.play() Case $setting = "stop" $object.stop() EndSelect EndFunc ;---------------------------------- ;--Windows Media Player Functions-- ;---------------------------------- #cs _wmpcreate($show, $left, $top, $width = 100, $height = 100) $show: 1 = shows controls 2 = hides controls Return: The object for the control #ce Func _wmpcreate($show, $left, $top, $width = 100, $height = 100) $oWMP = ObjCreate("WMPlayer.OCX") If $oWMP = 0 Then Return 0 $oWMP.settings.autoStart = "False" If $show = 1 Then GUICtrlCreateObj($oWMP, $left, $top, $width, $height) EndIf Return $oWMP EndFunc #cs _wmploadmedia( $object, $URL, $autostart = 1 ) $object: Object returned from the _wmpcreate() $URL: Path or URL of the media $autostart: 1 = yes 0 = no Return: None #ce Func _wmploadmedia( $object, $URL, $autostart = 1 ) $object.URL = $URL While Not $object.controls.isAvailable("play") Sleep(1) WEnd If $autostart = 1 Then $object.controls.play() EndFunc #cs _wmpsetvalue( $object, $setting, $para=1 ) $object: Object returned from the _wmpcreate() $setting: "play" "stop" "pause" "invisible" (Hides all) "control" (Shows controls) "nocontrol" (Hides controls) "fullscreen" "step" (frames to step before freezing) "fastforward" "fastreverse" "volume" (0 To 100) "rate" (-10 To 10) "playcount" Return: None #ce Func _wmpvalue( $object, $setting, $para=1 ) Select Case $setting = "play" If $object.controls.isAvailable("play") Then $object.controls.play() Case $setting = "stop" If $object.controls.isAvailable("stop") Then $object.controls.stop() Case $setting = "pause" If $object.controls.isAvailable("pause") Then $object.controls.pause() Case $setting = "invisible" $object.uiMode = "invisible" Case $setting = "controls" $object.uiMode = "mini" Case $setting = "nocontrols" $object.uiMode = "none" Case $setting = "fullscreen" $object.fullscreen = "true" Case $setting = "step" If $object.controls.isAvailable("step") Then $object.controls.step($para) Case $setting = "fastForward" If $object.controls.isAvailable("fastForward") Then $object.controls.fastForward() Case $setting = "fastReverse" If $object.controls.isAvailable("fastReverse") Then $object.controls.fastReverse() Case $setting = "volume" $object.settings.volume = $para Case $setting = "rate" $object.settings.rate = $para Case $setting = "playcount" $object.settings.playCount = $para Case $setting = "setposition" $object.controls.currentPosition = $para Case $setting = "getposition" Return $object.controls.currentPosition Case $setting = "getpositionstring";Returns HH:MM:SS Return $object.controls.currentPositionString Case $setting = "getduration" Return $object.currentMedia.duration EndSelect EndFunc
-
I'am working on a udf collection for embeding media in an autoitscript. Currently Quicktime, WMP and Flash are supported. If you have any idea for new functions, post them. Thanks to CyberZeroCool for his great Windows Media Player Embed UDF's. -Added Check if Flash is installed Example & Download: Here UDF's: ;---------------------------------- ;-------QuickTime Functions-------- ;---------------------------------- #cs _qtcreate($show, $left, $top, $width = 100, $height = 100) $show: 1 = creates the control 2 = doesn't create the control Return: The object for the control #ce Func _qtcreate($show, $left, $top, $width = 100, $height = 100) $oQT = ObjCreate("QTOControl.QTControl") If $oQT = 0 Then Return 0 If $show = 1 Then GUICtrlCreateObj($oQT, $left, $top, $width, $height) EndIf Return $oQT EndFunc #cs _qtloadmedia( $object, $URL, $autostart = 1 ) $object: Object returned from the _qtcreate() $URL: Path or URL of the media $autostart: 1 = yes 0 = no Return: None #ce Func _qtloadmedia( $object, $URL, $autostart = 1 ) $object.URL = $URL _qtautostart($object, $autostart) EndFunc #cs _qtautostart($object, $autostart) $object: Object returned from the _qtcreate() $param: 0 = disable autoplay 1 = enable autoplay Return: The object for the control #ce Func _qtautostart($object, $autostart) If $autostart = 0 Then $object.Autoplay = False ElseIf $autostart = 1 Then $object.Autoplay = True EndIf EndFunc #cs _qtgetv($object) $object: Object returned from the _qtcreate() Return: version of quicktime #ce Func _qtgetv($object) $Version = $object.QuickTimeVersion() Return $Version EndFunc ;---------------------------------- ;------Adobe Flash Functions------- ;---------------------------------- #cs _flashcreate($show, $left, $top, $width = 100, $height = 100) $show: 1 = creates the control 2 = doesn't create the control Return: The object for the control #ce Func _flashcreate($show, $left, $top, $width = 100, $height = 100) If FileFindFirstFile(@SystemDir & "\Macromed\Flash\flash*.ocx") = -1 Then $Value = MsgBox(20, "Error", "It seems that you don't have Flash Player installed. Please download" & @CRLF & "it from www.adobe.com. Do you want to go there now?") If $Value = 6 Then ShellExecute("www.adobe.com") EndIf Exit EndIf $oFlash = ObjCreate("ShockwaveFlash.ShockwaveFlash") If $oFlash = 0 Then Return 0 If $show = 1 Then GUICtrlCreateObj($oFlash, $left, $top, $width, $height) EndIf Return $oFlash EndFunc #cs _flashloadmedia($object, $URL) $object: Object returned from the _flashcreate() $URL: Path or URL of the media Return: None #ce Func _flashloadmedia($object, $URL) $object.LoadMovie(0, $URL) EndFunc #cs _flashsetvalue($object, $setting) $object: Object returned from the _flashcreate() $setting: "play" "stop" Return: None #ce Func _flashvalue($object, $setting) Select Case $setting = "play" $object.play() Case $setting = "stop" $object.stop() EndSelect EndFunc ;---------------------------------- ;--Windows Media Player Functions-- ;---------------------------------- #cs _wmpcreate($show, $left, $top, $width = 100, $height = 100) $show: 1 = shows controls 2 = hides controls Return: The object for the control #ce Func _wmpcreate($show, $left, $top, $width = 100, $height = 100) $oWMP = ObjCreate("WMPlayer.OCX") If $oWMP = 0 Then Return 0 $oWMP.settings.autoStart = "False" If $show = 1 Then GUICtrlCreateObj($oWMP, $left, $top, $width, $height) EndIf Return $oWMP EndFunc #cs _wmploadmedia( $object, $URL, $autostart = 1 ) $object: Object returned from the _wmpcreate() $URL: Path or URL of the media $autostart: 1 = yes 0 = no Return: None #ce Func _wmploadmedia( $object, $URL, $autostart = 1 ) $object.URL = $URL While Not $object.controls.isAvailable("play") Sleep(1) WEnd If $autostart = 1 Then $object.controls.play() EndFunc #cs _wmpsetvalue( $object, $setting, $para=1 ) $object: Object returned from the _wmpcreate() $setting: "play" "stop" "pause" "invisible" (Hides all) "control" (Shows controls) "nocontrol" (Hides controls) "fullscreen" "step" (frames to step before freezing) "fastforward" "fastreverse" "volume" (0 To 100) "rate" (-10 To 10) "playcount" Return: None #ce Func _wmpvalue( $object, $setting, $para=1 ) Select Case $setting = "play" If $object.controls.isAvailable("play") Then $object.controls.play() Case $setting = "stop" If $object.controls.isAvailable("stop") Then $object.controls.stop() Case $setting = "pause" If $object.controls.isAvailable("pause") Then $object.controls.pause() Case $setting = "invisible" $object.uiMode = "invisible" Case $setting = "controls" $object.uiMode = "mini" Case $setting = "nocontrols" $object.uiMode = "none" Case $setting = "fullscreen" $object.fullscreen = "true" Case $setting = "step" If $object.controls.isAvailable("step") Then $object.controls.step($para) Case $setting = "fastForward" If $object.controls.isAvailable("fastForward") Then $object.controls.fastForward() Case $setting = "fastReverse" If $object.controls.isAvailable("fastReverse") Then $object.controls.fastReverse() Case $setting = "volume" $object.settings.volume = $para Case $setting = "rate" $object.settings.rate = $para Case $setting = "playcount" $object.settings.playCount = $para Case $setting = "setposition" $object.controls.currentPosition = $para Case $setting = "getposition" Return $object.controls.currentPosition Case $setting = "getpositionstring";Returns HH:MM:SS Return $object.controls.currentPositionString Case $setting = "getduration" Return $object.currentMedia.duration EndSelect EndFunc
-
I've edited a bit, take a look: #cs ---------------------------------------------------------------------------- AutoIt Version: 3.2.2.0 Author: Multi outcome GUI --- with password protection --- Warning: Don't edit more than i said(unless it will make it better) It MAY stop working.... TODO: 1) Add input box to store info... 2) Add Save button to save input info to INI file 3) Add INI file... 4) And much more Please help me make this better!!! #ce ---------------------------------------------------------------------------- #include <GUIConstants.au3> #include <array.au3> #include <String.au3> ;edit these $hint = "Password hint here" Dim $Password[3] = ["yea", "yea1", "yea2"] Dim $Name[3] = ["Ashley", "Joshua", "Fabian"] ;Edit these -end #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Password Dialog", 251, 93, 310, 249) GUISetIcon("D:08.ico") $MaskEdit1 = GUICtrlCreateInput("", 8, 32, 233, 21, BitOR($ES_PASSWORD, $ES_AUTOHSCROLL, $WS_BORDER, $WS_CLIPSIBLINGS), BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE)) GUICtrlSetTip(-1, $hint) $Button1 = GUICtrlCreateButton("&OK", 86, 64, 75, 25, 0) $Button2 = GUICtrlCreateButton("&Cancel", 167, 64, 75, 25, 0) $Label1 = GUICtrlCreateLabel("Enter password to use file", 8, 12, 125, 17) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 ConsoleWrite(_ArraySearch($Password, GUICtrlRead($MaskEdit1)) & @CRLF) If _ArraySearch($Password, GUICtrlRead($MaskEdit1)) = -1 Then MsgBox(1024, "Not acepted", "The password enter is not acepted") Exit EndIf For $i = 0 To UBound($Password) - 1 If GUICtrlRead($MaskEdit1) == $Password[$i] Then MsgBox(1024, "Acepted", "The password enter is acepted") GUIDelete() Call("_User" & $i) EndIf Next Case $Button2 Exit EndSwitch WEnd Func _User0() MsgBox(1024, "Hello", "Welcome " & $Name[0] & "! :)") ;edit this (the first GUI) #Region ### START Koda GUI section ### Form= $Form1 = GUICreate($Name[0] & "'s Text", 634, 448, 194, 116) $Edit1 = GUICtrlCreateEdit("", 16, 16, 601, 393) GUICtrlSetData(-1, "Enter here your Text...") $MenuItem1 = GUICtrlCreateMenu("File") $MenuItem2 = GUICtrlCreateMenuItem("Save", $MenuItem1) $MenuItem3 = GUICtrlCreateMenuItem("Load", $MenuItem1) $MenuItem4 = GUICtrlCreateMenuItem("", $MenuItem1) $MenuItem5 = GUICtrlCreateMenuItem("Exit", $MenuItem1) $MenuItem6 = GUICtrlCreateMenu("Info...") $MenuItem7 = GUICtrlCreateMenuItem("User Info", $MenuItem6) $MenuItem8 = GUICtrlCreateMenuItem("App Info", $MenuItem6) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### ;edit this (the first GUI)- end While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $MenuItem2 $Text = GUICtrlRead($Edit1) $Text = _StringEncrypt(1, $Text, $Password[0]) FileDelete($Name[0] & ".txt") FileWrite($Name[0] & ".txt", $Text) MsgBox(64, "Information", "Finished saving") Case $MenuItem3 If FileExists($Name[0] & ".txt") Then $MsgBox = MsgBox(68, "Information", "If you load the text, you will lost your text that's currently in the textbox. Are you sure you want to load?") If $MsgBox = 6 Then $Text = FileRead($Name[0] & ".txt") $Text = _StringEncrypt(0, $Text, $Password[0]) GUICtrlSetData($Edit1, $Text) EndIf Else MsgBox("64", "Information", "Nothing to load, save at fierst!;)") EndIf Case $MenuItem5 Exit Case $MenuItem7 MsgBox("64", "Information", "Logged in as: " & $Name[0] & " | Password: " & $Password[0]) Case $MenuItem8 MsgBox("64", "Information", "Original by 'ashley', edited by 'GtaSpider' and 'Fabian'") EndSwitch WEnd EndFunc ;==>_User0 Func _User1() MsgBox(1024, "Hello", "Welcome " & $Name[1]& "! :)") ;Second Gui here #Region ### START Koda GUI section ### Form= $Form1 = GUICreate($Name[1] & "'s Text", 634, 448, 194, 116) $Edit1 = GUICtrlCreateEdit("", 16, 16, 601, 393) GUICtrlSetData(-1, "Enter here your Text...") $MenuItem1 = GUICtrlCreateMenu("File") $MenuItem2 = GUICtrlCreateMenuItem("Save", $MenuItem1) $MenuItem3 = GUICtrlCreateMenuItem("Load", $MenuItem1) $MenuItem4 = GUICtrlCreateMenuItem("", $MenuItem1) $MenuItem5 = GUICtrlCreateMenuItem("Exit", $MenuItem1) $MenuItem6 = GUICtrlCreateMenu("Info...") $MenuItem7 = GUICtrlCreateMenuItem("User Info", $MenuItem6) $MenuItem8 = GUICtrlCreateMenuItem("App Info", $MenuItem6) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### ;edit this (the Second GUI)- end While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $MenuItem2 $Text = GUICtrlRead($Edit1) $Text = _StringEncrypt(1, $Text, $Password[1]) FileDelete($Name[1] & ".txt") FileWrite($Name[1] & ".txt", $Text) MsgBox(64, "Information", "Finished saving") Case $MenuItem3 If FileExists($Name[1] & ".txt") Then $MsgBox = MsgBox(68, "Information", "If you load the text, you will lost your text that's currently in the textbox. Are you sure you want to load?") If $MsgBox = 6 Then $Text = FileRead($Name[1] & ".txt") $Text = _StringEncrypt(0, $Text, $Password[1]) GUICtrlSetData($Edit1, $Text) EndIf Else MsgBox("64", "Information", "Nothing to load, save at fierst!;)") EndIf Case $MenuItem5 Exit Case $MenuItem7 MsgBox("64", "Information", "Logged in as: " & $Name[1] & " | Password: " & $Password[1]) Case $MenuItem8 MsgBox("64", "Information", "Original by 'ashley', edited by 'GtaSpider' and 'Fabian'") EndSwitch WEnd EndFunc ;==>_User1 Func _User2() MsgBox(1024, "Hello", "Welcome " & $Name[2] & "! :)") ;Second Gui here #Region ### START Koda GUI section ### Form= $Form1 = GUICreate($Name[2] & "'s Text", 634, 448, 194, 116) $Edit1 = GUICtrlCreateEdit("", 16, 16, 601, 393) GUICtrlSetData(-1, "Enter here your Text...") $MenuItem1 = GUICtrlCreateMenu("File") $MenuItem2 = GUICtrlCreateMenuItem("Save", $MenuItem1) $MenuItem3 = GUICtrlCreateMenuItem("Load", $MenuItem1) $MenuItem4 = GUICtrlCreateMenuItem("", $MenuItem1) $MenuItem5 = GUICtrlCreateMenuItem("Exit", $MenuItem1) $MenuItem6 = GUICtrlCreateMenu("Info...") $MenuItem7 = GUICtrlCreateMenuItem("User Info", $MenuItem6) $MenuItem8 = GUICtrlCreateMenuItem("App Info", $MenuItem6) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### ;edit this (the Third GUI)- end While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $MenuItem2 $Text = GUICtrlRead($Edit1) $Text = _StringEncrypt(1, $Text, $Password[2]) FileDelete($Name[2] & ".txt") FileWrite($Name[2] & ".txt", $Text) MsgBox(64, "Information", "Finished saving") Case $MenuItem3 If FileExists($Name[2] & ".txt") Then $MsgBox = MsgBox(68, "Information", "If you load the text, you will lost your text that's currently in the textbox. Are you sure you want to load?") If $MsgBox = 6 Then $Text = FileRead($Name[2] & ".txt") $Text = _StringEncrypt(0, $Text, $Password[2]) GUICtrlSetData($Edit1, $Text) EndIf Else MsgBox("64", "Information", "Nothing to load, save at fierst!;)") EndIf Case $MenuItem5 Exit Case $MenuItem7 MsgBox("64", "Information", "Logged in as: " & $Name[2] & " | Password: " & $Password[2]) Case $MenuItem8 MsgBox("64", "Information", "Original by 'ashley', edited by 'GtaSpider' and 'Fabian'") EndSwitch WEnd EndFunc ;==>_User2 -it can save the entered text -encrypt it with the user's pass -and load it
-
Er... it does not work with the newet au3 version 3.2.6.0