用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;
  }
}

时间: 2024-09-19 12:30:49

用C++Builder检测Windows的启动模式的相关文章

Windows XP系统八种启动模式详解

在系统启动Windows XP时按F8键,屏幕上就会显示Windows XP启动的高级选项菜单,通过这些选项可选择不同的模式启动Windows XP.下面将这些选项的含义介绍给大家. 1.安全模式:选用安全模式启动Windows XP时,系统只调用一些最基本的文件和驱动程序,只使用少量设备,且不加载启动组中的任何内容:启动后不能与网络接通,许多设备也不能正常使用(Windows XP的安全模式下可以使用光驱).这种模式有助于诊断系统产生的问题所在,如果新添加的设备或对驱动程序进行更改后系统有问题

如何恢复windows 8开机按F8进入高级启动模式方法

  如果你想恢复windows 8开机按F8进入高级启动模式,你可以参看下面的方法. 以管理员身份打开命令提示符,并输入 bcdedit /set {default} bootmenupolicy legacy 以后开机时按F8便能进入高级启动模式,如果你想还原windows 8原有的启动模式,只需将上面的命令替换成下面的即可. bcdedit /set {default} bootmenupolicy standard 该方法同样适用于windows 8.1.

XP系统八种启动模式

  XP系统八种启动模式         在XP系统启动时长按F8键,会显示Windows XP启动的高级选项菜单,通过这些选项可选择不同的模式启动Windows XP.下面将这些选项的含义介绍给大家. 1.安全模式:选用安全模式启动Windows XP时,系统只调用一些最基本的文件和驱动程序,只使用少量设备,且不加载启动组中的任何内容;启动后不能与网络接通,许多设备也不能正常使用(Windows XP的安全模式下可以使用光驱).这种模式有助于诊断系统产生的问题所在,如果新添加的设备或对驱动程序

Windows的启动顺序

Windows的启动过程包括以下几个阶段: 启动自检阶段 这个阶段主要是读取 BIOS ,然后内存,CPU,硬盘,键盘等设备进行自检.这个阶段在屏幕上显示就是自检的那些打印信息. 屏幕显示:自检的打印信息 初始化启动阶段 这个阶段根据 BIOS 指定的启动顺序,找到可以启动的优先启动设备,比如本地磁盘,CD Driver , USB 设备等等,然后准备从这些设备启动系统. 屏幕显示:黑屏 Boot 加载阶段 这个阶段首先从启动分区(比如 C 盘) 加载 Ntldr ,然后Ntldr 做如下设置:

Windows XP启动慢该怎么办

经常听到电脑使用者有这样的抱怨:怎么我打开电脑自检完后屏幕一直是黑的,要半天才有XP的界面出现?我的电脑干嘛进入系统这么慢?滚动条都转了十几圈还进不了系统.为什么我的XP出现桌面后几分钟之内点击任何程序都毫无反应?这些问题都可以归结为Windows XP启动慢.如何做才能加快系统的启动速度呢? 要想解决XP启动慢的问题,首先必须了解一下系统的启动过程.Windows XP的启动过程大致可分为5个步骤:第一步,预启动:首先计算机通电进行自检,并由BIOS(即基本输入输出系统)扫描硬件并完成基本硬件

用Windows XP启动脚本恢复系统的用户密码

用一种不用第三方软件的方法来恢复管理员密码,大家可以看看这招技巧如何. Windows XP启动脚本(startup scripts)是计算机在登录屏幕出现之前运行的批处理文件,它的功能类似于Windows 9×和DOS中的自动执行批处理文件autoexec.bat.利用这个特性,可以编写一个批处理文件重新设置用户密码,并将它加入启动脚本中,这样就达到了目的.以下是具体步骤(假设系统目录为C:\Windows). 1.使用Windows98启动盘启动电脑.编写一个能恢复密码的批处理文件a.bat

U盘启动模式间有哪些不一样的

  U盘启动模式间有哪些不一样的          用U盘启动涉及到各种启动模式,你知道各种模式之间的不同之处吗,下面就为你说说这方面的知识: 各种USB启动模式: 1.USB-HDD:(占用1个扇区)硬盘仿真模式,DOS启动后显示C:盘,HP(惠普) U盘格式化工具制作的U盘即采用此启动模式.此模式兼容性很高,但对于一些只支持USB-ZIP模式的电脑则无法启动. 电脑启动后首先读取此MBR,然后从指定的激活主分区启动(所以你要启动的分区必须激活,且有指定的引导文件存在),读入PBR引导扇区,再

恢复wind8开机按F8进入高级启动模式的方法

  如果你想恢复windows 8开机按F8进入高级启动模式,你可以参看下面的方法. 以管理员身份打开命令提示符,并输入 bcdedit /set {default} bootmenupolicy legacy 以后开机时按F8便能进入高级启动模式,如果你想还原windows 8原有的启动模式,只需将上面的命令替换成下面的即可. bcdedit /set {default} bootmenupolicy standard 该方法同样适用于windows 8.1.

恢复win8开机按F8进入高级启动模式

  如果你想恢复windows 8开机按F8进入高级启动模式,你可以参看下面的方法. 以管理员身份打开命令提示符,并输入 bcdedit /set {default} bootmenupolicy legacy 以后开机时按F8便能进入高级启动模式,如果你想还原windows 8原有的启动模式,只需将上面的命令替换成下面的即可. bcdedit /set {default} bootmenupolicy standard 该方法同样适用于windows 8.1.