передача аргументов (аргументов) в приложение формы окна - PullRequest
3 голосов
/ 21 января 2009

У меня есть приложение Windows, которое принимает аргументы, и я использую его для настройки поведения окна

Проблема в том, что мне нужно передать текст в некоторых из этих аргументов, но мое приложение рассматривает его как несколько аргументов, поэтому:

"http://www.google.com/" contact 450 300 false "Contact Info" true "Stay Visible" true

имеет фактически 11 аргументов вместо 9 , которые я ожидаю.

Какой способ получить "контактную информацию" и "оставаться видимым" для передачи только одного аргумента?

Ответы [ 3 ]

6 голосов
/ 21 января 2009

Вы запускаете его прямо из командной строки? Если так, я ожидаю, что это будет работать нормально. (Я полагаю, вы используете параметры из метода Main, кстати?)

Например, вот небольшое тестовое приложение:

using System;

class Test
{
    static void Main(string[] args)
    {
        foreach (string arg in args)
        {
            Console.WriteLine(arg);
        }
    }
}

Исполнение:

>test.exe first "second arg" third
first
second arg
third

Это консольное приложение, но между ним и WinForms нет никакой разницы в том, что передается методу Main.

2 голосов
/ 21 января 2009

MSDN говорит , что это должно работать так, как вы упомянули.

class CommandLine
{
    static void Main(string[] args)
    {
        // The Length property provides the number of array elements
        System.Console.WriteLine("parameter count = {0}", args.Length);

        for (int i = 0; i < args.Length; i++)
        {
            System.Console.WriteLine("Arg[{0}] = [{1}]", i, args[i]);
        }
    }
}
0 голосов
/ 21 января 2009

Как вы выполняете свою заявку?
Если вы запустите его из другого приложения, вы можете забыть правильно отформатировать строку аргумента:

String arguments = "First \"Sec ond\" Third Fourth \"Fi fth\""

будет иметь пять аргументов, тогда как

String arguments = "First Sec ond Third Fourth Fi fth"

будет иметь семь.

Если аргументы находятся в целевом свойстве ярлыка, то применяется то же самое:

"C:\My Path\MyApplication.exe" "Argument 1" Argument2 Argument3 "Argument 4"

вместо

"C:\My Path\MyApplication.exe" Argument 1 Argument2 Argument3 Argument 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...