====== Avviare applicazioni msys2 da Windows ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **// 26/11/2018 - 10:59 //** // // Creare un collegamento o uno script con il seguente comando: msys2_shell.cmd -mingw64 -c /c/mia_cartella/mioprogramma.exe **-mingw64** indica che vogliamo l'ambiente di sviluppo a 64 bit; ===== Non visualizzare la finestra nera del terminale ===== Per far in modo da non visualizzare la finestra del terminale mi sono servito di un collegamento Windows che lancia un apposito script python che lancia a sua volta finalmente l'eseguibile. \\ \\ **Il testo da inserire nel collegamento** C:\msys64\usr\bin\mintty.exe -w hide /bin/env MSYSTEM=MINGW64 /bin/bash -lc /home/Admin/mioprog.exe \\ \\ ===== Script grafici con altri interpreti ===== ==== Python ==== C:\msys64\usr\bin\mintty.exe -w hide /bin/env MSYSTEM=MINGW64 /mingw64/bin/python3 /c/path/to/miotest.py oppure creare un eseguibile con questo codice: #include #include #include #include int main(int argc, char** argv) { char cmd[200]; char* msys2= "\\usr\\bin\\mintty.exe -w hide /bin/env MSYSTEM=MINGW64 /mingw64/bin/python3 " ; sprintf ( cmd, "%s%s%s", dirname(argv[0]),msys2,argv[1] ); STARTUPINFO info={sizeof(info)}; PROCESS_INFORMATION processInfo; if (CreateProcess(NULL, cmd, NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &info, &processInfo)) { CloseHandle(processInfo.hProcess); CloseHandle(processInfo.hThread); }else { MessageBox( NULL, "Creazione del processo fallita!", "Attenzione", MB_OK | MB_ICONERROR| MB_TASKMODAL); } return 0; } **makefile** all: gcc run.c -mwindows -o runmsys2 ===== Creare un lanciatore per le nostre applicazioni ===== ==== C ==== **run.c** #include #include #include int main(int argc, char** argv) { char cmd[200]; char* msys2= "C:\\msys64\\usr\\bin\\mintty.exe -w hide /bin/env MSYSTEM=MINGW64 /bin/bash -lc " ; sprintf ( cmd, "%s%s", msys2,argv[1] ); STARTUPINFO info={sizeof(info)}; PROCESS_INFORMATION processInfo; if (CreateProcess(NULL, cmd, NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &info, &processInfo)) { CloseHandle(processInfo.hProcess); CloseHandle(processInfo.hThread); }else { MessageBox( NULL, "Creazione del processo fallita!", "Attenzione", MB_OK | MB_ICONERROR| MB_TASKMODAL); } return 0; } **makefile** all: gcc run.c -mwindows -o runmsys2 Se si vuole creare un avviatore per script grafici basta sostituire il contenuto della variabile ''char* msys2'' con la stringa adatta a caricare l'interprete per script grafici (vedi su). ==== File .bat ==== @echo off start /B C:\msys64\usr\bin\mintty.exe -w hide /bin/env MSYSTEM=MINGW64 /bin/bash -lc /c/Users/Admin/Desktop/test/myscript.py ==== File .vbs ==== Set oShell = CreateObject ("Wscript.Shell") Dim strArgs strArgs = "C:\msys64\usr\bin\mintty.exe -w hide /bin/env MSYSTEM=MINGW64 /bin/bash -lc /c/Users/Admin/Desktop/test/myscript.py" oShell.Run strArgs, 0, false