2009-08-10 51 views

回答

3

如果應用程序在Vista中運行良好,可以預期做同樣在Windows 7.如果您的清單文件缺少兼容性部分,那麼你的應用程序將在默認情況下,Vista的兼容性模式下運行,爲解釋here。*

我假設你通過「系統托盤」來引用通知區域。用戶對通知區域的控制在Windows 7中得到了增強,用戶可能需要啓用應用程序的圖標才能在那裏顯示。 MSDN documentation建議使用通知區域的一些注意事項 - 它確實用於短期通知,特別是對於沒有桌面存在的應用程序。例如,它不適用於快速啓動。

沒有理由期望在這方面與德爾福有關的問題。

*編輯:從MSDN文章(以上星號鏈接):

沒有兼容性部分

應用在他們的表現將收到Windows 7和未來的Windows版本 通過Windows Vista的默認行爲。 請注意,Windows XP和Windows Vista將忽略此清單部分,它對它們沒有影響。

以下Windows組件提供基於 的兼容性部分在Windows 7中不同行爲:

  • RPC默認線程池
  • 的DirectDraw鎖
  • 的DirectDraw位塊傳送(BLT)至小無剪輯Window
  • GetOverlappedResult API
  • 程序兼容性助手(PCA)

有關每種行爲(Vista與Win7)的詳細信息,請參見that article

+0

我測試了兩個兼容性塊,沒有它,沒有差別(都工作得很好)。是否有任何理由從用戶的角度添加兼容性塊? – Tom 2009-08-12 12:00:49

+0

好的,已經添加了一些細節,但詳細信息在鏈接的MSDN文章中。 – Argalatyr 2009-08-12 20:48:58

3

簡短的回答似乎是,Windows Vista上運行時沒有出現大問題的大多數應用程序都可以在Windows 7上運行。有一些很好的常規Win 7應用程序兼容性建議on the CIOL network,如果您需要了解最需要注意的從Windows XP遷移到Windows Vista的,但一般摘要:

  • 不要在Windows假定一個文件夾位置 - 文件夾,如程序文件,我的音樂等可以改變的Windows版本之間的路徑。例如,「我的文檔」文件夾在XP以後的每個Windows版本中都改變了位置。
  • 將信息保存到註冊表或文件夾時使用正確的API - 如果您不使用「官方」API,則可能與Windows UAC發生衝突。當涉及到保存應用程序數據(取決於當前用戶,所有用戶,應用程序數據等)的上下文時,Vista和Windows 7的寬容度遠遠低於XP。
  • 恪守UAC的原則 - 在Windows UAC功能已自Windows Vista的淡化爲Windows 7,但你還是應該根據給定的,如設計指導編寫應用程序並對其進行測試,而無需管理員身份運行權利,除非絕對必要。

除了這些提示:給你的應用程序使用系統托盤的,你不妨檢查出"Windows 7 Controls for Delphi" from Daniel Wischnewski的阿爾法。他還撰寫了12帖子,展示了他們的使用情況,讓您瞭解這一特定領域的一些新視覺差異。 Delphi 2009還報告了幾個Windows 7/64 Bit Specific errors,您可能在開發和測試您的應用程序時遇到這種情況。

+0

列出的警告適用於Vista和Windows 7,因此它們沒有具體回答這個問題。好的建議,無論如何。同樣,所提及的錯誤與D2009 ** IDE **相關,而不是編譯的程序(後者是問題的主題)。 – Argalatyr 2009-08-11 00:45:19

+0

確實。我提到了IDE錯誤,即使它沒有被請求,因爲它是相關的有用信息。如果他想按照他說的在Windows 7下測試和調試他的應用程序,那麼他可能會遇到這個問題 - 因此我想我會提及它併爲他節省一些時間。如果可能的話, – jamiei 2009-08-11 07:05:06

+2

也可以進行編碼。當用戶第一次運行你的應用程序時,它將避免一些醜陋的對話框。 – skamradt 2009-08-11 15:43:18