49 votes

Exec vs ExecWait vs ExecShell vs nsExec :: Exec vs nsExec :: ExecToLog vs nsExec :: ExecToStack 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 dans à utiliser?

J'ai posté les différents exécuter des appels que je sais. Je suis en train de faire une liste exhaustive, de sorte qu'il aide les futurs visiteurs..

  1. Exec: Simplement exécuter le appelé la chaîne, que ce soit une application, une console ou un fichier.

  2. ExecWait: Exécute comme Exec mais attend jusqu'le processus s'arrête.

  3. ExecShell: C'est pour quoi?

  4. nsExec::Exec: Comme Exec ou ExecWait mais 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. N' nsExec::Exec d'attente pour le processus enfant à la sortie?

  5. nsExec::ExecToLog: The documentation says ExecToLog est similaire à la plaine de nsExec mais elle renvoie à la fenêtre de log. Qu'est-ce à dire, qu'est ce qu'une fenêtre de log?

  6. nsExec::ExecToStack: La documentation, dit - ExecToStack est similaire à la plaine de nsExec , mais il repousse la sortie de la pile. Je le conçois.

  7. ExecDos: Comme nsExec::ExecToStack mais il en plus (n'Est-il pas?)

    un. prend en paramètre de chaîne qui sert de stdin pour l'exécution de l'application.

    b. fonctionne dans les deux sync/async mode.

    c. il fonctionne de la section - pour .onInit sorties de contrôle.

  8. ExecCmd: Comme ExecDos , mais il n'a pas besoin de ces

    ExpandEnvStrings $3 %COMSPEC% 
    ExecDos::exec  /C 
    

    pièces. Suis-je la corriger?

45voto

Anders Points 34448

1) 2) 3)

Exec et ExecWait utiliser la fonction CreateProcess en interne et ne peut démarrer des programmes et des fichiers de commandes.

ExecShell utilise ShellExecute qui signifie qu'il peut également lancer n'importe quel type de fichier enregistré (.txt .chm, etc) et les Url. Il devrait également être utilisé si le programme que vous êtes en commençant doit élever avec l'UAC.

4)

nsExec redirige stdout donc une fenêtre de console n'est pas visible lorsque l'enfant exécution d'un processus. Et oui, il attend.

5)

La fenêtre de log sur le instfiles page.

7)

Oui, les deux ExecDos et ExecCmd sont plus avancés versions de nsExec.

8)

Correct

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X