Sign in to follow this  
Followers 0
lnx2050

Avoiding Msgbox On Error Detected ?

7 posts in this topic

is here is a way to suppress automaticaly the MsgBox when a error is detected on executing script ?

instead of msgbox, the script execution will abort

Ln.

Share this post


Link to post
Share on other sites



Which MessageBox or specific Error do you refer to ?

Most errors can be avoided like for Run/Runwait you can specify :

Opt("RunErrorsFatal", 0)


Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

in fact, i try to execute $COMMANDLINE witch is sended in a command line parameter

my application 's name : suclient.exe

2 exemples of parameters:

- Suclient audit.cmd

- Suclient "Dir c:\"

in case of lanching a Batch file, there's no problem

but in case of Suclient "dir.cmd", the command is failed because the good correct command line must be : Suclient " cmd /C dir c:\"

i looking for how to detect that the parameter is betwin " " ?

; a part of my code

$COMMANDLINE = $CmdLine[1]
RunWait ($COMMANDLINE)
Edited by lnx2050

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

This is how you can avoid errors with your code:

Opt("RunErrorsFatal", 0); no run errors
; if one parameter is specified then run the program 
If $CmdLine[0] = 1 then
  ; put " around the first parameter to be able to handle long file names
   Run( '"' & $CmdLine[1] & '"')
   if @error then
    ; error running the program code
   endif
else
  ; no parameter specified code
endif

EDIT

You can also take all parameters, in otther words .. not worry about the " on the command line and just add the whole thing together:

Opt("RunErrorsFatal", 0); no run errors
; if one parameter is specified then run the program 
If $CmdLine[0] > 0 then
  $command= ""
  for $x = 1 to $CmdLine[0]
     $command= $command & " " $CmdLine[$x]
  Next 
 ; put " around the first parameter to be able to handle long file names
   Run( '"' & $command & '"')
   if @error then
    ; error running the program code
   endif
else
 ; no parameter specified code
endif
Edited by JdeB

Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Many errors can be fixed by better coding.

example:

;bad code
$VAR = $CmdLine[1]
Msgbox(4096, "Hello ",$VAR)

if you wanted to exit on error better code would be:

if $CmdLine[0] < 1 then exit
$VAR = $CmdLine[1]
Msgbox(4096, "Hello ",$VAR)

or

If ubound ($CmdLine)=1 Then exit
$VAR = $CmdLine[1]
MsgBox(4096, "Hello ",$VAR)

you can also use:

IsArray

IsDeclared

IsFloat

IsInt

IsNumber

IsString

and

MustDeclareVars might come in handy for ya

RunErrorsFatal is not a substitute for thoughtful coding. ex.

Opt("RunErrorsFatal", 0)
$VAR = $CmdLine[1]
Msgbox(4096, "Hello ",$VAR)

RunErrorsFatal(0)....Sets if the script should terminate with a fatal error if a Run/RunWait function fails due to bad paths/file not found/Bad login IDs:


AutoIt3, the MACGYVER Pocket Knife for computers.

Share this post


Link to post
Share on other sites

yes, but my problem is to detect the "" in the parameter.

The $Cmdline[1] is saving the parameter within the ""

if i send in dos prompt : Suclient "dir c:\"

the $Cmdline[1] is dir c:\ but not "dir c:\"

so how to detect the "" ?

that's all my pbm :whistle:

Ln.

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

check my EDIT in the previous post.... that should take care of that issue... (i think :whistle: )

Edited by JdeB

Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
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
Sign in to follow this  
Followers 0