Cara Memulakan Fail .exe dari .exe Lain Menggunakan C
Ramai pengaturcara menghadapi cabaran untuk melancarkan fail .exe dari dalam satu lagi fail .exe dalam aplikasi C mereka. Ini boleh menjadi ciri yang berguna untuk pelbagai tugas, seperti membuka aplikasi pembantu atau memulakan proses luaran.
Masalahnya
Kesilapan biasa semasa cuba membuka Fail .exe menggunakan fungsi system(). Walaupun kaedah ini kelihatan mudah, ia mempunyai beberapa kelemahan, termasuk penggunaan sumber yang tinggi, potensi risiko keselamatan dan isu keserasian dengan program antivirus.
Penyelesaian: CreateProcess()
Pendekatan yang lebih dipercayai dan cekap ialah menggunakan fungsi CreateProcess(). Fungsi ini membolehkan anda mencipta proses baharu dan melaksanakan fail .exe yang ditentukan.
Kod Contoh
Berikut ialah contoh cara menggunakan CreateProcess() untuk membuka Fail .exe:
<code class="cpp">#include <windows.h> void startup(const char* lpApplicationName) { // Structures for process and startup information STARTUPINFO si = { sizeof(si) }; PROCESS_INFORMATION pi = { 0 }; // Create the process BOOL success = CreateProcess( lpApplicationName, NULL, // Command line arguments NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE 0, // No creation flags NULL, // Use parent's environment block NULL, // Use parent's starting directory &si, &pi ); // If process creation failed, handle the error if (!success) { DWORD error = GetLastError(); // Handle the error here } // Close process and thread handles CloseHandle(pi.hProcess); CloseHandle(pi.hThread); }</code>
Mengendalikan Ralat
Fungsi CreateProcess() mengembalikan TRUE jika berjaya, dan FALSE sebaliknya. Jika gagal, anda boleh mendapatkan semula kod ralat menggunakan fungsi GetLastError().
Menyelesaikan masalah
Jika anda menghadapi sebarang ralat semasa menggunakan kaedah ini, pastikan:
Atas ialah kandungan terperinci Cara Melancarkan Satu Fail .exe dari Satu lagi .exe Menggunakan C : Panduan untuk CreateProcess() dan Selain itu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!