Salve, il mio obbiettivo è di avviare un processo ( un .exe esterno ) ma che non sia visibile, cioè in modalità hidden. Ho già provato due "comandi", non so se si chiamino così, se no correggetemi che sono alle prime armi:
Voglio avviare ad esempio Chrome, in modo che non sia visibile al mio pc, ho creato per ora un collegamento di chrome nella cartella del mio progetto e ho provato due tipi di comandi:
Il primo è ShellExecute e il secondo CreateProcess:
Per il primo ho fatto così:
codice:
int main(){
ShellExecute(NULL,"open","chrome.exe",NULL,NULL,SW_HIDE);
}
Non riuscendo a comprendere o non sapendo cosa mettere in vari campi ho lasciato NULL.
Questo comando avvia correttamente il programma ma non in nascosto, anche se ho inserito la flag hide alla fine. Non capendo il motivo provo con un altro programma, questa volta il caro blocco note (un file .txt) e con questo ci riesco, ovvero noto il notepad.exe nei processi ma non è visibile la finestra.
Quindi googlo un po' e oltre a trovare un sacco di codici strani che anche copia-incollando nel mio codeblocks non funzionano per qualche strano errore del compilatore provo a scrivere il comando CreateProcess; leggendo i parametri dal sito della microsoft e capendo ben poco mi esce fuori questo:
codice:
int main(){
CreateProcess("ciao.txt",NULL,NULL,NULL,FALSE,NULL,NULL,NULL,NULL,NULL);
}
Buona parte dei parametri, anzi quasi tutti in realtà, non li ho ben compresi o comunque non credevo fossero rilevanti per il semplice test che ho intenzione di fare. Premo F9 e il compilatore avvia il programma senza errori, non so perché però il programma crasha subito dopo dandomi "Main.exe ha smesso di funzionare" e nella console ritorna il codice errore : 0xC0000005
Credo che molto probabilmente sia dovuto alla scarsità dei parametri, alcuni forse non così irrilevanti oppure completamente sbagliati...
Se non si è capito sono veramente agli esordi del C++..