簡體   English   中英

在 Windows 10 上,如何使用 shell 執行動詞“SendTo”以編程方式從 C# 將一組文件發送到 CD/DVD 刻錄機

[英]On Windows 10, how to send programmatically from C# a set of files to the CD/DVD recorder using the shell execution verb "SendTo"

我確實有一個關於在 C# 應用程序中使用 ShellExecute 動詞的非常具體的問題,該應用程序使用 System.Diagnostics 命名空間中的 ProcessStartInfo 類。

我擁有的是:一組文件(文本和二進制文件),我想使用安裝了 Windows 10 的機器的 CD/DVD 驅動器將它們刻錄到 CD/DVD 上。

我想做的是:從 C# .NET Framework 4.x 應用程序(無論是控制台還是 Windows 窗體),我想使用 ProcessStartInfo(其中 UseShellExecute 屬性是設置為 true)並指定動詞“SendTo”,它應該將我的文件集“發送”到准備好的 CD/DVD 驅動器(所需的空磁盤已插入)。

您可以想象這就像在 Windows 資源管理器中選擇該組文件,右鍵單擊該組並選擇“刻錄到‘ CD/DVD 驅動器名稱’。此功能與 C# 程序實現的功能相同。

我不想要的:我不想使用 IMAPI2 接口,也不想用其他語言(fe C/C++)編寫代碼。 由於 Cygwin 依賴關系,我還想避免使用諸如 cdrtools 或 cdrtfe 之類的外部應用程序。

我已經嘗試過的:我已經嘗試形成一個正確的 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 博客頁面中找到任何有用的提示。
有關此特定要求的其他信息,請在此處詢問。

預先感謝您的關注和幫助。

准備刻錄的文件位於 \\AppData\\Local\\Microsoft\\Windows\\Burn。 稍微回歸基礎並將文件復制到此位置以開始刻錄過程可能是個好主意。 無論如何,這是我設法做到這一點的唯一方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM