ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Positioning a DOS Window (https://www.excelbanter.com/excel-programming/306620-positioning-dos-window.html)

Robin Clay[_3_]

Positioning a DOS Window
 
Greetings !

I currently have this-
--------------------------------------------
Open "C:\Runner.bat" For Output As #1
Print #1, "@ECHO off"
Print #1, "Echo Please wait -"
Print #1, "Echo This may take some time ...."
Print #1, " [ other DOS commands ] ."
Close

Shell "C:\Runner.bat", vbNormalFocus

MsgBox "Please wait " & vbCrLf & _
"until the DOS window closes."

Kill "C:\Runner.bat"
----------------------------------------------

The reason for the MsgBox
is to prevent VBA from KILLing the batch file
until it has completed running.

I would like the DOS window to cover the MsgBox.

How can I specify whereabouts on the screen
the DOS window will appear?


RClay AT haswell DOT com


Dave Peterson[_3_]

Positioning a DOS Window
 
I don't know a way of positioning the DOS window, but you could stop it from
closing:

Shell Environ("comspec") & " /k c:\runner.bat", vbNormalFocus

/c (instead of /k) will close the window

Robin Clay wrote:

Greetings !

I currently have this-
--------------------------------------------
Open "C:\Runner.bat" For Output As #1
Print #1, "@ECHO off"
Print #1, "Echo Please wait -"
Print #1, "Echo This may take some time ...."
Print #1, " [ other DOS commands ] ."
Close

Shell "C:\Runner.bat", vbNormalFocus

MsgBox "Please wait " & vbCrLf & _
"until the DOS window closes."

Kill "C:\Runner.bat"
----------------------------------------------

The reason for the MsgBox
is to prevent VBA from KILLing the batch file
until it has completed running.

I would like the DOS window to cover the MsgBox.

How can I specify whereabouts on the screen
the DOS window will appear?

RClay AT haswell DOT com


--

Dave Peterson


Robin Clay[_3_]

Positioning a DOS Window
 

Thank you for the suggestion - but acksherley....
VBA shells out to run a batch file
that takes several minutes to run.

Meanwhile, VBA continues,
and the next thing it does
is to kill the batch file -
but that is still running !


So I have inserted a MsgBox -
but if the user sees this,
she may be temopted to click OK...

So I wanted the DOS window to hide
the MsgBox until the batch file
has finished running.

Then the DOS window closes,
and the user may then click OK
to let VBA continue.

So I actually want the DOS window
to close on completion.


But what I was seeking
was a way to ensure
that the DOS window
covered the MsgBox.


Thanks again.


-----Original Message-----
I don't know a way of positioning the DOS window,
but you could stop it from closing:

Shell Environ("comspec") & _
" /k c:\runner.bat", vbNormalFocus

/c (instead of /k) will close the window

Robin Clay wrote:

Greetings !

I currently have this-
--------------------------------------------
Open "C:\Runner.bat" For Output As #1
Print #1, "@ECHO off"
Print #1, "Echo Please wait -"
Print #1, "Echo This may take some time ...."
Print #1, " [ other DOS commands ] ."
Close

Shell "C:\Runner.bat", vbNormalFocus

MsgBox "Please wait " & vbCrLf & _
"until the DOS window closes."

Kill "C:\Runner.bat"
----------------------------------------------

The reason for the MsgBox
is to prevent VBA from KILLing the batch file
until it has completed running.

I would like the DOS window to cover the MsgBox.

How can I specify whereabouts on the screen
the DOS window will appear?

RClay AT haswell DOT com


--

Dave Peterson

.


DNF Karran[_30_]

Positioning a DOS Window
 
Thought i had it but no coffee in the system yet.....

Hmm... although this might work...

What if you made a user form that uses the onload event to run the do
window? that way you can bring up the form and then show the dos windo
in front just by using vbnormalfocus...

Off to put the kettle on now...

--
Message posted from http://www.ExcelForum.com


Dave Peterson[_3_]

Positioning a DOS Window
 
Do you want to have your code wait for the .bat file to finish?

If yes, a couple of links:

http://support.microsoft.com/?kbid=214248
XL2000: How to Force Macro Code to Wait for Outside Procedure

Here's a link to a nice ShellAndWait function that does that.
http://groups.google.com/groups?thre...%40tkmsftngp03

(I like to use the second one.)

====

I'm not sure why it kills the .bat file, though.

Robin Clay wrote:

Thank you for the suggestion - but acksherley....
VBA shells out to run a batch file
that takes several minutes to run.

Meanwhile, VBA continues,
and the next thing it does
is to kill the batch file -
but that is still running !

So I have inserted a MsgBox -
but if the user sees this,
she may be temopted to click OK...

So I wanted the DOS window to hide
the MsgBox until the batch file
has finished running.

Then the DOS window closes,
and the user may then click OK
to let VBA continue.

So I actually want the DOS window
to close on completion.

But what I was seeking
was a way to ensure
that the DOS window
covered the MsgBox.

Thanks again.

-----Original Message-----
I don't know a way of positioning the DOS window,
but you could stop it from closing:

Shell Environ("comspec") & _
" /k c:\runner.bat", vbNormalFocus

/c (instead of /k) will close the window

Robin Clay wrote:

Greetings !

I currently have this-
--------------------------------------------
Open "C:\Runner.bat" For Output As #1
Print #1, "@ECHO off"
Print #1, "Echo Please wait -"
Print #1, "Echo This may take some time ...."
Print #1, " [ other DOS commands ] ."
Close

Shell "C:\Runner.bat", vbNormalFocus

MsgBox "Please wait " & vbCrLf & _
"until the DOS window closes."

Kill "C:\Runner.bat"
----------------------------------------------

The reason for the MsgBox
is to prevent VBA from KILLing the batch file
until it has completed running.

I would like the DOS window to cover the MsgBox.

How can I specify whereabouts on the screen
the DOS window will appear?

RClay AT haswell DOT com


--

Dave Peterson

.


--

Dave Peterson



All times are GMT +1. The time now is 12:47 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com