Jump to content

external functions?


HCand
 Share

Recommended Posts

i have been thinking about making a little tool for my modified U3 flash-drive, that will work as an advanced command-line, quickstart etc.

but... i want to be able to edit the commands and tools i write for it, without having to recompile the whole script again.

think of it as #include-external<$variable> via a configuration window/command that select those addons.

I've searched the help file, and on the forums. but i can't find any information on it.

so, do you have any ideas on how this could be done? unless i have to build commands myself, and have it read and recognize it all :)

Link to comment
Share on other sites

In the main script list all "file_name.au3" in a combobox and when that selection is made use...

$Location = GUICtrlRead($ComboBox)


If @Compiled = 1 Then
        $file_exe = FileGetShortName(@AutoItExe & ' /AutoIt3ExecuteScript "' & $Location & '"')
        Run($file_exe)
    Else
        $file_au3 = FileGetShortName($Location)
        Run(@AutoItExe & " " & $file_au3, "", @SW_HIDE)
    EndIf

8)

NEWHeader1.png

Link to comment
Share on other sites

From "Welcome to Autoit 1-2-3" Lesson #6

; includes
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <file.au3>

; create the GUI.
$win = GUICreate("File List/View Demo", 614, 370)
; set the font for the GUI
GUISetFont(9, 400, -1, "MS Sans Serif")
; create buttons.
$btnList = GUICtrlCreateButton("&List Files", 10, 330, 75, 25)
$btnView = GUICtrlCreateButton("&View File", 85, 330, 75, 25)
; create the left list.
$TutorItList = GUICtrlCreateList("", 10, 10, 150, 330)
; create the right edit.
$TutorItEdit = GUICtrlCreateEdit("Please select a tutorial from the list to your left.", 175, 10, 420, 345, $ES_AUTOVSCROLL + $ES_READONLY + $ES_MULTILINE + $WS_VSCROLL)
; set the edit colors.
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetColor(-1, 0x000000)
; set focus to the edit.
GUICtrlSetState($TutorItList, $GUI_FOCUS)
; show the GUI.
GUISetState()

; start the loop.
While 1
    ; listen for a message
    $msg = GUIGetMsg()
    ; using select/case for the message
    Select
        Case $msg = $GUI_EVENT_CLOSE 
            Exit
        Case $msg = $btnList
            Set_tutor()
        Case $msg = $btnView
            View_tutor()
    ; end the selections        
    EndSelect
    
WEnd

; Function to populate the left list.
Func Set_tutor()
    $TutList = _FileListToArray (@HomeDrive & "\", "*.txt", 1) ; list files to an array.
    If (Not IsArray($TutList)) Or (@error = 1) Then
        MsgBox(262208, "Tutor Error", "No Files\Folders Found.   ", 5)
        Return
    EndIf
    GUICtrlSetData($TutorItList, "") ; set list to empty.
    For $x = 1 To $TutList[0] ; for loop to place the files in the list.
        GUICtrlSetData($TutorItList, (StringTrimRight($TutList[$x], 4)) & "|", 1) ; string trim the last 4 characters ( .txt )
    Next
EndFunc   

; Function to populate the right edit.
Func View_tutor()
    $s_text = GUICtrlRead($TutorItList) ; read the selected file to a variable.
    If $s_text = "" Then Return
    $s_text = @HomeDrive & "\" & $s_text & ".txt" ; set the location of the file.
    Dim $Tut_text
    If Not _FileReadToArray($s_text, $Tut_text) Then ; read the file to an array.
        MsgBox(4096, "Tutor Error", " Error reading log to Array     error:" & @error)
        Return
    EndIf
    GUICtrlSetData($TutorItEdit, "") ; set the edit to empty.
    For $x = 1 To $Tut_text[0] ; for loop to place the read file into the edit.
        GUICtrlSetData($TutorItEdit, $Tut_text[$x] & @CRLF, 1)
    Next
EndFunc   

; Note
; file read to array, reads the file
; file list to array, lists the files

8)

NEWHeader1.png

Link to comment
Share on other sites

In the main script list all "file_name.au3" in a combobox and when that selection is made use...

$Location = GUICtrlRead($ComboBox)


If @Compiled = 1 Then
        $file_exe = FileGetShortName(@AutoItExe & ' /AutoIt3ExecuteScript "' & $Location & '"')
        Run($file_exe)
    Else
        $file_au3 = FileGetShortName($Location)
        Run(@AutoItExe & " " & $file_au3, "", @SW_HIDE)
    EndIf

8)

so.. running the .au3 as a parameter to the .exe will have it run together and be able to interract?
Link to comment
Share on other sites

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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...