程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 用C++Builder檢測Windows的啟動模式

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

編輯:關於C++

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