Dans ce guide, nous explorerons comment ouvrir un fichier exécutable (.exe) à partir d'un autre exécutable C.
Avant d'approfondir la solution, il est crucial de souligner les dangers liés à l'utilisation de system() fonction. System() présente plusieurs inconvénients :
Au lieu de system(), nous vous recommandons d'utiliser la fonction CreateProcess(). Cette fonction vous permet de lancer un fichier exécutable, créant un processus indépendant.
#includeVOID startup(LPCTSTR lpApplicationName) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); CreateProcess( lpApplicationName, // executable path argv[1], // command line NULL, // process handle not inheritable NULL, // thread handle not inheritable FALSE, // no handle inheritance 0, // no creation flags NULL, // parent's environment block NULL, // parent's starting directory &si, // STARTUPINFO structure &pi // PROCESS_INFORMATION structure ); // Close process and thread handles. CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); }
L'erreur que vous avez rencontrée provient probablement du fait que vous n'avez pas spécifié le chemin complet du fichier exécutable. Assurez-vous de fournir le chemin complet, y compris le nom du fichier.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3