programmazione:msys2:avviare_applicazioni
−Indice
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 <stdio.h> #include <string.h> #include <windows.h> #include <libgen.h> 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 <stdio.h> #include <string.h> #include <windows.h> 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
programmazione/msys2/avviare_applicazioni.txt · Ultima modifica: 08/05/2025 10:02 da 127.0.0.1