Question

J'ai une application console (écrite en VB6) qui se comporte étrangement sur ma machine. Je le lance depuis la ligne de commande et ce qui devrait être un travail de deux minutes revient directement à l'invite - si je l'exécute sur une autre machine, l'exécutable reste en attente et attend jusqu'à ce que le travail se termine avant de retourner le contrôle à l'invite. Si je vérifie l’explorateur de processus, je peux voir que l’exécutable s’exécute en tant que processus en arrière-plan et que cet étrange arrière-plan s’exécute comme prévu.

Avez-vous une idée de la raison pour laquelle cela pourrait se produire? (Sous Windows XP Pro SP3 32 bits.)

Était-ce utile?

La solution

Il me semble que l'application n'est pas reconnue comme une application de console sur l'une de vos machines. Les applications de console n’étaient pas officiellement prises en charge dans VB6, bien qu’il existe certaines méthodes bien connues pour les créer (en particulier le complément gratuit vbAdvance ). Peut-être que votre application console est un peu peu fiable? Si Windows pense que votre application est une interface graphique plutôt qu'une application pour console, elle n'attendra pas qu'elle se termine.

Pour contourner le problème pragmatique, essayez de le lancer avec démarrer / attendre . plutôt que de simplement utiliser le exename. Cela force l'invite de commande à attendre la fin du programme, qu'il s'agisse d'une application graphique ou d'une application console.

Autres conseils

On ignore totalement s'il s'agit d'une application pour laquelle vous avez écrit le code source. Si c'est le cas, vous devez entrer et commencer le débogage. Au minimum, utilisez OutputDebugString pour envoyer des informations sur ce qui se passe. sur un nombre quelconque de téléspectateurs potentiels. Pour aller plus loin, envisagez de recâbler l'application à l'aide du module de console que j'ai écrit, ainsi que < un href = "http://vb.mvps.org/tools/vbAdvance" rel = "nofollow noreferrer"> vbAdvance à recompiler. Cette combinaison vous permettra de déboguer toute la puissance de l'EDI VB6. Plus besoin de deviner ce qui se passe.

Encore une fois, si ce n'est pas votre application, je ne sais pas ce que VB6 a à voir avec cela et je vous souhaite la meilleure des chances pour essayer de comprendre ce qui se passe.

On dirait qu'une erreur est en train d'être "avalée" par l'application. Avez-vous le code source?

Les erreurs dans les applications VB6 sont souvent dues à des composants COM non installés et / ou enregistrés.

Téléchargez le Moniteur de processus SysInternals pour afficher les accès à Les ProgID qui échouent (composants COM désinstallés / non enregistrés).

Vérifier: Process Monitor - Travaux pratiques et exemples .

Avez-vous vérifié les autorisations? L'application accède-t-elle à des ressources réseau?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top