Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Windows 7 軟體開發指南:UAC 相容、版本檢測、權限處理與新 API 應用

編輯:Win7 系統基礎知識

想讓自家軟體在 Windows 7 順利運行,必須處理三大核心議題:作業系統版本檢測、使用者權限 (UAC) 適配、安裝路徑與資料存放策略。

必要條件 1:正確檢測作業系統版本

錯誤的版本判斷是軟體在 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) 而非單純比對字串。

必要條件 2:適應 UAC 降權環境

Win7 預設使用標準使用者權限,軟體寫入 Program Files、Windows 目錄、HKLM 登錄表將失敗。解決策略:

  • 預設安裝至非系統盤,或使用者可寫入目錄。
  • 資料儲存改用 HKEY_CURRENT_USER\Software 而非 HKLM。
  • 範例:Registry.CurrentUser.CreateSubKey(@"Software\test") 讀寫登錄表。

必要條件 3:需要時提昇權限

若確須寫入系統區域,在執行檔同目錄加入 .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>

Win7 專屬新 API 預告

下一系列將介紹:Jump List (任務列右鍵選單)、Icon Overlay (圖示疊加)、Progress Bar (圖示進度列)、Tabbed Thumbnail (分頁縮圖)、Thumbnail Toolbar (縮圖工具列) 等 Win7 獨有 API 應用技巧。

Copyright © Windows教程網 All Rights Reserved