У меня есть приложение Windows, которое принимает аргументы, и я использую его, чтобы настроить поведение окна.
проблема в том, что мне нужно передать текст в некоторые из этих аргументов, но мое приложение рассматривает его как несколько аргументов, поэтому это:
"http://www.google.com/" contact 450 300 false "Contact Info" true "Stay Visible" true
на самом деле имеет аргументы 11 вместо ожидаемого 9.
Каков трюк, чтобы "Контактная информация" и "оставаться на виду" передавались только как один аргумент?





Вы запускаете его прямо из командной строки? Если так, я ожидал, что это сработает нормально. (Кстати, я предполагаю, что вы используете параметры из метода 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.
@ Майкл: У меня была программа, но она была на другом компьютере. Мне пришлось ответить + отредактировать, чтобы все было там :)
На самом деле я передавал \ "Оставайтесь на связи \" :( - Я использовал копирование / вставку в параметрах сборки ... возможно, поэтому в iPhone нет функции копирования (вставки;) Спасибо, Джон.
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]);
}
}
}
Как вы выполняете свою заявку?
Если вы запустите его из другого приложения, возможно, вы забыли правильно отформатировать строку аргумента:
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
Джон, который обманывает ... входит первым :-), но дает только половину ответа в первый раз :-)