我有14个参数通过命令行传入。然而,第一个似乎由于某种原因被切断,并没有达成startupeventargs.args。startupeventargs.args数组的限制?
StartupEventArgs e字符串数组的大小是多少?
protected override void OnStartup(StartupEventArgs e)
{
ParseArguments(e.Args);
}
private static void ParseArguments(string[] args)
{
//args[args.Length + 1] = "-sn";
Log.Write("Parsing {0} arguments...", args.Length);
// Parse the command line arguments
for (int i = 1; i < args.Length; i++)
{
//test Log.Write(args[i]);
switch (args[i - 1])
{
case "-sn":
// Parse the show name
ShowName = args[i];
break;
//...
编辑: 它是从C++编写的其他应用调用:
sprintf(szCommandLine, "-sn %n -sd %s -w %d -h %d -t %d -l %d -th %d",
szWebShow, szBaseDir, iWidth, iHeight, iTop, iLeft, threadID);
if(CreateProcess(PLAYWEB_EXE,szCommandLine, NULL, NULL, FALSE,
DETACHED_PROCESS, NULL, NULL, &startInfo, &procInfo)) {
Log(LOGSTR("Web Show Started: %s ", szCommandLine));
命令行: (路径.EXE)-sn “M000018 \ 33.9999-2815-8-WS001” -sd C:在C#\播放器\ Shows2 -w 1280个-h 720 -t 0 -l第0 1
检查您访问的第一个项目是这样的:'e.Args [0 ]'(因为数组是基于零)或在foreach循环内 – WerWet
我添加了我如何解析它 – john
显示如何从命令行调用它,是否像缺少引号那样简单? – tony