Avatar billede bandersen2200 Nybegynder
04. januar 2012 - 16:13 Der er 10 kommentarer og
1 løsning

C# læs og skriv fra kørende cmd, der ikke er oprettet gennem C# programmet.

Hej

Fra mit C# miljø kalder jeg et cmd program1. Program1 opretter derefter en server forbindelse til et unix miljø der starter i en ny cmd (program2).
-Det er at det er et unix miljø er underordnet.


Jeg vil nu gerne skrive og læse til den cmd (program2), der er en ny kørende cmd, som jeg ikke har oprettet fra mit C# program.


Håber i kan hjælpe.
Avatar billede Syska Mester
04. januar 2012 - 16:50 #1
Remoting, Sockets, WebServices ... der er mange måder, men det kommer jo helt an på hvordan dit "Program2" virker på din remote host.

mvh
Avatar billede arne_v Ekspert
04. januar 2012 - 17:40 #2
Jeg har en grim mistanke om at program2 er en vilkaarlig EXE og at det er stdout/stdin der er interfacet.
Avatar billede bandersen2200 Nybegynder
04. januar 2012 - 23:14 #3
Hej arne_v & buzzzz

Ja det er stdout/stdin jeg gerne vil bruge. Det er lige meget hvordan Program2 virker, det er ikke relevant. Jeg vil blot skrive og modtage data fra det nye cmd vindue.

Mvh
bandersen
Avatar billede Syska Mester
05. januar 2012 - 00:35 #4
Er det så ikke bare at bruge stdin/stdout til dit program.

Jeg kan ikke lige se hvad det er præcis du leder efter. Du har jo selv forklaret hvad du vil. Så er det vel bare at gøre det.

mvh
Avatar billede arne_v Ekspert
05. januar 2012 - 02:04 #5
Jeg formoder at det er:


  ------noget Unix------
  |                    |
(noget)              (start)
  |                    |
program1            program2


hvor program1 nu skal have stdout og stdin fra program2.

Jeg kan se 2 mulige loesninger:

1) Lav noget native kode eller .NET kode som kalder Win32 API til at goere det.

2)


  ------noget Unix------
  |                    |
(noget)              (start)
  |                    |
program1--(IPC)--nyt program2 i C#
                        |
                  (Process.Start)
                        |
                  rigtige program2
               

hvor IPC saa kunne vaere remoting eller named pipes ellr sockets.
Avatar billede bandersen2200 Nybegynder
05. januar 2012 - 09:18 #6
Hej arne_v

Ja det er næsten sådan. Er det sådan her du har tænkt at jeg skulle bruge Win32 API ?


            C# ---------Win32 API--
            |                      |
        Kalder program1            |
            |                      |
        noget Unix --------- Kalder program2

Jeg har kigget på følgende liste over windows API´er: http://msdn.microsoft.com/en-us/library/ff818516(v=vs.85).aspx

Men kan ikke se hvordan man skal forbinde/interface til en cmd ?
Avatar billede bandersen2200 Nybegynder
05. januar 2012 - 14:48 #7
Opdateret tegning af højre side:

-Win32 API----                   
            |
            |
            |
----- Kalder program2
Avatar billede Syska Mester
05. januar 2012 - 16:50 #8
Problemet er at dit Program2 kun har stdin/stdout ... og ingen netværk, og dermed har du et problem.

Derfor skal du som arne_v skriver, lavet et server som har et interface du kan snakke med over netværket. (Som han skriver: remoting eller named pipes ellr sockets.)

Dvs. Program1 <-> Nyt Program2 <-> Gamle Program2

Det kan være du kan finde et std program så du er fri for selv at udvikle Nyt Program2, men har ingen ide.

Men da Gamle Program2 er et almindelig CLI program, ja, så har du et problem som jeg ser det.
Avatar billede arne_v Ekspert
05. januar 2012 - 20:34 #9
Med noget snasket Win32 kan du faa adgang til alt som er et eller andet sted paa computeren.

Men loesning #2 kan laves paenere.
Avatar billede bandersen2200 Nybegynder
16. april 2012 - 17:52 #10
arne_v vil du have dine point ?
Avatar billede arne_v Ekspert
16. april 2012 - 18:47 #11
gerne
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I dag 16:05 win 10 vil ikke boote Af bb69 i Windows
I dag 11:20 Lenovo x390 Af tobberjas i PC
I dag 10:14 Alder i Excel Af Nanarsi i Excel
I dag 09:00 Flere linier på faneblad Af Peder Lund Nielsen i Excel
I går 21:35 Flash Player Af ErikHg i Andet software