Is it possible?
Execute an external command?
BlitzMax Forums/BlitzMax Programming/Execute an external command? which OS? (it can be done with API calls)
On Mac/Win. I'm looking or an exec/run/command(progname, args) type thing. There must be one... or maybe not.
winexec if i can remember correctly... should do it for win32...
--Mike
--Mike
For mac, you could import some C code which will do it for you. If you know C just look at Fork() and Exec().
Thanks for the suggestions
Try:
system_ cmd$
system_ cmd$
Compile Error: Identifier 'system_cmd' not found (w/wo space)
Duh - it's late here ;-) Thanks, that works
Any other goodies lurking about?
bear in mind system_ seems to wait until the called process has finished before continuing.
Perturbatio, thanks for the info, that's ok for my use.
For some reason when using system_ redirects seem to not work (on Windows, at least).
If, for example, you do the following on a command line the output is sent to a file:
But if in Max you do this:
Any ideas? This has me stumped and I'm relying on being able to parse the output from an external command. :(
According to all the docs I can find on the net, redirects should work with the system() call.
Cheers
Muttley
If, for example, you do the following on a command line the output is sent to a file:
echo > test.txt
But if in Max you do this:
system_("echo > test.txt")the output just goes to the screen.
Any ideas? This has me stumped and I'm relying on being able to parse the output from an external command. :(
According to all the docs I can find on the net, redirects should work with the system() call.
Cheers
Muttley
(Recently posted on another thread)
This should work on all three systems. Not certain though.
It uses Skids excellent FreeProcess library.
I have pulled various bits out of my FrameWork Assistant to show you how I launch an external program:
First, import skidracers module:
Now create a global TProcess variable:
When you are ready to launch an external program:
What's nice about this method is, you can prevent multiple launches of an application (as I do above) and when you close your own program Max shuts down the running app too.
This should work on all three systems. Not certain though.
It uses Skids excellent FreeProcess library.
I have pulled various bits out of my FrameWork Assistant to show you how I launch an external program:
First, import skidracers module:
Import PUB.FreeProcess
Now create a global TProcess variable:
Global proc:TProcess
When you are ready to launch an external program:
Function RunApp(myapp$) ' check if application is still running If proc<>Null If proc.Status() Notify "program still running!" Return EndIf EndIf ' run program proc=TProcess.Create(myapp$,0) If Not Proc Notify "Failed to launch "+myapp$ EndIf End Function
What's nice about this method is, you can prevent multiple launches of an application (as I do above) and when you close your own program Max shuts down the running app too.