想讓自家軟體在 Windows 7 順利運行,必須處理三大核心議題:作業系統版本檢測、使用者權限 (UAC) 適配、安裝路徑與資料存放策略。
錯誤的版本判斷是軟體在 Win7 失敗主因。範例 (C#):
if (Environment.OSVersion.Version > new Version(5, 1))
{
MessageBox.Show("Windows 7 or Windows 2008 Server", "Operating System",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
應判斷主版本號 >= 6 (Vista/Win7/2008) 而非單純比對字串。
Win7 預設使用標準使用者權限,軟體寫入 Program Files、Windows 目錄、HKLM 登錄表將失敗。解決策略:
HKEY_CURRENT_USER\Software 而非 HKLM。Registry.CurrentUser.CreateSubKey(@"Software\test") 讀寫登錄表。若確須寫入系統區域,在執行檔同目錄加入 .manifest 清單檔,宣告 requireAdministrator:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="test" type="win32"/>
<description>Description of your application</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
下一系列將介紹:Jump List (任務列右鍵選單)、Icon Overlay (圖示疊加)、Progress Bar (圖示進度列)、Tabbed Thumbnail (分頁縮圖)、Thumbnail Toolbar (縮圖工具列) 等 Win7 獨有 API 應用技巧。