U盘如何安装多个PE系统

U盘如何安装多个PE系统,第1张

准备步骤:安装好 EASYBOOT、WINHEX(或ULTRAEDIT)、ULTRAISO 这3个软件。在硬盘上建立一个临时目录,如D:BOOT,再建二级子目录EZBOOT,把EASYBOOT需要的几个文件EZBOOTDAT,LOADERBIN,CDMENUEZB(样例文件)拷贝到EZBOOT目录。

一、首先了解WinPE光盘的启动过程:

以蚂蚁WinPE的BOOTCD_070310ISO文件为例,这个ISO文件是个可引导的光盘文件,用ULTRAISO打开这个ISO文件,保存引导文件到D:BOOTEZBOOTXPBIF,把光盘中所有文件提取到D:BOOT。

从上面的目录结构可以看出WinPE光盘的引导过程,首先启动引导文件XPBIF,再找到WXPE目录下SETUPLDRBIN,读取WINNTXPE,加载WINPEIS_,再WXPENTDETECTCOM启动WINPE,即:XPBIF-SETUPLDRBIN-WINNTXPE-WINPEIS_-NTDETECTCOM(注:easyboot从版本508开始,加入了BCDW命令,如果你的EASYBOOT版本比508新,都是支持BCDW命令的。从EASYBOOT的安装目录中拷贝BCDWBIN到上面D:BOOTEZBOOT,在菜单中原来用RUN XPBIF 用下面命令代替BCDW WXPESETUPLDRBIN,这里注意写上光盘绝对路径。原这样的XPBIF文件就可删除了)。

二、如何集成蚂蚁winpe的第二个WinPE:

因为蚂蚁的WINPE,启动文件都是相同的,所以,需要将它改名。以集成蚂蚁的BOOTCD_070305ISO为例,用ULTRAISO打开保存引导文件为XP305BIF放到D:BOOTEZBOOT,把WXPESETUPLDRBIN提取改名为SETUPLDR305放到D:BOOTWXPE。这里XP305BIF引导后要找的文件是SETUPLDRBIN,所以要修改XP305BIF文件,用WINHEX打开,把所有SETUPLDRBIN替换为SETUPLDR305,保存。同样WINNTXPE名字相同,提取后改名为WINNT305拷贝到D:BOOT,用WINHEX打开SETUPLDR305,把所有WINNTXPE替换为WINNT305,保存。同样WINPEIS_名字相同,提取后改名为WINPE305IS_,拷贝到D:BOOT,用记事本打开WINNT305,把里面的WINPEIS_替换为WINPE305IS_。

三、如何修改外置程序目录名:

多个winpe系统,使用同一个外置程序不太可能,特别是XPPE和2003PE同时在一个光盘的情况。上面BOOTCD_070305ISO为例,提取外置程序改名为外置程序305,拷贝到D:BOOT,把WINPE305IS_改名WINPE305CAB(或RAR),用WINRAR打开得到一个WINPEISO文件,用ULTRAISO打开,提取WXPESYSTEM32PECMDINI,用记事本打开,把里面所有的外置程序替换为外置程序305,保存再替换到WINPEISO文件中。再把这个WINPEISO压缩为WINPE305IS_拷贝替换到D:BOOT。同时修改外置程序305目录下的WINPEINI文件内容,把所有外置程序替换为外置程序305。

四、光盘内IS_(ISO)与IM_(IM_)启动文件有什么不同:

就一个文件内容不同,如WINNT305,IM_(IM_) 内容是:

[SetupData]

BootDevice = ramdisk(0

BootPath = WXPESystem32

OsLoadOptions = /minint /fastdetect /rdpath=WinPEIM_

IS_(ISO)内容是:

[SetupData]

BootDevice=ramdisk(0

BootPath=WXPESYSTEM32

OsLoadOptions=/minint /fastdetect /rdexportascd /rdpath=WinPEIS_

上面注意系统目录及文件名不要错(以RAMDISK方式为例)。

五、用EASYBOOT集成:

这步没什么好讲的,应该都会,每个菜单对应,要注意的是选上优化光盘文件、DOS、Joliet,其中最后一个表示支持长文件(目录)名。

向大家介绍一个快速启动技巧:

1、用WinRAR将WinPEIM_或WinPEIS_解压缩得到WinPEIMG和WinPEISO,取代ISO镜像里面的IM_或者IS_文件;

2、用记事本修改WINNTSIF和WINNTXPE,将WinPEIM_或WinPEIS_改为WinPEIMG和WinPEISO;

3、替换setup/setupbat里面的WinPEIM_和WinPEIS_为WinPEIMG和WinPEISO;

这样,虽然WinPE体积增加了(估计一张CD放下没有问题),但是启动时节约了解压CBA文件的时间,启动速度明显增加。

提供一个 VB 遍历指定文件夹下 文件的 代码

'查找第一个文件的API

Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

'查找下一个文件的API

Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

'获取文件属性的API

Public Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

'关闭查找文件的API

Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

'以下为调用浏览文件夹窗口的API

Public Declare Sub CoTaskMemFree Lib "ole32dll" (ByVal hMem As Long)

Public Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long

Public Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long

Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long

'常量

Public Const MAX_PATH = 260

Public Const MAXDWORD = &HFFFF

Public Const INVALID_HANDLE_VALUE = -1

Public Const FILE_ATTRIBUTE_ARCHIVE = &H20

Public Const FILE_ATTRIBUTE_DIRECTORY = &H10

Public Const FILE_ATTRIBUTE_HIDDEN = &H2

Public Const FILE_ATTRIBUTE_NORMAL = &H80

Public Const FILE_ATTRIBUTE_READONLY = &H1

Public Const FILE_ATTRIBUTE_SYSTEM = &H4

Public Const FILE_ATTRIBUTE_TEMPORARY = &H100

Public Const BIF_RETURNONLYFSDIRS = 1

Public Type FILETIME

dwLowDateTime As Long

dwHighDateTime As Long

End Type

'定义类(用于查找文件)

Public Type WIN32_FIND_DATA

dwFileAttributes As Long

ftCreationTime As FILETIME

ftLastAccessTime As FILETIME

ftLastWriteTime As FILETIME

nFileSizeHigh As Long

nFileSizeLow As Long

dwReserved0 As Long

dwReserved1 As Long

cFileName As String MAX_PATH

cAlternate As String 14

End Type

'定义类(用于浏览文件夹窗口)

Public Type BrowseInfo

hWndOwner As Long

pIDLRoot As Long

pszDisplayName As Long

lpszTitle As Long

ulFlags As Long

lpfnCallback As Long

lParam As Long

iImage As Long

End Type

'自定义函数

Function StripNulls(OriginalStr As String) As String

If (InStr(OriginalStr, Chr(0)) > 0) Then

OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)

End If

StripNulls = OriginalStr

End Function

窗体代码:

Function GetAllFilePath(path As String, SearchStr As String)

Dim FileName As String ' 文件名

Dim DirName As String ' 子目录名

Dim dirNames() As String ' 目录数组

Dim nDir As Integer ' 当前路径的目录数

Dim i As Integer ' 循环计数器变量

Dim hSearch As Long ' 搜索句柄变量

Dim WFD As WIN32_FIND_DATA

Dim Cont As Integer

If Right(path, 1) <> "\" Then path = path & "\"

'搜索子目录

nDir = 0

ReDim dirNames(nDir)

Cont = True

hSearch = FindFirstFile(path & "", WFD)

If hSearch <> INVALID_HANDLE_VALUE Then

Do While Cont

DirName = StripNulls(WFDcFileName)

If (DirName <> "") And (DirName <> "") Then

If GetFileAttributes(path & DirName) And FILE_ATTRIBUTE_DIRECTORY Then

dirNames(nDir) = DirName

nDir = nDir + 1

ReDim Preserve dirNames(nDir)

End If

End If

Cont = FindNextFile(hSearch, WFD) '获取下一个子目录

Loop

Cont = FindClose(hSearch)

End If

' 遍历目录并累计文件总数

hSearch = FindFirstFile(path & SearchStr, WFD)

Cont = True

If hSearch <> INVALID_HANDLE_VALUE Then

While Cont

FileName = StripNulls(WFDcFileName)

If (FileName <> "") And (FileName <> "") Then

GetAllFilePath = GetAllFilePath + (WFDnFileSizeHigh MAXDWORD) + WFDnFileSizeLow

List1AddItem path & FileName

If GetFileAttributes(path & FileName) = 32 Then

List2AddItem FileName

End If

End If

Cont = FindNextFile(hSearch, WFD) ' 获取下一个文件

Wend

Cont = FindClose(hSearch)

End If

'如果子目录存在则遍历之

If nDir > 0 Then

For i = 0 To nDir - 1

GetAllFilePath = GetAllFilePath + GetAllFilePath(path & dirNames(i) & "\", _

SearchStr)

Next i

End If

End Function

Private Sub Command1_Click()

Dim SearchPath As String

Dim FindStr As String

Dim FileSize As Long

Dim iNull As Integer, lpIDList As Long, lResult As Long

Dim sPath As String, udtBI As BrowseInfo

With udtBI

'设置浏览窗口

hWndOwner = MehWnd

'返回选中的目录

ulFlags = BIF_RETURNONLYFSDIRS

End With

'调出浏览窗口

lpIDList = SHBrowseForFolder(udtBI)

If lpIDList Then

sPath = String$(MAX_PATH, 0)

'获取路径

SHGetPathFromIDList lpIDList, sPath

'释放内存

CoTaskMemFree lpIDList

iNull = InStr(sPath, vbNullChar)

If iNull Then

sPath = Left$(sPath, iNull - 1)

End If

End If

ScreenMousePointer = vbHourglass

List1Clear

List2Clear

SearchPath = sPath '选中的目录为搜索的起始路径

FindStr = "" '搜索所有类型的文件(此处可另作定义)

FileSize = GetAllFilePath(SearchPath, FindStr)

ScreenMousePointer = vbDefault

End Sub

FindStr = "E:\jpg" 就可以 E盘遍历jpg文件

InStr(1, a, "123") 就可以识别 含有"123"的字符串: 返回 0 没有,非 0 有

稍微改一下就可以了

这个程序主要是实现遍历,可以找到指定文件夹下所有文件,包括子目录下,

如果只需要搜索指定文件夹下文件,不处理子目录,就可以不用这么复杂。

Private Sub Command1_Click() '按钮按下时

Dim a As Single,c As Single,b As Single '定义变量

Dim t as single

a = InputBox(”输入第一个数”) 'A等于输入的第一个数

b = InputBox(”输入第二个数”)

c = InputBox(”输入第三个数”)

If a < b Then '如果输入的A<B则

t = a '将A与B互换

a = b

b = t 'a<b时交换a、b的值

End If '保证A>B

If c > a Then '用C去比较

t = a

a = c

c = t

t = a

a = b

b = t

Else

If c > b Then

t = b

b = c

c = t

End If

End If

End Sub

xp会自动安装合适的驱动,主板什么的驱动就要自己安装了 一、卸载驱动程序 大家都知道在第一次安装Windows的时候,系统会对当前计算机硬件进行检测,并且安装相应的驱动程序,因此对一个已经正常运行的Windows封包之前,需要卸载各种驱动程序,而这对最终得到的封装包是否能够运用在其它计算机中也是非常必要的。 1 卸载硬件驱动程序 卸载硬件驱动程序并不是在设备管理器中随意卸载,必须要按照一定的顺序进行,通常我们可以参照网卡、USB设备、声卡、显卡、显示器等步骤进行。在卸载驱动程序的时候,首先从设备管理器中选取某个设备,接着右击鼠标并且从d出菜单中选择“卸载”命令即可。 2 更改ACPI属性 ACPI是高级电源管理的意思,虽然如今大部分计算机都支持ACPI功能,但是不同主板的ACPI类型不同,倘若你和别人所使用的计算机的ACPI不同,那么就会出现电脑无法软关机的故障,为此一定要更改ACPI属性。更改ACPI属性的时候,先从资源管理器中选择“计算机→ACPI Uniprocessor PC”,接着从鼠标右键菜单中选择“更新驱动程序”命令,在出现的驱动程序更新向导中依次选择“从列表或指定位置安装→不要搜索,我要自己选择要安装的程序”,这时可以看见图1所示的窗口(如图1),将ACPI类型更改为“Standard PC”一项即可。 3 更改驱动器属性 在创建Windows封装包过程中,更改磁盘驱动器的属性非常重要,如果忽略这个步骤,那么其它计算机使用这个封装包安装Windows之后就会出现无法正常引导计算机,并且不断重新启动的故障。因此我们需要将IDE控制器更改为标准双通道的PCI IDE控制器,这样才能使其适用于如今各种不同类型的主板。首先从资源管理器的“IDE ATA/ATAPI控制器”中找到当前正在使用的IDE控制器,右击鼠标之后从d出菜单中选择“更改驱动程序”命令,接着在出现的驱动程序更新向导中依次选择“从列表或指定位置安装→不要搜索,我要自己选择要安装的程序”,最后从窗口中选取“标准双通道PCI IDE控制器”一项即可。 完成上述三方面的驱动程序卸载之后,基本上就可以利用Windows的自动应答文件来创建封装包了。不过提醒大家注意的是,无论卸载硬件驱动程序还是更改相关的属性,完毕之后系统都会提示重新启动计算机,这时候切记不要选择重新启动计算机,而是在下面的重新封装过程中由程序自动关闭计算机,否则重新启动计算机之后系统会提示发现新硬件,又需要安装新的驱动程序了。 图1 更改ACPI属性 二、创建自动应答文件 熟悉Windows 9x/2000的朋友都知道,系统提供了一个隐藏的自动应答文件程序,而Windows XP也有这个文件,借助它就可以非常便捷的完成自动应答文件的创建 *** 作。首先从Windows XP安装光盘的“\\support\\tools”目录中找到名为deploycab的文件,将其解压缩到硬盘中之后,运行setupmgrexe文件即可激活安装管理器向导程序,下面就让我们一起动手试试吧。 第一步 首次运行安装管理器的时候,程序会询问你创建新文件还是修改已经保存的应答文件,一般情况下选取“创建新文件”一项。 第二步 接着程序提供了三种安装类型,其中无人参予安装的应答文件一般为Unattendtxt;Sysprep安装可以选择应答文件,一般用于自动安装模式;远处安装服务可以让我们从远程安装服务器安装Windows,在此我们选择“Sysprep”类型继续。 第三步 接下去需要选择应答文件对应的Windows版本,此时根据自己的实际情况选择,例如笔者选取“Windows XP Professional”一项。 第四步 在图2所示的窗口中可以选择是否完全自动安装(如图2),一般情况下建议选择“是,完全自动安装”,否则用这个封装包光盘安装系统时候还是比较麻烦的。 第五步 点击“下一步”按钮之后进入安装管理器界面,仔细查看一下不难发现这里就是我们正常安装Windows XP过程中需要手工输入的各种信息,因此我们在这里分别设定各个参数之后就可以实现无人值守的全自动安装了。不过这些信息并非全部都要输入,只需将名称和单位、时区、产品密钥、计算机名称等几个参数设置一下即可,但是语言一项必须要选取“中文(简体)”,否则安装好的Windows XP有可能影响你的正常使用哦! 第六步 最后可以看见图3所示的窗口(如图3),这里提供了应答文件的保存路径信息,确认之后即可完成自动应答文件的创建 *** 作了。 图2 选择安装方式 图3 制作应答文件 三、重新封装 完成了上述 *** 作之后,接下来就需要对系统进行重新封装了。这时在刚才从Windows XP安装光盘中解压缩文件夹中双击sysprepexe文件,首先将看见图4所示的提示窗口(如图4),点击“确定”之后准备封装。 在图5所示的窗口中有几个按钮(如图5),其中“审核启动”和“工厂”按钮用处不大,倒是下面的几个选项比较重要,在此简单介绍一下。 1 PnP:用于检测即插即用硬件,一般情况下勾选该项,这样系统在安装时候会对计算机中非即插即用硬件进行检测,可以一些老古董级别的硬件能够正常使用。 2 MiniSetup:最小化安装,一般建议勾选此项。 3 NoSIDGen:不生成安全标识符,这样可以避免烦人的Windows XP激活检测,因此需要勾选。 4 已提前激活:勾选此项则意味着Windows XP系统已经默认激活状态,为了方便使用建议勾选。 设置完成之后,点击上部的“重新封装”按钮,这时Windows系统自动进行重新封装 *** 作,完成之后会自动关闭计算机。这时候原先安装Windows XP的分区就是一个干净的封装系统盘了,最后可以通过软盘或者光盘引导计算机进入DOS模式,借助Ghost对其进行克隆镜像之后刻录为光盘保存,这样就能够用它在其它计算机上快捷安装Windows XP了。 图4 提示窗口 图5 准备封装 四、注意事项 虽然通过上述方法可以制作出全新的Windows XP封装包,但是在整个 *** 作过程以及使用中还有一些值得注意的地方,在此提醒大家注意一下。 1 封装之前可以事先清理系统中的^^文件,并且进行磁盘碎片整理等 *** 作来优化Windows系统,这样才能确保得到的封装包文件个头最小而且稳定性最好。 2 创建自动应答文件时候,计算机名称和安装序列号一定要输入正确,因为在Ghost恢复完成重新启动的时候,系统还没有找到鼠标和键盘的驱动程序,它们都处于不可用状态,所以无法输入任何字符,完全要依靠自动应答文件来自动输入。 3 刻录Ghost得到的镜像文件时候,不妨将其制作为系统引导光盘,同时在批处理中增加Ghost程序自动运行命令,这能够简化我们手工输入各种指令的麻烦。 4 通过封装包安装好Windows XP系统之后,还有针对性的安装各种硬件驱动程序。但是如果仅仅用于自己计算机的快速恢复安装,则可以忽略开始的卸载驱动程序步骤。 5 有兴趣的朋友还可以计算Ghost镜像文件的大小,利用多出来的空间安装一些系统补丁、必需的软件等等,这更方便我们直接使用计算机。 怎么样,原来Windows XP还可以通过这种方式来快速安装,如果你也想体验一下快速恢复系统的便利所在,不妨也来试试吧,相信这种封装安装方式会让你周围的朋友对你刮目相看呢!

加些分上去,我把代码贴上来。

/ HELLOC -- Hello, world /

#include <graphicsh>

#include <stdioh>

void save_pic(char fn,int maxx,int maxy){

typedef long LONG;

typedef unsigned char BYTE;

typedef unsigned long DWORD;

typedef unsigned short WORD;

typedef struct tagBITMAPFILEHEADER {

WORD bfType;

DWORD bfSize;

WORD bfReserved1;

WORD bfReserved2;

DWORD bfOffBits;

} BITMAPFILEHEADER;

typedef struct tagBITMAPINFOHEADER{

DWORD biSize;

LONG biWidth;

LONG biHeight;

WORD biPlanes;

WORD biBitCount;

DWORD biCompression;

DWORD biSizeImage;

LONG biXPelsPerMeter;

LONG biYPelsPerMeter;

DWORD biClrUsed;

DWORD biClrImportant;

} BITMAPINFOHEADER;

int i,j;

FILE fp;

BITMAPFILEHEADER bfh;

BITMAPINFOHEADER bif;

int color[16]={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};

unsigned char rgb[64]={0,0,0,0,0,0,128,0,0,128,0,0,0,128,128,0

,128,0,0,0,128,0,128,0,128,128,0,0,128,128,128,0

,192,192,192,0,0,0,225,0,0,255,0,0,0,255,255,0

,255,0,0,0,255,0,255,0,255,255,0,0,255,255,255,0};

union

{

unsigned char value;

struct

{

unsigned c1:4;

unsigned c2:4;

}color;

}mycolor;

bfhbfType=0x4d42;

bfhbfSize=153718;

bfhbfReserved1=0;

bfhbfReserved2=0;

bfhbfOffBits=118;

bifbiSize=40;

bifbiWidth=640;

bifbiHeight=480;

bifbiPlanes=1;

bifbiBitCount=4;

bifbiCompression=0;

bifbiSizeImage=0;

bifbiXPelsPerMeter=0;

bifbiYPelsPerMeter=0;

bifbiClrUsed=0;

bifbiClrImportant=0;

fp=fopen(fn,"wb");

fwrite(&bfh,sizeof(bfh),1,fp);

fwrite(&bif,sizeof(bif),1,fp);

fwrite(rgb,sizeof(rgb),1,fp);

for(j=maxy-1;j>=0;j--){

for(i=0;i<maxx;i+=2){

mycolorcolorc2=color[getpixel(i,j)];

mycolorcolorc1=color[getpixel(i+1,j)];

putc(mycolorvalue,fp);

}

}

fclose(fp);

}

main()

{

int gd=DETECT,gm;

int maxx,maxy,key;

registerbgidriver(EGAVGA_driver); /用了这个函数后,你的程序就算在下面没指明BGI

路径也能在每台机器上运行,具体做法见我们论坛上贴子,<独立图形程序的建立>

>

给你一个控制台版本的浏览目录范例程序,把main中的代码复制过去就行了。

#include <wtypesh>

#include <atlbaseh>

#include <shlobjh>

#include <iostream>

using namespace std;

//显示文件夹浏览对话框

//用shell提供的SHBrowseForFolder,需要一个指向BROWSEINFO结构的指针

/ BROWSEINFO结构

HWND hwndOwner,指定对话框的父窗口的句柄

LPCITEMIDLIST pidlRoot,指定打开浏览的根目录,若为NULL,表示桌面

LPSTR pszDisplayName,指定一个缓冲区,接收用户选择的目录的显示名称

LPCSTR lpszTitle,树形视图上方显示的文字

UINT ulFlags,指定属性

BFFCALLBACK Lpfn,指定回调函数,发生某些事件时,指定的函数被调用,允许程序进一步定制对话框的行为

LPARAM lParam,若指定回调函数,参数值传递给回调函数

int iImage,代表用户选择的文件夹对象的图标在系统图标列表中的索引 /

int main()

{

BROWSEINFO bi;

::ZeroMemory(&bi,sizeof(bi)); //将bi结构清零

char szSelPath[MAX_PATH]; //被选择文件夹对象名称的缓冲区

bipszDisplayName=szSelPath;

LPITEMIDLIST pNetHoodIDL;

::SHGetSpecialFolderLocation(NULL,CSIDL_HISTORY,&pNetHoodIDL); //根文件夹为历史文件夹

bipidlRoot=pNetHoodIDL;

bilpsztitle="Luoguohui "; //提示字符串

biulFlags=BIF_BROWSEINCLUDEFILES| //允许选择文件对象

BIF_EDITBOX| //显示编辑框

BIF_STATUSTEXT| //显示状态文本

BIF_VALIDATE; //校验编辑框中的输入

LPITEMIDLIST pidlSel=::SHBrowseForFolder(&bi); //打开文件夹浏览对话框

if(pidlSel!=NULL)

{

cout<<"Selected:"<<szSelPath<<endl;

CComPtr<IMalloc> pMalloc;

::SHGetMalloc(&pMalloc);

pMalloc->Free(pidlSel); //释放资源

}

return 0;

}

以上就是关于U盘如何安装多个PE系统全部的内容,包括:U盘如何安装多个PE系统、高手来看一下VB的简单编程题!!!、求高手解释下面vb程序每步意思,谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10080024.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存