簡體   English   中英

如何調用 ShellExecute 使用 C++ 打開具有特定程序的文件而不關聯相同的文件擴展名

[英]How to call ShellExecute to open a file with specific program using C++ without associating same file extensions

我閱讀了 MSDN 並嘗試了這行代碼

ShellExecute(handle, "open", "fully_qualified_pa​​th_to_file", NULL, NULL, SW_SHOWNORMAL);

它工作正常,但我需要更多功能。 我寫了一個應用程序,它在擴展名為 .bin 的文件中輸出。 在我的操作系統上,.bin 文件與任何特定程序無關。 MSDN 說我可以將所有 .bin 文件與我的應用程序與編程相關聯,但這種情況對我來說是不可接受的。

如何添加這行代碼以使用特定程序打開特定文件? ps 我試圖將我的應用程序路徑放在第 4 個參數中,如 MSDN 所示,就像那樣,

C:\\\\Application.exe" "%1"

但它沒有用。

如果lpFile參數不是 .exe,則 Windows 只有在注冊表中注冊了文件類型時才能執行該文件(ShellExecute 將從注冊表中讀取命令行並將 %1 替換為文件名)。

如果要強制使用特定應用程序,則lpFile需要指定所述應用程序的名稱/路徑,並且您希望它打開的文件必須是應用程序支持的格式的參數的一部分,通常只是應用程序的完整路徑文件(如果路徑包含空格,則用"引用)。在這種情況下,ShellExecute 不會為您翻譯 %1。

暫無
暫無

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

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