ฉันกำลังพยายามสร้างกระบวนการบนเครื่องระยะไกลโดยใช้คลาส System.Diagnostics.Process ฉันสามารถสร้างกระบวนการ แต่ปัญหาคือการสร้างบริการใช้เวลานานและหน้าต่างคอนโซลจะปรากฏขึ้น สิ่งที่น่ารำคาญอีกอย่างคือหน้าต่างคอนโซลแสดงอยู่ด้านบนของฟอร์ม windows ของฉันและฉันไม่สามารถดำเนินการอื่นใดในแบบฟอร์มนั้นได้ ฉันได้ตั้งค่าคุณสมบัติทั้งหมดเช่นCreateNoWindow = true
,
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
แต่ยังคงแสดงหน้าต่างคอนโซล แม้ว่าฉันจะเปลี่ยนเส้นทางเอาต์พุตและข้อผิดพลาดไปยังสตรีมแยก แต่ไม่มีโชค
มีวิธีอื่นในการซ่อนหน้าต่างคอนโซลหรือไม่? กรุณาช่วยฉันออกไป .
นี่คือส่วนของรหัสของฉันที่ฉันใช้ในการรันคำสั่ง sc
Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = "sc";
proc.StartInfo.Arguments = string.Format(@"\\SYS25 create MySvc binPath= C:\mysvc.exe");
proc.StartInfo.RedirectStandardError = false;
proc.StartInfo.RedirectStandardOutput = false;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
proc.StartInfo.RedirectedStandardOutput = true
หรือยัง? ฉันได้รับสิ่งนี้เพื่อทำงานกับแอปพลิเคชัน Windows