程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> 用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;

      }

      }

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved