progress bar

  • Thread starter Thread starter moley_cruz
  • Start date Start date
M

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
 
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
 
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
 
Hi Steven,
thanks for your reply but i do not understand what you mean.
I am a vb.net newbie
 
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
 
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
 
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.
 
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?
 
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
 
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
 
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
 
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.
 
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
 
Back
Top