Autore: Fabio Di Matteo
Ultima revisione: 25/03/2013
Ecco come lanciare un eseguibile windows da un nostro programma senza che la finestra dell'interprete dei comandi faccia la sua comparsa. Useremo la funzione CreateProcess .
start.c
#include <stdio.h> #include <windows.h> int main(int argc, char* argv[] ) { STARTUPINFO info={sizeof(info)}; PROCESS_INFORMATION processInfo; if (CreateProcess(NULL, "./bin/mytest.exe", NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &info, &processInfo)) { MessageBox( NULL, "Creazione processo con successo", "Informazione", MB_OK | MB_ICONINFORMATION| MB_TASKMODAL); CloseHandle(processInfo.hProcess); CloseHandle(processInfo.hThread); }else { MessageBox( NULL, "Creazione del processo fallita!", "Attenzione", MB_OK | MB_ICONERROR| MB_TASKMODAL); } return 0 ; }
E' nessario informare il compilatore che l'eseguibile sara' un'applicazione grafica per windows quindi dobbiamo aggiungere alle opzioni i flags -mwindows -mms-bitfields .
i586-mingw32msvc-gcc -mwindows -mms-bitfields -static-libgcc -static-libstdc++ start.c -o start.exe
Il nostro wiki installa solamente cookie tecnici necessari al funzionamento della piattaforma "Dokuwiki". Niente analitics, statistiche, tracciamenti o altro.