Saya mencoba untuk membuat proses pada mesin jarak jauh menggunakan kelas System.Diagnostics.Process. Saya bisa membuat proses. Namun masalahnya, membuat layanan memakan waktu lama dan jendela konsol ditampilkan. Hal lain yang mengganggu adalah jendela konsol ditampilkan di atas formulir jendela saya dan saya tidak dapat melakukan operasi lain pada formulir itu. Saya telah mengatur semua properti seperti CreateNoWindow = true
,
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
tapi tetap saja itu menunjukkan jendela konsol. bahkan saya telah dialihkan keluaran dan kesalahan untuk memisahkan aliran tetapi tidak berhasil.
Apakah ada cara lain untuk menyembunyikan jendela Konsol? Tolong bantu saya.
Berikut adalah bagian dari kode saya yang saya gunakan untuk menjalankan perintah 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();
c#
process
console-application
Prasad
sumber
sumber
proc.StartInfo.RedirectedStandardOutput = true
? Saya mendapatkan ini untuk bekerja dengan Aplikasi Windows.UseShellExecute
danCreateNoWindow
dua kali?Jawaban:
Saya mengalami masalah serupa saat mencoba memulai proses tanpa menampilkan jendela konsol. Saya menguji dengan beberapa kombinasi berbeda dari nilai properti sampai saya menemukan satu yang menunjukkan perilaku yang saya inginkan.
Berikut adalah halaman yang menjelaskan mengapa
UseShellExecute
properti harus disetel ke false.http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.createnowindow.aspx
Di bawah bagian Keterangan di halaman:
sumber
startInfo.UseShellExecute = false;
Saya kurang beruntung dengan jawaban ini, dengan proses (Wix light.exe) pada dasarnya pergi keluar untuk makan siang dan tidak pulang tepat waktu untuk makan malam. Namun, berikut ini bekerja dengan baik untuk saya:
sumber
CreateNoWindow = true
tidak berhasil untuk saya, ini berhasil :)Ini harus berhasil, coba;
Tambahkan Referensi Sistem.
Kemudian gunakan kode ini untuk menjalankan perintah Anda di jendela CMD tersembunyi.
sumber
Ini tidak menunjukkan jendela:
sumber