Exec vs ExecWait vs ExecShell vs nsExec:: Exec vs nsExec:: ExecToLog vs nsExec:: Exectotack vs ExecDos vs ExeCmd
puis-je savoir quelles sont les différences entre chaque Exec,ExecWait, ExecShell,nsExec::Exec,nsExec::ExecToLog,nsExec::ExecToStack,ExecDos et ExecCmd, comme quand les utiliser?
j'ai posté les différents appels exécutez que je connais. J'essaie de dresser une liste exhaustive pour aider les futurs visiteurs..
Exec: exécute simplement la chaîne appelée, que ce soit une application, une console ou un fichier.ExecWait: Exécute commeExecmais attend la fin du processus.ExecShell:c'est pour Quoi?nsExec::Exec: commeExecouExecWaitmais seulement pour l'invite de commande et que trop sans ouvrir la fenêtre de la console. Je ne suis pas sûr s'il attend pour le processus de sortie.nsExec::Execattendre la sortie du processus enfant?nsExec::ExecToLog:The documentation says ExecToLogest similaire à la plainensExecmais il sort pour enregistrer fenêtre. Qu'est-ce à dire, qu'est ce qu'une fenêtre de log?nsExec::ExecToStack: La documentation ditExecToStackest similaire à la plainensExecmais il pousse la sortie vers la pile. Je le conçois.ExecDos: identique ànsExec::ExecToStackmais il en plus (Est-il pas?)A. prend le paramètre string qui sert de stdin pour exécuter l'application.
B. fonctionne en sync / async mode.
c. il fonctionne de la section .onInit sorties de contrôle.
ExecCmd: identique àExecDosmais il n'a pas besoin de cesExpandEnvStrings %COMSPEC% ExecDos::exec /Cles pièces. ai-je raison?
2 réponses
1) 2) 3)
Exec et ExecWait utiliser CreateProcess à l'interne et ne peut lancer que des programmes et des fichiers par lots.
ExecShell Shellexécute ce qui signifie qu'il peut également lancer n'importe quel type de fichier enregistré (.txt .chm etc) et URLs. Il doit également être utilisé si le programme que vous démarrez doit s'élever avec UAC.
4)
nsExec redirige stdout donc une fenêtre de console n'est pas visible lorsque le processus enfant s'exécute. Et oui, il attend.
5)
la fenêtre de log sur la page instfiles.
7)
Oui, ExecDos et ExecCmd sont des versions plus avancées de nsExec.
8)
Correct
ExecWait attend et peut donc retour trucs! docs.
ExecShell est aussi capable de masquer la fenêtre de sortie. docs
ExecCmd est considéré comme dépassé et remplacé par ExecDos. les deux sont des plugins supplémentaires pour les ins qui ne sont pas livrés par défaut. docs