Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

VB Code write cmd.exe to file

Posted on 2013-06-13
7
Medium Priority
?
432 Views
Last Modified: 2013-06-17
I have a process that works.

On a button click it (WIth hidden widnow)
Runs cmd.exe
executes a java command
The cmd.exe is using an append to file with > myfile.txt

The process runs...opens a connection to my vendor and starts receiving the inbound data

Now this is an open connection so as long as this runs I will get a continuous stream of telephone data on our network.
(No...I don't work for the NSA...LOL)

I allso have a process.kill() command.

WHat I want is for this to continuously append to the file

BUt it looks like the file isn't written until I kill the process?
Is that the way it works?  

I really need it going into the file in an ongoing manner

This is what is running
    Private Sub btnProcessStart_Click(sender As System.Object, e As System.EventArgs) Handles btnProcessStart.Click
        ' New ProcessStartInfo created
        Dim p As New ProcessStartInfo

        ' Specify the location of the binary
        p.FileName = "cmd.exe"
        p.WorkingDirectory = "C:\Program Files (x86)\Java\jre7\bin\"

        ' Use these arguments for the process
        p.Arguments = "/c java -cp m5.jar;m5-data-objects.jar;webservices-rt.jar;log4j-1.2.13.jar > C:\temp\Output3.txt"

        ' Use a hidden window
        p.WindowStyle = ProcessWindowStyle.Hidden

        ' Start the process
        Process.Start(p)

        Dim intResponse As Integer
        intResponse = MsgBox("End?", vbYesNoCancel, "Alert")
        If intResponse = vbYes Then
            For Each jr In Process.GetProcessesByName("Java")
                Try
                    
                    jr.Kill()
                
                Catch
                
                End Try
           
            Next
        End If
    End Sub

Open in new window

0
Comment
Question by:lrbrister
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 42

Expert Comment

by:Meir Rivkin
ID: 39244364
where's the code that writes to the file?
whats data do u wanna write to a file?
0
 
LVL 83

Accepted Solution

by:
CodeCruiser earned 2000 total points
ID: 39244408
Do not use >filename approach and redirect standard output instead as shown here

http://stackoverflow.com/questions/206323/how-to-execute-command-line-in-c-get-std-out-results

but instead of readtoend, use a while loop and do readline which should get you every line of cmd output
0
 

Author Comment

by:lrbrister
ID: 39244515
CodeCruiser

On the StackFlow site...
Which of those solutions should I be using? I see 9 answers
0
Get your Disaster Recovery as a Service basics

Disaster Recovery as a Service is one go-to solution that revolutionizes DR planning. Implementing DRaaS could be an efficient process, easily accessible to non-DR experts. Learn about monitoring, testing, executing failovers and failbacks to ensure a "healthy" DR environment.

 
LVL 15

Expert Comment

by:angus_young_acdc
ID: 39247067
The first one.

And the alteration will be something like this:

            // Start the child process.
            Process p = new Process();
            // Redirect the output stream of the child process.
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.FileName = "YOURBATCHFILE.bat";
            p.Start();
            // Do not wait for the child process to exit before
            // reading to the end of its redirected stream.
            // p.WaitForExit();
            // Read the output stream first and then wait.
            string output = p.StandardOutput.ReadLine();
            string line = string.Empty;
            while ((line = p.StandardOutput.ReadLine()) != null)
            {
                output = line;
            }
            p.WaitForExit();

Open in new window

0
 
LVL 15

Expert Comment

by:angus_young_acdc
ID: 39247074
Sorry it's for VB!

        Dim p As New Process()
        p.StartInfo.UseShellExecute = False
        p.StartInfo.RedirectStandardOutput = True
        p.StartInfo.FileName = "YOURBATCHFILE.bat"
        p.Start()

        Dim output As String
        Dim line As String

        While ((line = p.StandardOutput.ReadLine()) != Nothing)
            output = line
        End While
        p.WaitForExit()

Open in new window

0
 
LVL 83

Assisted Solution

by:CodeCruiser
CodeCruiser earned 2000 total points
ID: 39247150
The one with green tick is the one selection as final answer and is usually at the top of answers.
0
 

Author Closing Comment

by:lrbrister
ID: 39253841
CodeCruiser
As always...thanks
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
Video by: ITPro.TV
In this episode Don builds upon the troubleshooting techniques by demonstrating how to properly monitor a vSphere deployment to detect problems before they occur. He begins the show using tools found within the vSphere suite as ends the show demonst…

971 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question