2011-04-27 25 views

回答

4

我認爲要做到這一點的最好辦法是讓下面簡單的API調用:

SHAddToRecentDocs(SHARD_PATH, PChar(FileName)); 

這與Windows 7跳轉列表不僅交易,但也增加了你的文件到最近使用的系統列表對早期版本的Windows也有影響的文檔。

打開或保存文件時調用該函數。

爲了您的方便,鏈接到SHAddToRecentDocs()的文檔。

+0

是不是由Windows文件對話框自動調用函數? – 2011-04-27 16:33:15

+0

並非所有事情都經歷了對話。例如MRU菜單。 – 2011-04-27 17:42:45

+0

謝謝,這對我的MRU有很大的幫助,但正如我對其他答案所說的那樣,它根本不起作用。任何想法可能導致這個問題? – jonjbar 2011-04-28 08:00:45

7

例如,如果您只使用標準的Windows文件對話框,則會自動發生。至少我的文本編輯器Rejbrand Text Editor已經得到了Windows的MRU列表。它列出了我最近使用Rejbrand Text Editor編輯的所有文件,儘管我沒有爲它編寫任何代碼。

Windows 7 jump list http://privat.rejbrand.se/rtejump.png

我認爲視窗觀察的文件,你

  • 開放,由開始yourapp.exe <file name>,例如通過標準的Windows文件對話框
  • 在你的應用程序中打開的方式在應用程序中保存雙擊在您的應用程序中打開的文件

並自動顯示這些在列表中。

如果要以編程方式控制任務欄按鈕和菜單,可以使用Windows API。特定於Delphi的示例可在this blog post中找到。

+1

+1時,我發現一些有用的資源;順便說一句。 Daniel Wischnewski在Delphi中編寫了一個用於Windows 7的複雜組件包。它被提及例如[在這篇文章中](http://stackoverflow.com/questions/4588151/how-to-create-own-control-in-windows-7-aero-task-preview/4588209#4588209)。但該網站現在已經死了,我甚至無法再找到它了。將它重新上傳到某個地方會很好。 – 2011-04-27 15:50:57

+0

謝謝,但這根本不適合我。我試圖固定軟件,我試圖將其移動到程序文件文件夾..沒有任何工作。即使我手動調用SHAddToRecentDocs。任何想法 ? – jonjbar 2011-04-28 07:59:55

+0

確定在那裏找到它:http://msdn.microsoft.com/en-us/library/bb762105%28v=vs.85%29.aspx - 應用程序必須在HKEY_CLASSES_ROOT \ Applications下注冊 - 應用程序的HKEY_CLASSES_ROOT \ Applications註冊必須在HKEY_CLASSES_ROOT \ Applications \ ExampleApp.exe \ shell子項下定義一組默認動詞...我的應用程序在開發過程中不是這樣:( – jonjbar 2011-04-28 08:10:54

相關問題