By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,573 Members | 1,797 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,573 IT Pros & Developers. It's quick & easy.

progress bar

P: n/a
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

Mar 12 '06 #1
Share this Question
Share on Google+
14 Replies


P: n/a
mo********@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
Mar 12 '06 #2

P: n/a
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

Mar 13 '06 #3

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

Mar 13 '06 #4

P: n/a
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

"Lynn" <mo********@yahoo.com.au> schreef in bericht
news:11*********************@p10g2000cwp.googlegro ups.com...
Hi Steven,
thanks for your reply but i do not understand what you mean.
I am a vb.net newbie

Mar 13 '06 #5

P: n/a
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

Mar 13 '06 #6

P: n/a
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.

Mar 15 '06 #7

P: n/a
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/de...exittopic2.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.

Mar 15 '06 #8

P: n/a
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?

Mar 15 '06 #9

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

Mar 15 '06 #10

P: n/a
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
Mar 15 '06 #11

P: n/a
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

Mar 17 '06 #12

P: n/a
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
Mar 17 '06 #13

P: n/a
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.

Mar 18 '06 #14

P: n/a
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

Mar 18 '06 #15

This discussion thread is closed

Replies have been disabled for this discussion.