如何开发在Windows启动之前运行的GUI程序?

时间:2012-08-05 00:26:19

标签: c++ windows user-interface boot

我需要开发一个在Windows启动之前运行的软件。例如,Acronis TrueImage或其他成像或分区操作软件允许启动到备用环境,并且它们支持非常好的图形界面。

我知道可以开发一个bootkit - 但是为它开发漂亮的UI需要大量的工作。另一种方法是NT原生应用程序,但它也不支持任何类型的GUI,除了有限的颜色。有关Acronis或类似解决方案的工作原理吗?谢谢

3 个答案:

答案 0 :(得分:1)

听起来你需要的是一个引导加载程序。

如何开发自己的Boot Loader:http://www.codeproject.com/Articles/36907/How-to-develop-your-own-Boot-Loader

答案 1 :(得分:1)

Acronis实际上会引导到从内存运行的Linux环境中。 GUI由某些版本的XWindows提供,很可能使用帧缓冲设备。他们上次使用的UI工具包是Fox Toolkit。

退出时,它会热启动机器以引导回Windows。所以它只是另一个启动选项,而不是预启动选项。您可以这样做,但创建一个实时Linux系统并不容易。你也可以像上面提到的那样看WinPE,但是随之而来的是很多许可。

答案 2 :(得分:0)

首先,如果您正在编写在操作系统启动之前运行的程序,那么您没有操作系统。所以忘掉像“NT native app”这样的东西。

编写这样的程序非常类似于为DOS编写程序。 DOS没有为图形,窗口或鼠标输入提供任何服务,也没有提供任何真正的服务(磁盘访问除外)。你曾经不得不自己做所有这些事情(这就是为什么DOS的图形程序总是看起来有点不同)。有些工具包有助于构建图形界面,但我不知道今天是否还存在任何一个。

即使在今天,完成所有自己的图形界面仍然需要做很多工作。可能有一两个供应商仍然为这样的应用程序提供GUI工具包,但是这种情况将非常罕见。今天只有像分区编辑器和RAID控制器这样的程序才真正需要。