我将参数从start-run传递到我的windows应用程序。 我所知道的是你不能传递超过259个字符。 我在C#中有一个Windows应用程序,我想传递参数。 最初我使用enviorment.getcommandlineargs作为命令行参数,它确实成功运行。 现在客户端提出了一个新的要求,即不是进入命令提示符并发送参数,而是从开始运行的行发送(他不会进入命令提示符)。该exe由长度超过259个字符的参数组成。
我应该如何应对这种情况。
答案 0 :(得分:5)
如果您有许多可配置项,请使用应用程序配置文件而不是命令行参数。
如果需要,您始终可以将配置文件位置作为命令行参数接受。
答案 1 :(得分:1)
这里的轻松胜利将是分别削减你的论点长度。如果您不希望用户记住参数值,则可以缩短键和值。
e.g。如果您之前使用myApp.exe myFirstParam=EnableGui mySecondParam=DataHere
之类的应用,则可以轻松将其缩短为myApp.exe p1=1 p2=14
。除了longhnad版本之外,还可以添加这些缩短的参数,以保留从具有已识别参数的命令行运行的能力,但会降低新参数所需的字符数。
当然,您可能无法缩短参数中的值,但较短的键可能会有所帮助。
总是可以选择调用带有指定所有参数的.bat / .cmd文件。这与提供配置xml文件具有类似的效果,但没有(通常是微不足道的)额外的编码要求。
答案 2 :(得分:1)
您的应用程序是否始终是手动启动的?然后解决方案可能是将其转换为WinForms应用程序并向用户显示一个对话框,他可以在其中输入参数。如果您的程序有时是手动启动的,有时是以编程方式启动的,那么最好的解决方案可能是同时支持:当存在提供文件的命令行参数时的参数文件,以及没有的时候的对话框。
顺便说一句,当您尝试在Start-Run-Box中输入超过259个字符时,您的用户已经遇到问题,它不会接受更多。