我已經寫了一個Windows軟件,我已經將這個程序與文件擴展名關聯起來。當我雙擊一個數據文件時,我的程序啓動並打開文件。到目前爲止它的工作。但是,當我選擇多個文件,然後單擊上下文菜單中的「打開」,然後啓動我的程序的多個實例,一個文件的一個實例。我希望Windows用我的程序的單個實例打開所有文件。這可能沒有在我的程序中實現一個實例處理程序?如何將多個關聯文件傳遞給程序?
目前在註冊表中MyFileType/shell/open/command
看起來是這樣的:
"C:\Program Files\MyApp\MyApp.exe" "%1"
也許有一些特殊的記號/變我必須使用,而不是「%1」得到它的工作?在Linux上,我必須使用%f作爲單個文件,使用%F作爲文件列表。 Windows上有類似的東西嗎?
(在這些評論中沒有足夠的空間,所以我把它分成三部分):第一段:不要'得到它。對不起,我不是Windows開發人員。我的應用程序是平臺無關的,並用Java編寫。它只是一個EXE文件,它打開所有指定爲命令行參數的文件。不知道SHCreateShellItemArrayFromDataObjet是什麼,以及我如何在Java中做到這一點。據我所知,我已經使用了一個默認的shell動詞(在這種情況下爲「open」)。 – kayahr 2012-02-22 07:54:26
第二段:我試過這個OpenWithList,但它不起作用,文檔說這是用於爲同一文件類型註冊多個應用程序。這不是我需要的。我已經將我的應用程序與文件類型關聯起來了。當我一次打開一個文件列表時,我不想讓Windows多次打開我的應用程序。 – kayahr 2012-02-22 07:55:39
第三段:在我寫的問題中,我想避免這種麻煩,但如果Windows真的無法將一個文件列表傳遞給一個程序,那麼我必須這樣做。 – kayahr 2012-02-22 07:56:46