Skjul CMD vindue når mit C# program udfører en CMD process

Tags:    c# cmd programmering

Hej alle sammen

Jeg har et program skrevet i C#. Dette program er en windows service, der skal udføre nogle ting via kommandoprompten (CMD), f.eks. hver time. Mit problem er at CMD vinduet er synligt i meget kort tid (under et sekund), når mit program udfører det den skal med CMD. Er der en mulighed hvor CMD vinduet overhovedet ikke vises, men stadig kan bruges af mit program?

Jeg har forsøgt mig med følgende
Fold kodeboks ind/udCSharp kode 

Men det ser ikke ud til at virke, da CMD stadig er synligt et meget kort stykke tid (det lille sekund eller mindre hvor den udfører det den skal).

Håber at nogle skarpe .NET hjerner kan hjælpe mig ud af dette 'mindre' problem.



5 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 25 karma
Sorter efter stemmer Sorter efter dato
Det kan man sagtens, har selv gjort det mange gange. Du skal også have parameteren .CreateNoWindow = true;
Så skulle det køre. Du kan også overveje om du skal redirecte standard output til din service, så du kan se output fra kommandoen.



Det program du skal have afviklet hver time, er det et du selv har skrevet? For så er det net nok faktisk og mener også at hvis du afviklede et program fra en commandopromt kan du give en -v eller lign. Kommando til at skjule det program der afvikles.
Men nu når din service afvikler det og det ikke selv er et cmd program er det måske sværere.

Måske muligt at lave det som planlagt job og afvikle cmd programmet med parametre?



Programmet jeg afvikler via CMD er en mysqldump. Problemet er ikke at jeg kan se outputtet i CMD, problemet er at vinduet med CMD kommer frem.



Tak, det virker nu

Jeg løste det ved at sætte UseShellExecute til false og CreateNoWindow til true. Så vidt jeg kunne læse ville CreateNoWindow når den var true ikke virke hvis UseShellExecute var lig med true. Koden ville se således ud
Fold kodeboks ind/udCSharp kode 




t