Icy's Blog

Hi, 请登录

WinOnekey Windows系统一键安装库.

winOnekey 一个windows一键安装系统的 库
从下载 到解压 在写入安装系统 三大功能


如有问题联系 QQ: 2261206 VX: icysoft

web:  icy6.com


下载地址: https://share.weiyun.com/2e7dcca3197b4281a0151cb745e3973e

{

待我回老家的时候 把Delphi的组件包编译好了 在发布一个组件版的,

本子上面没有那么多编译器。。。。

}


// Delphi 主功能代码演示
unit Main;

interface

uses
 Winapi.Windows,
 Winapi.Messages,
 System.SysUtils,
 System.Variants,
 System.Classes,
 Vcl.Graphics,
 Vcl.Controls,
 Vcl.Forms,
 Vcl.Dialogs,
 Vcl.StdCtrls,
 Vcl.ExtCtrls,
 Vcl.Buttons;

type
 TForm3 = class(TForm)
   st_SysInfo: TStaticText;
   Edit_Gho: TLabeledEdit;
   Edit_WinPE: TLabeledEdit;
   SpeedButton1: TSpeedButton;
   SpeedButton2: TSpeedButton;
   BitBtn1: TBitBtn;
   OpenDialog: TOpenDialog;
   procedure FormShow(Sender: TObject);
   procedure BitBtn1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure SpeedButton1Click(Sender: TObject);
   procedure SpeedButton2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form3: TForm3;

implementation
     uses
     nBasisUtils,
     nClassesUtils,
     WinOnekeyLib;
{$R *.dfm}
var
SysData:  TWinSysDataW;


procedure TForm3.BitBtn1Click(Sender: TObject);
var
 Data:  TGhostDataW;
begin
 if not FileExists(Edit_Gho.Text) then
 begin
   ShowMessage('未设置gho文件.');
   Exit;
 end;

 FillChar(Data,Sizeof(TGhostDataW),#0);
 StrCopy(Data.GhoFile,PWideChar(Edit_Gho.Text));
 StrCopy(Data.WinPE,PWideChar(Edit_WinPE.Text));
 StrPCopy(Data.OSText,'Icy2017');

 if GhostBootW(Data) then
 begin
   ShowMessage('重启安装系统.');
   RestartSystem;
 end
 else ShowMessage('写入引导失败.');
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
 CreateGhostTools;
end;

procedure TForm3.FormDestroy(Sender: TObject);
begin
 FreeGhostTools;
end;

procedure TForm3.FormShow(Sender: TObject);
const
 CPartitionNames:  array[TPartitionForm] of string[3] = ('RAW','MBR','GPT');

 CWindowsVerStringAry:  array[0..6] of string = (
 'Windows xp',
 'Windows7 32Bit',
 'Windows7 64Bit',
 'Windows8 32Bit',
 'Windows8 64Bit',
 'Windows10 32Bit',
 'Windows10 64Bit'
 );


 PFWINSYSINFO = '当前系统: %S' + #13#10 +
                '系统目录: %S' + #13#10 +
                '内存大小: %S'  + #13#10 +
                '足够容量盘符: %S' + #13#10 +
                '足够容量磁盘: %S';
begin


 GetWinSysDataW(SysData);
 st_SysInfo.Caption:=  Format(PFWINSYSINFO,[
 CWindowsVerStringAry[SysData.WinVerInt],
 SysData.Disc,
 SysData.MemorySize.ToString[1] + ' GB',
 SysData.ArchiveDisc,
 FormatSize(SysData.ArchiveDiscTotalFreeSpace)
 ]);

 Edit_WinPE.Enabled:= SysData.Partition = pfGPT;
 SpeedButton2.Enabled:= Edit_WinPE.Enabled;
end;

procedure TForm3.SpeedButton1Click(Sender: TObject);
begin
 OpenDialog.Filter:= '( GHO FILE )|*.gho';
 if OpenDialog.Execute then
    Edit_Gho.Text:= OpenDialog.FileName;
end;

procedure TForm3.SpeedButton2Click(Sender: TObject);
begin
 OpenDialog.Filter:= '( WIM FILE )|*.wim';
 if OpenDialog.Execute then
    Edit_WinPE.Text:= OpenDialog.FileName;
end;

end.

C++ 主功能演示
#include "stdafx.h"
#include "WinOneKeyLib.h"

/*---------------------------------------------------------------------------------*/

int main()
{
   wstring CWindowsVerStringAry[7] = { L"Windows xp",
                                       L"Windows7 32Bit",
                                       L"Windows7 64Bit",
                                       L"Windows8 32Bit",
                                       L"Windows8 64Bit",
                                       L"Windows10 32Bit",
                                       L"Windows10 64Bit" };

   WinOnekey WOK;
   WOK.Load();
   WOK.CreateGhostTools();
   WinSysDataW SysData = {0};
 
   WOK.GetWinSysDataW(&SysData);
   wcout.imbue(std::locale("chs"));
   switch (SysData.Partition)
   {
   case pfMBR: wcout << L"分区格式 = MBR" << endl;
       break;

   case pfGPT: wcout << L"分区格式 = GPT" << endl;
       break;

   default:  wcout << L"分区格式 = ?" << endl;
       break;
   }
   wcout << L"您的系统版本: " << CWindowsVerStringAry[SysData.WinVerInt] << endl;
   wcout << L"系统盘符: " << SysData.Dsic << endl;
   wcout << L"足够容量盘符: " << SysData.ArchiveDisc << endl;
   wcout << L"足够容量磁盘大小: " << SysData.ArchiveDiscTotalFreeSpace << endl;

   GhostDataW gdata = { 0 };
   GetCurrentDirectory(129, gdata.GhoFile);
   wcscat_s(gdata.GhoFile, L"\\Win.gho");
   if (PathFileExistsW(gdata.GhoFile)){
       wcscat_s(gdata.OSText, L"Icy2017");
       if (WOK.GhostBootW(gdata)){
           wcout << L"写入引导成功,即将重启计算机进行安装." << endl;
           WOK.RestartSystem();
       }
       else wcout << L"写入引导失败,是否使用了管理员账户运行的本程序?";

       
   }
   else{
       wcout << L"根目录下未找到 Win.gho 镜像文件." << endl;
   }
   WOK.FreeGhostTools();
   WOK.Free();
   getchar();
   return 0;
}


相关推荐

评论

  • 昵称 (必填)
  • 邮箱
  • 网址