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

  1. Exec: exécute simplement la chaîne appelée, que ce soit une application, une console ou un fichier.

  2. ExecWait: Exécute comme Exec mais attend la fin du processus.

  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. nsExec::Exec attendre la sortie du processus enfant?

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

  6. nsExec::ExecToStack: La documentation dit ExecToStack est similaire à la plaine nsExec mais il pousse la sortie vers la pile. Je le conçois.

  7. ExecDos: identique à nsExec::ExecToStack mais 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.

  8. ExecCmd: identique à ExecDos mais il n'a pas besoin de ces

    ExpandEnvStrings  %COMSPEC% 
    ExecDos::exec  /C 
    

    les pièces. ai-je raison?

42
demandé sur Rod 2012-07-29 15:15:55

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

40
répondu Anders 2012-07-29 14:56:16

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

3
répondu ewerybody 2015-02-06 12:01:45