Membuka Fail .exe daripada C Menggunakan CreateProcess()
Apabila bertujuan untuk melancarkan fail .exe daripada C .exe yang lain, fungsi system() biasanya tidak digalakkan kerana potensi kelemahannya yang berkaitan dengan keselamatan, kecekapan dan keserasian antivirus.
Sebaliknya, pertimbangkan untuk menggunakan fungsi CreateProcess(), yang membolehkan anda menghasilkan proses baharu untuk melaksanakan sasaran .exe fail secara bebas. Berikut ialah contoh yang menunjukkan penggunaannya:
<code class="c++">#include <windows.h> VOID startup(LPCTSTR lpApplicationName) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); CreateProcess(lpApplicationName, argv[1], NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); }</code>
Lepaskan laluan mutlak ke fail .exe sebagai hujah lpApplicationName untuk fungsi ini.
Menyelesaikan Masalah Kod Sebelumnya
Dalam kod asal anda menggunakan system(), ralat yang anda hadapi mungkin berpunca daripada kekurangan laluan ke OpenFile.exe. Pastikan fail .exe yang ditentukan wujud dalam laluan yang anda berikan kepada system() atau CreateProcess().
Atas ialah kandungan terperinci Bagaimana untuk Melancarkan Fail .exe dari C .exe Lain Menggunakan CreateProcess()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!