progress bar

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
 
C

Chris

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
 
S

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
 
L

Lynn

Hi Steven,
thanks for your reply but i do not understand what you mean.
I am a vb.net newbie
 
C

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
 
S

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
 
L

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.
 
L

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?
 
L

Lynn

Cor,
can you also post a sample code on how showing an AVI is used with
waitforexit?
thanks
 
C

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
 
S

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
 
C

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
 
S

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.
 
L

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top