2009-06-09 94 views
3

我想用我寫的標準系統打開文件對話框替換,這意味着無論在哪個程序中打開文件,我的對話框都將顯示而不是標準文件,這是可能的嗎?是否可以更換系統打開文件對話框?

似乎沒有提供這樣的API來實現這一點,是否有可能使用一些掛鉤技術,但這必須是可靠的,不能被防病毒工具視爲間諜軟件?

還有其他的選擇嗎?

如果這是不可能的,是否可以在標準打開文件對話框的空格或工具欄中添加一個調用我的對話框的按鈕,該對話框允許用戶選擇一個文件,然後將選定文件的路徑返回到標準對話框的「文件名稱」輸入框?

任何命中,鏈接和代碼示例將不勝感激。

+0

使用Windows的權利? – 2009-06-09 04:47:22

回答

1

從Vista開始,FileOpen/FileSave對話框現在是「Common Item Dialogs」,其中IFileOpenDialog & IFileSaveDialog是兩個發佈的實現。

因爲他們只是用已知的CLSID COM對象你可能只使用他們的CLSID重新註冊代替他們逃脫。從來沒有嘗試過這樣的事情,可能會出現各種警鐘。

預Vista的文件對話框可以hooked in process,但我從來沒有碰到過有關全局鉤子或等效的任何東西。

0

如果一個文件/文件夾複製到對話框的文件名場通常反正粘貼的完整路徑。例如,如果您既打開了調用標準打開/保存對話框的程序,也打開了要打開的文件或路徑(打開/保存)的窗口,則可以簡單地從資源管理器窗口複製文件/文件夾,然後粘貼到對話框的文件名字段中,它將插入文件/文件夾的完整路徑。不需要自定義腳本!

另外,對於那些使用自定義對話框,其中此步驟失敗的方案,複製相同的文件/文件夾窗口到同一窗口的地址欄(假設它是可見的)。這將粘貼完整路徑,您可以再次複製該路徑,然後將此完整路徑粘貼到自定義對話框中。創建Office超鏈接(Ctrl + K)時,我經常使用它,因爲「插入超鏈接」對話框不適用於第一種方法。

您還可以使用類似的方法,但粘貼到地址欄領域,它的工作原理。

+5

我真的不知道這是如何回答如何替換打開文件對話框的問題。 – 2014-06-27 01:39:16