Home All Groups Group Topic Archive Search About
Author
12 Mar 2006 8:19 AM
moley_cruz
Hi,
If i start a process using System.Diagnostics.Process.Start(myprog.exe,

myattributes)
is it possible to display a running process bar instead of showing a
DOS window which shows what the program is doing?
thanks

Author
12 Mar 2006 3:58 PM
Chris
moley_c***@yahoo.com.au wrote:
> Hi,
> If i start a process using System.Diagnostics.Process.Start(myprog.exe,
>
> myattributes)
> is it possible to display a running process bar instead of showing a
> DOS window which shows what the program is doing?
> thanks
>

You can use the ProcessInfo class to start the process with no window.
Don't know if that will do what you want.

Chris
Author
13 Mar 2006 3:50 AM
Steven Nagy
Why don't you just run your progress bar in a seperate thread, instead
of a seperate process?
I think it would be safer that way (main program exits, so does
progress bar).
Also, you won't get a dos window (although use the Process Background
property to hide the dos prompt).

With a progress bar, you want to be able to call the STEP method to
make sure it actually increases as your program performs tasks.
This is a lot harder in another process (which is basically another
application) as opposed to another thread (same application).

Here's a simple example:

Dim frmProgress as new ProgressForm()
me.hide()
frmProgress.Show()

' do stuff
frmProgress.ProgressBar.Step()

' do more stuff
frmProgress.ProgressBar.Step()

' hack Microsoft site
frmProgress.ProgressBar.Step()

' take over the world
frmProgress.ProgressBar.Step()

frmProgress.Close()
me.Show()


Steven Nagy
Author
13 Mar 2006 11:46 AM
Lynn
Hi Steven,
thanks for your reply but i do not understand what you mean.
I am a vb.net newbie
Author
13 Mar 2006 7:18 PM
Cor Ligthert [MVP]
Lynn,

You don't have control of the process that is running in the DosBox.
Therefore the steps of the progressbar can not be measured. A progressbar
needs a begin, an end and the steps to reach that. You have only the begin.

I hope this gives an idea

Cor

Show quoteHide quote
"Lynn" <moley_c***@yahoo.com.au> schreef in bericht
news:1142250377.469111.27630@p10g2000cwp.googlegroups.com...
> Hi Steven,
> thanks for your reply but i do not understand what you mean.
> I am a vb.net newbie
>
Author
13 Mar 2006 10:29 PM
Steven Nagy
What part don't you understand?
What is your final objective here? Perhaps give more of a rundown of
what you are trying to achieve.

Steve
Author
15 Mar 2006 1:32 PM
Lynn
i need to run a batch file from my windows form. Instead of displaying
what i am running to the user, i want to hide the DOS window and
replace it with a progress bar to tell me that the batch file is still
running. Not sure if this is possible.
Author
15 Mar 2006 1:40 PM
Cor Ligthert [MVP]
Lynn,

That is in my opinion not possible. What is mostly done (as well by
Microsoft) is showing an AVI until the waitforexit is done.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdiagnosticsprocessclasswaitforexittopic2.asp


Those AVI's are in Visual Studio Net somewhere in the program files (it can
be that you first have to unpack the zip file with those)

I hope this helps,

Cor.
Author
15 Mar 2006 1:52 PM
Lynn
if i use WaitForExit my windows form hangs with a white foreground
until the DOS command has finished executing.
is this normal? can this be overcome?
Author
15 Mar 2006 1:59 PM
Lynn
Cor,
can you also post a sample code on how showing an AVI is used with
waitforexit?
thanks
Author
15 Mar 2006 7:15 PM
Cor Ligthert [MVP]
Lynn,

I have not the time to make a sample now however in pseudo code (almost
real).

Open a new project
Drag on that an picturebox
Set the image to a *gif* file.
You can find those in gif animations in
C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary

set the picturebox to visible = false

picturebox1.visible  = true

Dim p As New System.Diagnostics.ProcessStartInfo()
p.Verb = "print"
p.CreateNoWindow = True
p.WindowStyle = ProcessWindowStyle.Hidden
p.FileName = "C:\filename.exe"
Dim pr As System.Diagnostics.Process = System.Diagnostics.Process.Start(p)
pr.WaitForExit()

picturebox1.visible = false

I hope this helps,

Cor
Author
17 Mar 2006 2:22 AM
Steven Nagy
Run the 'wait for exit' in a seperate thread. Have it raise an event
when done.
Have you main form catch the event and hide the pic box.

SN
Author
17 Mar 2006 9:59 AM
Cor Ligthert [MVP]
Steven,

> Run the 'wait for exit' in a seperate thread. Have it raise an event

Why a seperate thread to run a Gif? The Dos process itself is already in a
seperated process.

Cor
Author
18 Mar 2006 8:15 AM
Steven Nagy
Its not the dos process that is the issue.
Its the main UI thread being told to wait for exit.
Which means I won't spend any time on redrawing your screen while its
waiting, thus the whiteness you mentioned.
Author
18 Mar 2006 3:05 PM
Lynn
can you post a sample code on this -> 'wait for exit' in a seperate
thread. Have it raise an event when done.
thanks in advance