Apabila menggunakan kelas System.Diagnostics.Process untuk mencipta proses pada mesin jauh, adalah wajar untuk mengelakkan paparan tetingkap konsol. Walau bagaimanapun, menetapkan sifat CreateNoWindow dan WindowStyle mungkin tidak selalu mencukupi.
Satu penyelesaian yang mungkin berpunca daripada interaksi antara sifat UseShellExecute dan tetapan yang dinyatakan di atas. Mengikut dokumentasi MSDN:
Jika sifat UseShellExecute adalah benar atau sifat UserName dan Kata Laluan tidak batal, nilai sifat CreateNoWindow diabaikan dan tetingkap baharu dicipta.
Oleh itu, pastikan bahawa UseShellExecute ditetapkan kepada palsu adalah penting untuk penindasan tetingkap yang berkesan. Contoh kod berikut menunjukkan pendekatan ini:
ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = fullPath; startInfo.Arguments = args; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; Process processTemp = new Process(); processTemp.StartInfo = startInfo; processTemp.EnableRaisingEvents = true; try { processTemp.Start(); } catch (Exception e) { throw; }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyembunyikan Tetingkap Konsol Apabila Memulakan Proses dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!