?
Solved

Processes: StandardInput/StandardOutput

Posted on 2008-10-13
6
Medium Priority
?
959 Views
Last Modified: 2013-11-07
Hi guys!

I really need some help to sort this out!
The code I have dosent work so I need help to see what I have done wrong, EXPERT help needed!!!

I have 2 applications: App1 and App2
1: In App1 I send a command to App2
2: In App1 I like to know if this command was executed as it should, so I need some data back from App2

This is the code!

---------------------------------------------------------------------------------------------------------------------------
This is just pseudocode  
I  must use the process StandardInput/StandardOutput method, nothing else..
---------------------------------------------------------------------------------------------------------------------------

Thx
In App1
--------------------------------------------------
        Dim myprocess As New Process
        Dim processData As String
 
        With myprocess.StartInfo
            .FileName = applicationPath & server & ".exe"
            .Arguments() = "/input=True,True"
            .CreateNoWindow = False
            .ErrorDialog = False
            .UseShellExecute = False
            .RedirectStandardOutput = True
            .RedirectStandardError = True
            .RedirectStandardInput = True
            .WindowStyle = ProcessWindowStyle.Normal
        End With
 
        myprocess.Start()
 
        Dim standardOutput As IO.StreamReader = myProcess.StandardOutput
 
        '// Wait for Exited event, but not more than 10 seconds.
        Const SLEEP_AMOUNT As Integer = 100
        Do While Not m_shutDownProcessExited
            m_shutDownElapsedTime += SLEEP_AMOUNT
            '// Read the standard output of the spawned process.
            processData = standardOutput.ReadToEnd
            If Not String.IsNullOrEmpty(processData) Then
                Exit Do
            End If
            '// Timout?
            If m_shutDownElapsedTime > 10000 Then
                myProcess.Kill()
                Exit Do
            End If
            Thread.Sleep(SLEEP_AMOUNT)
        Loop
 
        If processData = "True" Then
            'Do some stuff
        Else
            ' Do some other stuff
        End If
 
In App2
--------------------------------------------------
        Dim runningProcesses As Process()
        Dim runningProcess As Process = Nothing
 
        runningProcesses = Process.GetProcessesByName(server.FullPath)
 
        If runningProcesses.Length > 0 Then
            For Each p As Process In runningProcesses
                If p.ProcessName = server.Name Then
                    runningProcess = p
                    Exit For
                End If
            Next
        End If
 
        If runningProcess IsNot Nothing Then
            runningProcess.StandardInput.Write("True")
        End If

Open in new window

0
Comment
Question by:AWestEng
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
6 Comments
 
LVL 11

Accepted Solution

by:
AkisC earned 1500 total points
ID: 22709173
try if this works

replace line 22 - 37 with
'// Wait for Exited event, but not more than 10 seconds.
myprocess.WaitForExit(100000)
processData = myprocess.ExitCode

'// wait a liitle more before killing the process
Threading.Thread.Sleep(1000)
myProcess.Kill()

-ALSO-
you wrote <<I  must use the process StandardInput/StandardOutput method, nothing else..>>
If that is a limitation ok, if not why not have your App2 write a text file e.g. "App2Results.txt" and look for this text file in a do/loop node from App1?


0
 
LVL 1

Author Comment

by:AWestEng
ID: 22709717
question
when using StandardInput/StandardOutput is it not possible to send stuff between the applicaitons when a instance is running, why doesen't my code work?
0
 
LVL 1

Author Comment

by:AWestEng
ID: 22709729
and in App2 should I write to input to send the data back to App1?
0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
LVL 1

Author Comment

by:AWestEng
ID: 22709927
hmm I'll skipt the part of using the standardInput/output I'll connect via a socket instead, any tips there?
only local connection 127.0.0.1 wil be used
0
 
LVL 1

Author Comment

by:AWestEng
ID: 22710363
when I tested some more now I got this error from app 2 > StandardIn has not been redirected
0
 
LVL 1

Author Closing Comment

by:AWestEng
ID: 31506643
I can't get it to work as I want, but that can be my bad.. But thx for trying
0

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

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

Welcome my friends to the second instalment and follow-up to our Minify and Concatenate Your Scripts and Stylesheets (http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/A_4334-Minify-and-Concatenate-Your-Scripts-and-Stylesheets.html)…
It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …

649 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