Smitis
Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Цитата: работают независимо от буквы флешки | Чисто для прикола. Создаём исполняемый файл для запуска, скажем, AkelPad подручными средствами. Создаём исходный файл AkelPad.cs (хоть в нотепаде) Код: using System; using System.Diagnostics; using System.IO; class Program { static void Main() { int pos; // полная командная строка с именем программы и параметрами "как есть" без разбора string CommandLine = System.Environment.CommandLine; // убрать путь к программе if (CommandLine.StartsWith("\"")) { // в кавычках pos = CommandLine.IndexOf("\"",1); } else { // без кавычек pos = CommandLine.IndexOf(" "); } CommandLine = pos>0 ? CommandLine.Substring(pos+1).TrimStart() : ""; // путь к запускателю string StartPath = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); // путь к запускаемой программе string ProgramPath = Path.Combine(StartPath,"AkelPad\\AkelPad.exe"); // запуск Process.Start(ProgramPath,CommandLine); } } | компилируем из командной строки дотнетовским компиляром C# v2 (можно другим) C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe /target:winexe AkelPad.cs Полученный исполняемый файл запустит AkelPad\AkelPad.exe из папки рядом с собой, передав ему все параметры командной строки "как есть" Недостаток - нет иконки. Но если есть иконка отдельным файлом, компилируем так C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe /win32icon:AkelPad.ico /target:winexe AkelPad.cs Можно доработать, изменить путь, сделать более универсальным (с проверкой разрядности системы и пр.). До кучи ещё экстрактор иконок дописать... П.С. Писалось навскидку, так работает, но могут быть неточности.
---------- Разум когда-нибудь победит |
|