Verwenden Sie lua os.execute in Windows, um ein Programm ohne CMD-Flash zu starten

8

Ich starte gerne ein Programm in einem Windows-System von Lua mit

%Vor%

Dies funktioniert korrekt und startet das Programm und die Skriptbearbeitung. Wie auch immer es ein Befehlsfenster für einen Bruchteil einer Sekunde aufblitzt, hat irgendjemand einen Weg von Lua, um ein Programm zu starten.

    
Jane T 15.06.2011, 18:58
quelle

3 Antworten

7

Lua os.execute Befehl basiert auf der C-Standard-Bibliothek "Shell" -Funktion. In Windows wird diese Funktion immer ein Befehlsfenster erstellen und den aktuellen Prozess immer anhalten, bis das Fenster fertig ist. Letzteres geschieht auch unter Linux.

Es gibt schließlich keinen Weg um dies herum. Nicht über die Lua Standard API. Da Lua leicht und plattformunabhängig sein muss, darf die API keine systemabhängigen nativen APIs verwenden.

Am besten nutzen Sie das Lua Ex-Api -Modul. Es ist effektiv Abandonware, und Sie müssen möglicherweise ein paar Compiler-Probleme beheben (ich vermute, der Windows-Port war nicht ihre erste Priorität). Aber es ist eine ziemlich gute Möglichkeit, Prozesse zu spawnen. Sie können wählen, ob Sie warten möchten, bis es sich selbst beendet, oder lassen Sie sie parallel laufen. Und es wird kein Eingabeaufforderungsfenster ausgeben, wenn die Anwendung selbst eines verwendet.

    
Nicol Bolas 15.06.2011, 22:41
quelle
1

Dies ist der Code, mit dem ich eine Charge von Lua anrufe, vielleicht Hilfe. In Win Console (Eingabeaufforderung) öffnen und ausführen, gleiches in Unix (Mac | nix)

%Vor%     
Franco Properzi 08.10.2016 11:04
quelle
0

Dies ist eine Möglichkeit, einen Befehl ohne ein Konsolenfenster auszuführen, das nur die Lua-Standard-API verwendet (d. h. keine zusätzlichen Bibliotheken). Getestet auf Win7 x64.

%Vor%

Bearbeiten: Siehe die Kommentare unten, es funktioniert möglicherweise nicht für alle. Ich bin mir nicht sicher warum.

    
Tamás Szelei 15.04.2015 12:57
quelle

Tags und Links