Barra laterale

programmazione:c:lanciare_eseguibile_windows_senza_prompt_dos

Lanciare eseguibile windows senza prompt dos

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 ;
}

Compilazione (crosscompilazione su Gnu/Linux)

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

programmazione/c/lanciare_eseguibile_windows_senza_prompt_dos.txt · Ultima modifica: 18/04/2018 - 15:49 (modifica esterna)