Thanks to you too Tim,

Unfortunately your solution doesn't work either. The shell never quits running, and no events are fired either. I tried instantiating in code, or by adding the class to a window, but neither seem to work.

Ronald Vogelaar
--
http://www.rovosoft.com


----- Original Message ----- From: "Tim Jones" <[EMAIL PROTECTED]>
To: "REALbasic NUG" <[email protected]>
Sent: Tuesday, September 05, 2006 6:29 PM
Subject: Re: Shell / StdIn question


On Sep 5, 2006, at 1:07 AM, Ronald Vogelaar wrote:

Hi all,

I need to execute a small program, using RB's Shell class. This program can read its data either from file or from stdin. I would really like to have it read from stdin, but the problem is this: when it executes without the name of a file on the command line, it just sits there, waiting for input from stdin. There's no output to catch in order to know when to execute the shell.write command, and doing this:

shell.execute "thatfile.exe"
shell.write "some text to be processed"

...obviously does not work

Is there someone who can give me a hint?

Hi Ronald,

First - make sure the Shell's Mode is 2
Second - since you seem to be on Windows, set the timeout value to -1
Third, use the much maligned App.DoEvents() to pause without bogging the interface

Dim myShell As New Shell

myShell.Mode = 2
If TargetWin32 Then
myShell.Timeout = -1 // Not required if not Windows
End If

myShell.Execute "thatfile.exe"
App.DoEvents(1000)  // wait one second - may need to adjust
myShell.WriteLine "some text to be processed"

Do
App.DoEvents(10)
Loop Until Not myShell.IsRunning

// Handle results here...

Since I created the myShell instance in code in this sample instead of by dropping a Shell class into our project, we don't have easy access to the "Completed" event. Thus the Do ... Loop Until to monitor the myShell.IsRunning flag. If you do add a Shell to your project in the IDE and then subclass it, you won't need the Do ... Loop Until as the Completed event will fire when the execution completes and you can put your finish up code inside of that event.

HTH,
Tim
--
Tim Jones [EMAIL PROTECTED]

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

__________ NOD32 1.1739 (20060904) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com



_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to