2010-02-22 7 views
3

Je passe des paramètres de start-run à mon application Windows. Ce que j'ai appris, c'est que vous ne pouvez pas dépasser plus de 259 caractères. J'ai une application Windows en C# où je veux passer des arguments. Initialement, j'ai donné comme arguments de ligne de commande, en utilisant l'enviorment.getcommandlineargs, qui a bien fonctionné. Maintenant, le client a fait une nouvelle exigence: au lieu d'aller à l'invite de commande et d'envoyer les arguments, il enverra à partir de la ligne start-run (il n'ira pas à l'invite de commande). Cet exe est constitué de paramètres dont la longueur dépasse 259 caractères.Comment augmenter la taille de la ligne de commande start run pour augmenter la cible

Comment je suis censé faire face dans ce scénario.

+0

Bonne question. Certainement +1 pour cela. – Kangkan

+2

Vous pouvez changer le programme pour accepter seulement 1 argument, qui est le chemin vers un fichier xml qui contient toutes les autres données/options dont il a besoin. –

Répondre

5

Utilisez un fichier de configuration d'application plutôt que des arguments de ligne de commande si vous avez autant d'éléments configurables.

Si nécessaire, vous pouvez toujours accepter l'emplacement du fichier de configuration en tant qu'argument de ligne de commande.

+0

Oui, j'ai expliqué à mon client que ce n'était pas un problème de programmation, mais Windows fonctionne de cette façon. Je lui ai donc demandé de placer tous les arguments dans un bloc-notes (txt) et d'y mettre les arguments. Je viens de lire le fichier txt et faire avancer les choses. – cmrhema

1

La victoire facile ici serait de couper vos longueurs d'argument individuellement. Si vous ne vous attendez pas à ce qu'un utilisateur se souvienne des valeurs d'argument, vous pouvez raccourcir les clés et les valeurs.

par exemple. Si votre application a précédemment pris quelque chose comme myApp.exe myFirstParam=EnableGui mySecondParam=DataHere, vous pouvez facilement raccourcir cela à myApp.exe p1=1 p2=14. Ces paramètres raccourcis peuvent être ajoutés en plus de la version longhnad pour conserver la possibilité de s'exécuter à partir d'une ligne de commande avec des arguments reconnus, mais réduiront le nombre de caractères requis pour les nouveaux paramètres.

Bien sûr, il se peut que vous ne puissiez pas raccourcir les valeurs de vos paramètres, mais des raccourcis peuvent vous aider.

Il est toujours possible d'appeler un fichier .bat/.cmd avec tous les paramètres spécifiés. Cela aurait un effet similaire à la fourniture d'un fichier config xml, mais sans l'exigence de codage supplémentaire (certes triviale).

+0

C'est un simple questionnaire! Je pense que l'attente est d'avoir une solution! – Kangkan

+0

Bien sûr que oui, mais la vie n'est-elle pas une question de solutions simples? Combinez cela avec l'idée du fichier de configuration de Simon P Stevens (pour les choses raisonnablement statiques) et vous pouvez conquérir le monde! – ZombieSheep

1

Votre application est-elle toujours démarrée manuellement? Ensuite, une solution peut être probablement de le convertir en une application WinForms et de montrer à l'utilisateur une boîte de dialogue dans laquelle il peut entrer les paramètres. Si votre programme est démarré parfois manuellement, parfois par programmation, alors la meilleure solution peut être de supporter à la fois: un fichier de paramètres quand il y a un paramètre de ligne de commande fournissant le fichier, et un dialogue quand il n'y en a pas. D'ailleurs, votre utilisateur aura déjà des problèmes en essayant d'entrer plus de 259 caractères dans le Start-Run-Box, il n'accepte pas plus.

+0

Je ne voudrais pas aller aussi loin. Il suffit de créer une application winforms qui l'appelle. Appelez-le interface graphique :) – Brian

+0

Oui, cela peut suffire. Mais pour prendre une décision, le PO aurait dû nous en dire un peu plus sur ce à quoi l'application est destinée. –

Questions connexes