萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> 用C++Builder檢測Windows的啟動模式

用C++Builder檢測Windows的啟動模式

  Windows 95/98的啟動模式可以分為正常模式和安全模式,在安全模式下,有很多功能被限制使用,比如多媒體功能、網絡功能等。有時,我們編寫的程序正好需要這些被限制的功能,因此我們希望當程序運行時能自動檢測當前Windows所處的啟動模式是不是安全模式,以確定是否繼續運行程序。

  那麼如何在C++ Builder程序中檢測當前的Windows是以正常模式還是安全模式啟動的?這需要使用到API函數GetSystemMetrics來進行檢測。API函數GetSystemMetrics可以取得Windows的一些配置信息,比如,鼠標的按鍵數、窗體的邊界寬度,它也可以測得當前Windows所處的啟動模式。

  在Windows API中,該函數的定義如下:int GetSystemMetrics( int nIndex );

  其中參數nIndex的取值很多,如果只想檢測Windows的啟動模式,只要取參數值為SM_CLEANBOOT即可,該值將確認當前的Windows是以何種模式啟動的。它的返回值有三個:

  0:正常啟動模式;1:安全模式啟動Windows;2:以安全模式啟動,但是擁有網絡功能。

  我們可以在程序的起始部分使用該函數,如下面的示例中,我們根據Windows啟動模式的不同,應用程序顯示出不同的提示信息,用戶可以在實際編程中具體添加新的處理代碼。 void __fastcall TForm1::Button1Click(TObject *Sender)

  {

  switch(GetSystemMetrics(SM_CLEANBOOT))

  {

  case 0:

  ShowMessage("正常模式啟動");

  break;

  case 1:

  ShowMessage("安全模式啟動");

  break;

  case 2:

  ShowMessage("安全模式啟動,但帶網絡附帶功能");

  break;

  default:

  ShowMessage("錯誤,系統啟動有問題。");

  break;

  }

  }

copyright © 萬盛學電腦網 all rights reserved