В Windows 10, как программно отправить с C# набор файлов на устройство записи CD/DVD с помощью команды выполнения оболочки "SendTo"

У меня есть очень конкретный вопрос относительно использования глаголов ShellExecute внутри приложения C#, которое использует класс ProcessStartInfo из пространства имен System.Diagnostics.

Что у меня есть: набор файлов (текстовых и двоичных), которые я хочу записать на CD/DVD с помощью CD/DVD-привода компьютера с установленной Windows 10.

Что я хочу сделать: из приложения C# .NET Framework 4.x (независимо от того, является оно консольным или оконным), я хочу запустить отдельный процесс (объект Process) с помощью ProcessStartInfo (где свойство UseShellExecute равно установлено значение true) и указав Verb "SendTo", который должен взять мой набор файлов и "отправить" их на готовый привод CD/DVD (необходимый пустой диск был вставлен).

Вы можете представить себе это как выбор этого набора файлов в проводнике Windows, щелчок правой кнопкой мыши по этому набору и выбор "Записать на"Имя привода CD/DVD". Эта же функция реализована в программе C#.

Чего я не хочу: я не хочу использовать интерфейсы IMAPI2 и писать код на других языках (например, C/C++). Я также хотел бы избежать использования внешних приложений, таких как cdrtools или cdrtfe, из-за зависимости Cygwin.

Что я уже пробовал: я уже пытался сформировать правильный объект ProcessStartInfo, но мне кажется, что я не передаю правильную информацию в базовую процедуру ShellExecute:

var info = new ProcessStartInfo(pathNamesSet)
               {
                   Arguments = "\"" + CDRecorderDrive + "\"",
                   CreateNoWindow = false,
                   WindowStyle = ProcessWindowStyle.Normal,
                   UseShellExecute = true,
                   Verb = "SendTo"
               };

    var process = Process.Start(info); 

Процесс завершается ошибкой: "Win32Exception (1155): указанный файл не был назначен приложению".

Я ищу реализацию этой конкретной функции еще долгое время, но до сих пор не могу найти никаких полезных советов ни на страницах блога SO, ни на MS.
Для получения дополнительной информации об этом конкретном требовании просьба спросить здесь.

Заранее благодарю за внимание и помощь.

1 ответ

Файлы, готовые к записи, находятся в папке \AppData\Local\Microsoft\Windows\Burn. Может быть хорошей идеей немного вернуться к основам и сделать копию файла в это место, чтобы начать процесс записи. Это единственный способ, которым мне удалось это сделать.

Другие вопросы по тегам