Всем привет... Думаю многие начинали писать с консольных приложений
С начала код выглядит вот так (подключение директив я опущу)
Код:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}
Так вот, сейчас я вам расскажу что это за массив
Код:
string[] args
Для того чтобы объяснить напишем немного кода
Код:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.Write("Количество аргументов: "+ args.Length);
foreach (var s in args)
{
Console.Write("\n"+s);
}
Console.ReadKey();
}
}
}
И нажимаем F5, и видим
[Ссылки могут видеть только зарегистрированные пользователи. ]
Сейчас - аргументов нет, но мы это исправим.
Ищем папку с проектом, и находим папку с ехе - шником, и в ней создаём bat файл следующего содержания
т.к. у bat - ов проблемы с юникодом все аргументы на английском
[Ссылки могут видеть только зарегистрированные пользователи. ]
и запустим его, в результате получим
[Ссылки могут видеть только зарегистрированные пользователи. ]
Так мы можем скидывать любую информацию в exe, допустим проассоциировать с типом файлом
Конечно можно писать и без '-', но дело в том что если в слове присутствует пробел, то это два разных аргумента
Это возможно и в форме, вот только нужно немного изменить код. Но это уже другая история...
Последний раз редактировалось megweg; 04.01.2012 в 13:06.
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
..Да мало-ли как их получать. Класс Environment в данном случае полностью удовлетворяет потребности, можно конечно заниматься извращениями и получать их скажем посредством класса Process.StartInfo.Arguments (как говорит мсдн - работает только при условии, что процесс был запущен .нэт методом Process.Start) или сделать wmi запрос:
Код:
Environment.CommandLine
Код:
Environment.GetCommandLineArgs
Код:
Process.StartInfo.Arguments
Код:
ManagementObjectSearcher moS = new ManagementObjectSearcher("select CommandLine from win32_process where name='" + Process.GetCurrentProcess().ProcessName + "'");
ManagementObjectCollection collection = moS.Get()
ManagementObject[] objs = new ManagementObject[collection.Count];
collection.CopyTo(objs,0);
string[] args = objs[0]["CommandLine"] as string[];
//.....
. Только зачем?
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Ну кому как, я в прошлом году писал курсовой, програмка сбоку расписание показывает... естественно расписание храница в файлах.
В итоге, если программу просто запускать, оно показывает расписание указанное в настройках.
Но ещё моя программа лезла в реестр и ассоциировала себя с моим типом файлов. Если Открыть файл расписания двойным щелчком, то откроется редактор его.
Ну кому как, я в прошлом году писал курсовой, програмка сбоку расписание показывает... естественно расписание храница в файлах.
В итоге, если программу просто запускать, оно показывает расписание указанное в настройках.
Но ещё моя программа лезла в реестр и ассоциировала себя с моим типом файлов. Если Открыть файл расписания двойным щелчком, то откроется редактор его.
Вы сейчас это к чему?
Возможно вы меня не совсем поняли - я вовсе не говорил что аргументы не нужны - абсурд, я лишь сказал что нет смысла извращаться, когда разработчики платформы уже предоставили нужные возможности в удобнейшем виде.
Что касаемо ссылки, думаю многие форумчане будут вам благодарны за предоставленные сведения...
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).