2016-04-08 5 views
1

J'ai un fichier .exe sur Windows (application Electron) qui se bloque lorsque je le lance en double-cliquant, mais fonctionne très bien si je le lance à partir de l'invite cmd ou un fichier .bat. Qu'est-ce que tout peut être différent?Comment exécuter un fichier .exe à partir de cmd est-il différent d'un double-clic?

Encore une fois, il s'agit d'une application basée sur l'électronique d'un projet sur lequel je travaille actuellement.

+0

Pourquoi ne pas attacher un débogueur à l'explorateur de fichiers, et voir où il se bloque? Il s'agit probablement d'une extension coquine qui devient gênante (et qui n'est pas lancée à partir de l'invite de commande). – IInspectable

+0

première chose qui me vient à l'esprit est le dossier de travail. – Stephan

+0

Oui, j'ai exclu le dossier de travail en marchant dans le lecteur C racine à partir de cmd et le lancement, mais cela fonctionne toujours dans ce cas. – Cliff

Répondre

2

J'ai compris (avec l'aide d'un collègue plutôt intelligent) quelle est la différence. Dans mon application Electron, nous avons des appels console.log qui se passent dans un processus forké. Lorsqu'ils sont exécutés à partir du fichier .exe, ces appels tentent d'écrire dans stdout qui n'est pas disponible. L'ajout d'une redirection dans le code pour rediriger la sortie vers le système de fichiers résout le problème.

0

J'ai obtenu EXCEPTION_ACCESS_VIOLATION en double-cliquant sur un programme que j'ai fait, mais ça fonctionne bien depuis cmd. Si je fais un clic droit et que je cours en tant qu'administrateur, cela fonctionne aussi.

Je n'ai aucune idée de ce qui rend un programme exigeant une bonne administration, parfois, ce n'est pas le cas. D'après mon expérience, cela dépend du code ou du compilateur, mais je ne peux pas donner plus de détails que cela.