Jump to content

Optional Function Parameters can't consist of joined Strings?


Go to solution Solved by Melba23,

Recommended Posts

Kinda strange I never tried this before but why is the following code not allowed?

Func _testExec($CMD, $FileDir = @ProgramFilesDir & "\ProgramX\file.exe")
   ShellExecuteWait($FileDir, $CMD)
EndFunc
_testExec("--command")

I'm not allowed to combine @ProgramFiles & "ProgramXfile.exe"

 

But this on the otherhand works.

Func _testExec($CMD, $FileDir)
   ShellExecuteWait($FileDir, $CMD)
EndFunc

_testExec("--command", @ProgramFilesDir & "\ProgramX\file.exe")

Can someone tell me what I'm doing wrong?

EDIT: Corrected @ProgramFilesDir macro

Edited by bootybay
Link to comment
Share on other sites

  • Moderators

bootybay,

I had to change the macro to the correct name (@ProgramFilesDir) but after doing so both of those snippets worked fine for me when I substituted one of my programs: :)

_testExec("fred4.au3")

Func _testExec($CMD, $FileDir = @ProgramFilesDir & "\Frhed\frhed.exe")
   ShellExecuteWait($FileDir, $CMD)
EndFunc
_testExec("fred4.au3", @ProgramFilesDir & "\Frhed\frhed.exe")

Func _testExec($CMD, $FileDir)
   ShellExecuteWait($FileDir, $CMD)
EndFunc
What version of AutoIt are you running? :huh:

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Oh I'm sorry. I actually used the right @ProgramFilesDir in my code.

So it actually looks like yours:

_testExec("fred4.au3") 
Func _testExec($CMD, $FileDir = @ProgramFilesDir & "\Frhed\frhed.exe")
    ShellExecuteWait($FileDir, $CMD) 
EndFunc

But when I try to run the function this shows in scite. (Same happens when Copy yours into a new au3.)

ERROR: syntax error
REF: definition of _testExec()

And

test3.au3(3,50) : ERROR: syntax error
Func _testExec($CMD, $FileDir = @ProgramFilesDir &
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
test3.au3(3,71) : ERROR: _testExec() called by a previous line with 1 arg(s). Max = 0. First previous line calling this Func is 1.
Func _testExec($CMD, $FileDir = @ProgramFilesDir & "\Frhed\frhed.exe")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
test3.au3 - 2 error(s), 0 warning(s)

I'm using v3.3.8.1

Edited by bootybay
Link to comment
Share on other sites

  • Moderators
  • Solution

bootybay,

Those errors look as if they come from Au3Check. I am using v3.3.12.0 so either that utility or AutoIt itself could have been updated. Perhaps an upgdate is indicated. ;)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

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...