====== 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