Avatar billede m_smiszek Nybegynder
17. oktober 2007 - 11:39 Der er 13 kommentarer

Process.start en proces med variabler

Hej Alle,

Jeg sidder og bøvler med et "mindre" syntax problem..

Jeg har en Process.Start som jeg starter et program med, i kommandoen vil jeg gerne kunne sætte nogel switses som bliver angivet i min app via variabler.

min linje ser lige pt således ud.
Process.Start("C:\Program Files\yhal\bin>echo '" & message & "' | yhal.exe --sendsms TEXT '" & phone & "'")

På forhånd tak for hjælpen

Mvh Mikkel Smiszek Larsen
Avatar billede nielle Nybegynder
17. oktober 2007 - 11:44 #1
Sådan?

Process.Start("C:\\Program Files\\yhal\\bin>echo", "| yhal.exe --sendsms TEXT '" & phone & "'");
Avatar billede m_smiszek Nybegynder
17. oktober 2007 - 12:03 #2
Både ja og nej...

for jeg kan godt køre applikationen, jeg får bare ikke de forskellige switses med..
Avatar billede m_smiszek Nybegynder
17. oktober 2007 - 12:04 #3
Eller, mener - den kan ikke finde programmet når switsesne er med..
Avatar billede nielle Nybegynder
17. oktober 2007 - 12:18 #4
Programmet er "echo" - er det den den ikke kan finde?
Avatar billede m_smiszek Nybegynder
17. oktober 2007 - 12:25 #5
Den kan godt finde ud af at håntere echo, men den kan ikke bruge varablerne og switsene bagved..

og det samme hvis jeg bare køre yhal.exe - den kan godt køre, men hvis jeg stopper en --sendsms test på...... så kan den ikke.
Avatar billede nielle Nybegynder
17. oktober 2007 - 12:27 #6
Hvis du abre vil køre yhal:

Process.Start("C:\\Program Files\\yhal\\bin>yhal.exe", "--sendsms TEXT '" & phone & "'");
Avatar billede nielle Nybegynder
17. oktober 2007 - 12:28 #7
Ahh, måske er det nopget med stien på yhal:
Process.Start("C:\\Program Files\\yhal\\bin>echo", "| C:\\Program Files\\yhal\\bin\yhal.exe --sendsms TEXT '" & phone & "'");
Avatar billede nielle Nybegynder
17. oktober 2007 - 13:08 #8
Ellers kan du gøre noget i denne stil (i C# versionen):

            ProcessStartInfo psi1 = new ProcessStartInfo("C:\\Program Files\\yhal\\bin>echo");
            psi1.UseShellExecute = false;
            psi1.RedirectStandardOutput = true;

            Process p1 = new Process();
            p1.StartInfo = psi1;
            p1.Start();
            string output = p1.StandardOutput.ReadToEnd();
            p1.WaitForExit();

            ProcessStartInfo psi2 = new ProcessStartInfo("C:\\Program Files\\yhal\\bin>yhal.exe");
            psi2.Arguments = "--sendsms TEXT '" + phone + "'";
            psi2.UseShellExecute = false;
            psi2.RedirectStandardInput = true;

            Process p2 = new Process();
            p2.StartInfo = psi2;
            p2.Start();
            p2.StandardInput.WriteLine(output);
            p2.StandardInput.Close();
            p2.Close();
Avatar billede arne_v Ekspert
18. oktober 2007 - 04:23 #9
For det første er jeg ret sikker på at al ovenstående kode med

...\\bin>noget...

skal være

...\\bin\\noget...
Avatar billede arne_v Ekspert
18. oktober 2007 - 04:27 #10
På Windows mener jeg at | er en egenskab i cmd og at man derfor skal bruge:

Process.Start("cmd", @"/c C:\Program Files\yhal\bin\echo | C:\Program Files\yhal\bin\yhal.exe --sendsms TEXT '" + phone + "'");

eller hvis mellemrummet driller så:

Process.Start("cmd", @"/c ""C:\Program Files\yhal\bin\echo"" | ""C:\Program Files\yhal\bin\yhal.exe"" --sendsms TEXT '" + phone + "'");
Avatar billede nielle Nybegynder
18. oktober 2007 - 08:05 #11
18/10-2007 04:23:37> Ja, selvfølgelig! :^)

Jeg lavede bare lige min egen mockup, men da jeg så ville modifisere den tilbage til echo og yhal.exe gik den åbenbart lige lovlig hurtig med cut'n'pasten. :^|

Forresten? echo er vel den sædvanlige DOS kommando og ikke noget som høre sammen med yhal?
Avatar billede nielle Nybegynder
29. oktober 2007 - 18:27 #12
m_smiszek, har du fået det til at virke?
Avatar billede nielle Nybegynder
06. november 2007 - 17:19 #13
Hvad med noget respons?
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
Kategori
Kurser inden for grundlæggende programmering

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