Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Perkhidmatan Windows Melaksanakan Fail EXE Luaran?
Melaksanakan Program EXE daripada Perkhidmatan Windows dalam C#
Menjalankan program EXE dari dalam Perkhidmatan Windows menggunakan C# memerlukan pertimbangan yang teliti kerana batasan yang wujud.
Masalah Pernyataan
Percubaan untuk melancarkan program EXE menggunakan System.Diagnostics.Process.Start() daripada Perkhidmatan Windows mungkin gagal. Kod yang disediakan dalam soalan menunjukkan isu ini:
System.Diagnostics.Process.Start(@"E:\PROJECT XL\INI SQLLOADER\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe");
Penjelasan Masalah
Perkhidmatan Windows beroperasi dalam sesi terpencil, menghalang mereka daripada berinteraksi dengan pengguna atau desktop. Sekatan ini melarang mereka daripada melaksanakan aplikasi yang memerlukan interaksi pengguna atau akses kepada desktop.
Pertimbangan
Penyelesaian
1. Gunakan Aplikasi Windows Standard:
Pindahkan pelaksanaan kod ke aplikasi Windows standard (cth. Windows Forms, WPF, Console). Ini membolehkan aplikasi berjalan di bawah konteks pengguna semasa dan berinteraksi dengan desktop.
2. Sekat Penciptaan Tetingkap:
Ubah suai kod aplikasi Console untuk menyekat penciptaan tetingkap Console. Ini boleh dicapai dengan menambahkan CreateNoWindow pada pilihan ProcessStartInfo:
ProcessStartInfo psi = new ProcessStartInfo() { FileName = @"E:\PROJECT XL\INI SQLLOADER\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe", CreateNoWindow = true }; System.Diagnostics.Process.Start(psi);
Sumber Tambahan:
Atas ialah kandungan terperinci Bagaimanakah Perkhidmatan Windows Melaksanakan Fail EXE Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!