許多安裝程式、啟動器或系統工具需在執行期動態判斷作業系統安裝路徑。Windows API 提供兩個直觀函式:
GetWindowsDirectory:取得 Windows 目錄(如 C:\Windows)。GetSystemDirectory:取得 System 子目錄(如 C:\Windows\System32)。procedure TForm1.Button1Click(Sender: TObject);
var
SysDir: array[0..255] of Char;
begin
{ 取得 Windows 目錄 }
GetWindowsDirectory(SysDir, 255);
Edit1.Text := SysDir;
{ 取得 System 目錄 }
GetSystemDirectory(SysDir, 255);
Edit2.Text := SysDir;
end;
說明:緩衝區大小 256 字元足以容納所有版本 Windows 的路徑長度(MAX_PATH = 260)。若需支援超長路徑(>260),請改用 GetWindowsDirectoryW 搭配 WideChar 陣列。
透過 FindWindow 取得工作列視窗類別名 'Shell_TrayWnd' 的控制代碼,再呼叫 ShowWindow 即可控制顯示狀態。
procedure TForm1.Button1Click(Sender: TObject); { 顯示工作列 }
var
WndHandle: THandle;
begin
WndHandle := FindWindow('Shell_TrayWnd', nil);
ShowWindow(WndHandle, SW_SHOW);
end;
procedure TForm1.Button2Click(Sender: TObject); { 隱藏工作列 }
var
WndHandle: THandle;
begin
WndHandle := FindWindow('Shell_TrayWnd', nil);
ShowWindow(WndHandle, SW_HIDE);
end;
Shell_TrayWnd 仍存在,但桌面視窗管理器(DWM)與多工列重設計可能導致隱藏後殘留視覺痕跡,或被系統自動恢復。建議改用 ITaskbarList3 介面或 SHAppBarMessage(ABM_SETSTATE) 正規控制。Shell_TrayWnd 視窗逐一處理。取得系統目錄是基礎技能;控制工作列顯示則屬進階系統程式設計。理解 FindWindow/ShowWindow 機制有助於掌握 Windows 視窗架構,但實務上應優先考慮使用者體驗與系統相容性,避免濫用隱藏工作列功能。