Jump to content

Recommended Posts

Posted (edited)

Sorry, I forgot to keep a look out on this thread. Here is the full source:

Some code is wrong, like $Exit.

$GUI = GUICreate("AutoIt Script Editor by Justin Reno", 283, 265)
$Edit = GUICtrlCreateEdit("", 0, 0, 281, 217)
$Input = GUICtrlCreateInput("", 0, 224, 281, 21)
$FileMenu = GUICtrlCreateMenu("File")
$Open = GUICtrlCreateMenuItem("Open", $FileMenu)
GUICtrlCreateMenuItem("", $FileMenu)
$Save = GUICtrlCreateMenuItem("Save", $FileMenu)
GUICtrlCreateMenuItem("", $FileMenu)
$Exit = GUICtrlCreateMenuItem("Exit", $FileMenu)
$ScriptMenu = GUICtrlCreateMenu("Script")
$Run = GUICtrlCreateMenuItem("Run", $ScriptMenu)
$Compile = GUICtrlCreateMenuItem("Compile", $ScriptMenu)
$AboutMenu = GUICtrlCreateMenu("About")
$About = GUICtrlCreateMenuItem("About", $AboutMenu)
GUICtrlCreateMenuItem("", $AboutMenu)
$HelpFile = GUICtrlCreateMenuItem("AutoIt Help File", $AboutMenu)
GUISetState(@SW_SHOW)

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case -3, $Exit
            Exit
        Case $Open
            GUICtrlSetData($Edit, FileRead(FileOpenDialog("AutoIt Script Editor - Open Script", @ScriptDir, "AutoIt Scripts(*.au3)")))
        Case $Save
            FileWrite(FileSaveDialog("AutoIt Script Editor - Save Script", @ScriptDir, "AutoIt Scripts(*.au3)"), GUICtrlRead($Edit))
        Case $Exit
            If GUICtrlRead($Edit) <> "" Then $AskToSaveMsg = MsgBox(68, "AutoIt Script Editor - Save Unsaved File", "Do you want to save this script?")
            If $Msg = 6 Then FileWrite(FileSaveDialog("AutoIt Script Editor - Save Script", @ScriptDir, "AutoIt Scripts(*.au3)"), GUICtrlRead($Edit))
        Case $Run
            FileWrite(@TempDir&"\Script.au3", GUICtrlRead($Edit))
            RunWait(@AutoItExe & " " & @TempDir&"\Script.au3")
            FileDelete(@TempDir&"\Script.au3")
        Case $Compile
            $Return = Aut2ExeThisFile('MsgBox(0, "Test","It Worked!")')
            If Not @error Then
                MsgBox(0, "Success", $return)
            Else
            If @error = 1 Then
                MsgBox(0, "Error", "The Cancel button was pushed.")
            ElseIf @error = 2 Then
                MsgBox(0, "Error", "The Timeout time was reached.")
            ElseIf @error = 3 Then
                MsgBox(0, "Error", "The InputBox failed to open. This is usually caused by bad arguments.")
            ElseIf @error = 4 Then
                MsgBox(0, "Error", "User canceled or closed Folder Selection window.")
            EndIf
            EndIf
            #cs
            FileWrite(@TempDir&"\Script.au3", GUICtrlRead($Edit))
            $IconPath = FileOpenDialog("AutoIt Script Editor - Compile Icon", @ScriptDir, "Icons(*.ico)")
            FileCopy($IconPath, @ScriptDir&"\Icon.ico")
            $Icon = "Icon.ico"
            MsgBox(0, "test", @ProgramFilesDir&"\AutoIt3\Aut2Exe\Aut2exe.exe /In "&@TempDir&"\Script.au3 /Out "&FileSaveDialog("AutoIt Script Editor - Compile Save Location", @ScriptDir, "Executables(*.exe)")&" /Icon "&$Icon&" /Comp 4")   
            FileDelete(@TempDir&"\Script.au3")
            #CE
        Case $About
            MsgBox(64, "AutoIt Script Editor - About", "AutoIt Script Editor copyright Justin Reno 2007.")
        Case $HelpFile
            Run(@ProgramFilesDir&"\AutoIt3\AutoIt3Help.exe")
    EndSwitch
WEnd

;~ Aut2ExeThisFile(GUICtrlRead($Edit)) ; For You To Use

Func Aut2ExeThisFile($AutoitCode)
    $Path = FileSelectFolder("AutoIt Script Editor - Select Save Directory", @HomePath)
    If @error Or $Path = "" Then
        SetError(4)
        Return @error
    EndIf
    $FileName = InputBox("AutoIt Script Editor - Type File Name", "Please type in your wanted file name:")
    $FileName = StringReplace($FileName, " ", "_")                  ;  no spaces allowed  -  MAY NEED TO ADD OTHER ILLEGAL CHARACTER CHECKS HERE !!!!!
    If @error Then
        If @error = 1 Then
            SetError(1)
            Return @error
        EndIf
        If @error = 2 Then
            SetError(2)
            Return @error
        EndIf
        If @error = 3 Then
            SetError(3)
            Return @error
        EndIf
    EndIf
    $EXEPath = $Path & "\" & $FileName
    FileWrite($Path & $FileName & ".au3", $AutoitCode)
    $icon = FileOpenDialog("AutoIt Script Editor - Compile Icon", "C:\Program Files\AutoIt3\Icons", "Icons(*.ico)", 1)
    $splitpath = StringSplit($icon, "\")
    If Not FileExists(@ScriptDir & "\" & $splitpath[UBound($splitpath) - 1]) Then
        FileCopy($icon, @ScriptDir & "\" & $splitpath[UBound($splitpath) - 1])
    EndIf
    Run(@ProgramFilesDir & "\AutoIt3\Aut2Exe\Aut2exe.exe /In " & $Path & $FileName & ".au3" & " /Out " & $EXEPath & ".exe" & " /Icon " & $splitpath[UBound($splitpath) - 1])
    Return $FileName & ".au3 was compiled to:" & @CRLF & $EXEPath & ".exe" & @CRLF & "Icon Used: " & $splitpath[UBound($splitpath) - 1]
EndFunc   ;==>Aut2ExeThisFile
Edited by JustinReno
  • Replies 41
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted

Ok, here is the fixed script. By Justin Reno and Danwilli.

$GUI = GUICreate("AutoIt Script Editor by Justin Reno", 283, 265)
$Edit = GUICtrlCreateEdit("", 0, 0, 281, 217)
$Input = GUICtrlCreateInput("", 0, 224, 281, 21)
$FileMenu = GUICtrlCreateMenu("File")
$Open = GUICtrlCreateMenuItem("Open", $FileMenu)
GUICtrlCreateMenuItem("", $FileMenu)
$Save = GUICtrlCreateMenuItem("Save", $FileMenu)
GUICtrlCreateMenuItem("", $FileMenu)
$Exit = GUICtrlCreateMenuItem("Exit", $FileMenu)
$ScriptMenu = GUICtrlCreateMenu("Script")
$Run = GUICtrlCreateMenuItem("Run", $ScriptMenu)
$Compile = GUICtrlCreateMenuItem("Compile", $ScriptMenu)
$AboutMenu = GUICtrlCreateMenu("About")
$About = GUICtrlCreateMenuItem("About", $AboutMenu)
GUICtrlCreateMenuItem("", $AboutMenu)
$HelpFile = GUICtrlCreateMenuItem("AutoIt Help File", $AboutMenu)
GUISetState(@SW_SHOW)

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case -3, $Exit
            Exit
        Case $Open
            GUICtrlSetData($Edit, FileRead(FileOpenDialog("AutoIt Script Editor - Open Script", @ScriptDir, "AutoIt Scripts(*.au3)")))
        Case $Save
            FileWrite(FileSaveDialog("AutoIt Script Editor - Save Script", @ScriptDir, "AutoIt Scripts(*.au3)"), GUICtrlRead($Edit))
        Case $Exit
            If GUICtrlRead($Edit) <> "" Then $AskToSaveMsg = MsgBox(68, "AutoIt Script Editor - Save Unsaved File", "Do you want to save this script?")
            If $Msg = 6 Then FileWrite(FileSaveDialog("AutoIt Script Editor - Save Script", @ScriptDir, "AutoIt Scripts(*.au3)"), GUICtrlRead($Edit))
        Case $Run
            FileWrite(@TempDir&"\Script.au3", GUICtrlRead($Edit))
            RunWait(@AutoItExe & " " & @TempDir&"\Script.au3")
            FileDelete(@TempDir&"\Script.au3")
        Case $Compile
            $Return = Aut2ExeThisFile(GUICtrlRead($Edit))
            If Not @error Then
                MsgBox(0, "Success", $return)
            Else
            If @error = 1 Then
                MsgBox(0, "Error", "The Cancel button was pushed.")
            ElseIf @error = 2 Then
                MsgBox(0, "Error", "The Timeout time was reached.")
            ElseIf @error = 3 Then
                MsgBox(0, "Error", "The InputBox failed to open. This is usually caused by bad arguments.")
            ElseIf @error = 4 Then
                MsgBox(0, "Error", "User canceled or closed Folder Selection window.")
            EndIf
            EndIf
            #cs
            FileWrite(@TempDir&"\Script.au3", GUICtrlRead($Edit))
            $IconPath = FileOpenDialog("AutoIt Script Editor - Compile Icon", @ScriptDir, "Icons(*.ico)")
            FileCopy($IconPath, @ScriptDir&"\Icon.ico")
            $Icon = "Icon.ico"
            MsgBox(0, "test", @ProgramFilesDir&"\AutoIt3\Aut2Exe\Aut2exe.exe /In "&@TempDir&"\Script.au3 /Out "&FileSaveDialog("AutoIt Script Editor - Compile Save Location", @ScriptDir, "Executables(*.exe)")&" /Icon "&$Icon&" /Comp 4")   
            FileDelete(@TempDir&"\Script.au3")
            #CE
        Case $About
            MsgBox(64, "AutoIt Script Editor - About", "AutoIt Script Editor copyright Justin Reno 2007.")
        Case $HelpFile
            Run(@ProgramFilesDir&"\AutoIt3\AutoIt3Help.exe")
    EndSwitch
WEnd

Func Aut2ExeThisFile($AutoitCode)
    $Path = FileSelectFolder("AutoIt Script Editor - Select Save Directory", @HomePath)
    If @error Or $Path = "" Then
        SetError(4)
        Return @error
    EndIf
    $FileName = InputBox("AutoIt Script Editor - Type File Name", "Please type in your wanted file name:")
;~     $FileName = StringReplace($FileName, " ", "_")                  ;  no spaces allowed  -  MAY NEED TO ADD OTHER ILLEGAL CHARACTER CHECKS HERE !!!!!
    If @error Then
        If @error = 1 Then
            SetError(1)
            Return @error
        EndIf
        If @error = 2 Then
            SetError(2)
            Return @error
        EndIf
        If @error = 3 Then
            SetError(3)
            Return @error
        EndIf
    EndIf
    $EXEPath = $Path & "\" & $FileName
    FileWrite($Path & $FileName & ".au3", $AutoitCode)
    $icon = FileOpenDialog("AutoIt Script Editor - Compile Icon", "C:\Program Files\AutoIt3\Icons", "Icons(*.ico)", 1)
    $splitpath = StringSplit($icon, "\")
    If Not FileExists(@ScriptDir & "\" & $splitpath[UBound($splitpath) - 1]) Then
        FileCopy($icon, @ScriptDir & "\" & $splitpath[UBound($splitpath) - 1])
    EndIf
    Run(@ProgramFilesDir & '\AutoIt3\Aut2Exe\Aut2exe.exe /In "' & $Path & $FileName & '.au3"' & ' /Out "' & $EXEPath & '.exe"' & ' /Icon "' & $splitpath[UBound($splitpath) - 1] & '"')
    Return $FileName & ".au3 was compiled to:" & @CRLF & $EXEPath & ".exe" & @CRLF & "Icon Used: " & $splitpath[UBound($splitpath) - 1]
EndFunc   ;==>Aut2ExeThisFile

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...