windows - intempestives - bloquer fenetre pop up android



comment éviter popup une fenêtre lors de l'utilisation os.execute dans lua (2)

J'utilise os.execute() pour appeler un autre programme dans Lua, quand le programme est lancé, les fenêtres de cmd apparaîtront pour un clignotement, et j'appelle l'exécution plus de cent fois, et cela devient agaçant. Alors, y a-t-il un moyen de rendre la fenêtre invisible?

https://ffff65535.com


La réponse courte a été donnée par hjpotter dans un commentaire: non, vous ne pouvez pas .

Une explication plus longue suit.

Sur les fichiers exécutables Windows, il existe deux versions: les applications graphiques et les applications en ligne de commande . Cela n'a rien à voir avec les fonctionnements internes du programme, mais cela dépend de la façon dont le programme a été construit (il y a un drapeau pour cela dans l'en-tête PE exécutable qui peut être défini en utilisant une option linker). C'est le système d'exploitation qui affiche automatiquement une fenêtre de console (la "boîte noire laide") lorsqu'une application de ligne de commande est exécutée.

Le problème avec os.execute est qu'il utilise la fonction du system C sous le capot , qui à son tour est probablement implémentée en exécutant l'exécutable cmd.exe shell de commande Windows, qui est une application en ligne de commande. Ainsi, chaque fois que vous utilisez os.execute vous exécutez en effet cmd.exe . Cette boîte noire est la fenêtre de la console associée à l'exécution de cmd.exe .


Personnellement, je n'étais pas satisfait de la réponse «Non, vous ne pouvez pas» et étant le type de type ingénieur qui doit juste «résoudre ce problème», j'ai été en mesure de faire fonctionner les choses en utilisant WScript.Shell:

Shell = luacom.CreateObject("WScript.Shell")
Shell:Run (command, 0)

Le "0" est utilisé pour supprimer le popup. http://msdn.microsoft.com/en-us/library/d5fk67ky%28v=vs.84%29.aspx





lua