Как открыть файл с помощью команды приложения?

256
08 января 2018, 08:00

Как открыть файл, чтобы он запускался через приложение? При условии, что реестр использует обязательный путь к приложению:

HKEY_CLASSES_ROOT\exefile\shell\open\command

Задача состоит в том, чтобы через приложение "А" передать параметры запуска "%1" %* любому файлу, который принудительно станет запускаться через это приложение "А".

Допустим, мы переносим файл на приложение, или запускаем его двойным кликом по файлу, приложение получает от файла аргументы в виде пути к файлу, если первое условие пропускается, файл "В" должен получить от приложения "А" аргументы запуска "%1" %*и запуститься.

static void Main(string[] args)
{
    if (args.Any() && BlockChecker.IsBlocked(args[0]) == true)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
    else if (args.Any())
    {
        ProcessStartInfo psi = new ProcessStartInfo((args[0]), @"%1 %*");
        psi.WindowStyle = ProcessWindowStyle.Normal;
        psi.RedirectStandardOutput = true;
        psi.UseShellExecute = false;
        psi.CreateNoWindow = true;
        Process.Start(psi);
        Application.Exit();
    }
}

Вышеупомянутый код работает, но не может принимать аргументы от ярлыков, все еще есть ошибки при запуске программ (Discord) и (браузер Opera) т.к. они используют ярлык с аргументами запуска: C:\Users\User\AppData\Local\Discord\Update.exe --processStart Discord.exe

Эта проблема относится ко всем ярлыкам или программам с параметрами запуска...

Подробнее о классе BlockChecker.cs: #url

READ ALSO
Как лучше изменить запрос

Как лучше изменить запрос

ЗдравствуйтеСуществует следующий действующий запрос:

284
How to explore phone file system and read(download) file from it via bluetooth using c# [требует правки]

How to explore phone file system and read(download) file from it via bluetooth using c# [требует правки]

How to explore phone file system and read(download) file from it via bluetooth using c#

214
Запуск разрешения Android по клику - Unity

Запуск разрешения Android по клику - Unity

Необходимо вызвать разрешение использования микрофона при нажатии на кнопку, при старте не должно требовать разрешения, видел где-то видео...

299