亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.pas

?? 1個捆綁器的源碼
?? PAS
字號:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtDlgs, ShellAPI;

type
    // 首先定義儲存捆綁文件大小的信息
  TFilesInfo = record
    FileName: array [0..MAX_PATH] of Char;
    FileSize: Longint;
  end;

  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    procedure UnBind; // 反捆綁
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  // 選擇第一個要捆綁的文件
  OpenDialog1.FileName := '';
  OpenDialog1.Filter := '應用程序|*.exe';
  if OpenDialog1.Execute then
    Edit1.Text := OpenDialog1.FileName;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  // 選擇第二個要捆綁的文件
  OpenDialog1.FileName := '';
  OpenDialog1.Filter := '應用程序|*.exe';
  if OpenDialog1.Execute then
    Edit2.Text := OpenDialog1.FileName;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  FileName: String;
begin
  SaveDialog1.Filter := '應用程序|*.exe';
  if SaveDialog1.Execute then
  begin
    FileName := SaveDialog1.FileName;
    // 檢測擴展名是否是EXE
    if UpperCase(ExtractFileExt(FileName)) <> '.EXE' then
      FileName := FileName + '.exe';

    Edit3.Text := FileName;
  end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  // 退出
  Close;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  OutFile: TFileStream; // 輸出文件
  MySelf: TFileStream; // 讀取自身文件
  SourceFile: TFileStream; // 讀取被捆綁文件
  SelfFileInfo, FirstFileInfo, SecondFileInfo: TFilesInfo; // 記錄被捆綁文件信息
begin
  // 捆綁文件

  // 初始化SelfFileInfo,FirstFileInfo,SecondFileInfo結構
  FillChar(SelfFileInfo, sizeof(TFilesInfo), #0);
  FillChar(FirstFileInfo, sizeof(TFilesInfo), #0);
  FillChar(SecondFileInfo, sizeof(TFilesInfo), #0);
  
  // 打開自身并讀取
  MySelf := TFileStream.Create(Application.ExeName, fmOpenRead or fmShareDenyNone);
  // 獲取自身文件大小
  SelfFileInfo.FileSize := MySelf.Size;
  SelfFileInfo.FileName := 'Bind'; // 打上標志
  // 創建輸出文件
  OutFile := TFileStream.Create(Edit3.Text, fmCreate or fmOpenWrite);
  // 將自身文件保存在輸出文件的最前面
  OutFile.CopyFrom(MySelf, 0); // 第二個參數為0時表示復制整個內容
  // 關閉打開的自身文件
  MySelf.Free;
  // 打開第一個要捆綁的文件
  SourceFile := TFileStream.Create(Edit1.Text, fmOpenRead or fmShareDenyNone);
  // 獲取第一個要捆綁文件的文件名及大小
  StrPCopy(FirstFileInfo.FileName, ExtractFileName(Edit1.Text));
  FirstFileInfo.FileSize := SourceFile.Size;
  // 將第一個文件的內容追加在輸出文件后
  OutFile.CopyFrom(SourceFile, 0);
  // 關閉第一個文件
  SourceFile.Free;
  // 打開第二個要捆綁的文件
  SourceFile := TFileStream.Create(Edit2.Text, fmOpenRead or fmShareDenyNone);
  // 獲取第二個要捆綁文件的文件名及大小
  StrPCopy(SecondFileInfo.FileName, ExtractFileName(Edit2.Text));
  SecondFileInfo.FileSize := SourceFile.Size;
  // 將第二個文件的內容追加在輸出文件后
  OutFile.CopyFrom(SourceFile, 0);
  // 關閉第二個文件
  SourceFile.Free;
  // 將被捆綁文件信息寫在輸出文件未尾
  OutFile.Write(SelfFileInfo, sizeof(TFilesInfo));
  OutFile.Write(FirstFileInfo, sizeof(TFilesInfo));
  OutFile.Write(SecondFileInfo, sizeof(TFilesInfo));

  // 關閉輸出文件完成捆綁
  OutFile.Free;

  ShowMessage('捆綁完成!');
end;

procedure TForm1.UnBind;
var
  FilesInfo: TFilesInfo;
  UnBindFile: array[0..1] of TFilesInfo;
  SourceFile: TFileStream; // 讀取捆綁文件
  OutFile: TFileStream; // 輸出文件
begin
  // 初始化
  FillChar(FilesInfo, sizeof(TFilesInfo), #0);
  FillChar(UnBindFile[0], sizeof(TFilesInfo), #0);
  FillChar(UnBindFile[1], sizeof(TFilesInfo), #0);

  SourceFile := TFileStream.Create(Application.ExeName, fmOpenRead or fmShareDenyNone);
  // 移動到存儲文件信息的地方
  SourceFile.Seek(SourceFile.Size - (sizeof(TFilesInfo) * 3), soFromBeginning);
  // 獲取自身文件信息
  SourceFile.Read(FilesInfo, sizeof(TFilesInfo));

  // 如果沒有捆綁文件,則退出反捆綁過程
  if FilesInfo.FileName <> 'Bind' then
  begin
    SourceFile.Free;
    Exit;
  end;

  // 隱藏窗體
  Application.ShowMainForm := False;
  
  // 分別讀取第一及第二個文件的信息
  SourceFile.Read(UnBindFile[0], sizeof(TFilesInfo));
  SourceFile.Read(UnBindFile[1], sizeof(TFilesInfo));

  // 移動到第一個文件處進行讀取文件內容
  SourceFile.Seek(FilesInfo.FileSize, soFromBeginning);

  // 創建第一個輸出文件
  OutFile := TFileStream.Create(UnBindFile[0].FileName, fmCreate or fmOpenWrite);
  OutFile.CopyFrom(SourceFile, UnBindFile[0].FileSize);
  OutFile.Free;
  // 運行
  ShellExecute(0, 'Open', UnBindFile[0].FileName, nil, nil, SW_SHOWNORMAL);
  
  // 創建第二個輸出文件
  OutFile := TFileStream.Create(UnBindFile[1].FileName, fmCreate or fmOpenWrite);
  OutFile.CopyFrom(SourceFile, UnBindFile[1].FileSize);
  OutFile.Free;
  // 運行
  ShellExecute(0, 'Open', UnBindFile[1].FileName, nil, nil, SW_SHOWNORMAL);

  // 關閉自身文件
  SourceFile.Free;

  // 退出
  PostQuitMessage(0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  UnBind;
end;

end.  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看成人av| 亚洲欧美激情小说另类| 久久狠狠亚洲综合| 欧美一区二区三区影视| 国产综合久久久久久鬼色| 久久精品一二三| 激情综合色播五月| 中文字幕精品三区| 91香蕉视频污在线| 亚洲午夜久久久久中文字幕久| 欧美日本一区二区在线观看| 蜜臀av一区二区| 国产片一区二区| 日本久久一区二区三区| 五月天一区二区| 精品国产网站在线观看| 成人av电影免费在线播放| 亚洲一级不卡视频| 精品久久久久久久久久久院品网 | 精品国产91亚洲一区二区三区婷婷| 久久99国产精品久久99| 欧美激情一区二区三区蜜桃视频| 色一情一乱一乱一91av| 五月天亚洲婷婷| 久久久亚洲欧洲日产国码αv| a在线播放不卡| 日韩高清在线观看| 国产精品久久久久一区| 91精品国产综合久久久久久久 | 国产精品成人免费精品自在线观看| 99精品国产91久久久久久 | 欧美成人欧美edvon| 成人av高清在线| 秋霞电影网一区二区| 综合亚洲深深色噜噜狠狠网站| 911国产精品| 99视频精品免费视频| 日韩福利视频网| 中文字幕亚洲电影| 日韩女优av电影在线观看| 91国产视频在线观看| 国产美女精品人人做人人爽| 午夜精彩视频在线观看不卡| 国产精品久久久久久久久久久免费看| 在线免费观看视频一区| 国产成人亚洲综合a∨猫咪| 五月婷婷久久综合| 亚洲人成网站在线| 国产日产欧产精品推荐色| 7777女厕盗摄久久久| 91视频在线观看免费| 国产一区二区剧情av在线| 一区二区激情小说| 亚洲日韩欧美一区二区在线| 国产日韩欧美不卡| 欧美电影免费观看高清完整版在线| 91久久免费观看| 成人综合在线观看| 国产精品综合一区二区三区| 亚洲国产日韩一级| 免费观看在线综合色| 中文字幕亚洲成人| 成人动漫一区二区三区| 亚洲夂夂婷婷色拍ww47| 91成人网在线| 自拍偷在线精品自拍偷无码专区| 成人app网站| 成人晚上爱看视频| 成人小视频在线| 国产精品久久久久久妇女6080 | 国产成人自拍网| 免费在线观看一区| 日韩在线观看一区二区| 亚洲一区二区三区四区在线| 亚洲丝袜美腿综合| 18成人在线观看| 亚洲三级在线免费观看| 亚洲欧洲精品成人久久奇米网| 久久久www成人免费无遮挡大片 | 久久成人免费电影| 日本成人中文字幕| 久久激情综合网| 国产一区二区久久| 从欧美一区二区三区| 顶级嫩模精品视频在线看| 国产成人精品综合在线观看| 成人黄色电影在线| 99热国产精品| 欧洲精品一区二区三区在线观看| 欧美中文字幕一区二区三区| 欧美性大战久久久| 91精品国产黑色紧身裤美女| 日韩一级黄色片| 久久久综合九色合综国产精品| 精品处破学生在线二十三| 久久久久久免费| 国产精品超碰97尤物18| 亚洲高清一区二区三区| 免费看日韩a级影片| 国产乱子伦视频一区二区三区| 丰满白嫩尤物一区二区| 91小宝寻花一区二区三区| 欧美日韩午夜影院| 日韩视频在线一区二区| 欧美国产精品久久| 亚洲综合色区另类av| 麻豆精品一区二区av白丝在线| 国产精品1024| 欧美伊人久久大香线蕉综合69 | 亚洲激情中文1区| 日韩av不卡在线观看| 国产成人综合亚洲网站| 一本色道久久综合亚洲精品按摩| 欧美精品 日韩| 欧美韩国日本一区| 亚洲成在线观看| 成人自拍视频在线| 91精品国产手机| 国产亚洲一二三区| 一区二区三区成人| 狠狠色综合日日| 色婷婷国产精品综合在线观看| 欧美一区二区三区在线电影| 亚洲欧美自拍偷拍色图| 蜜臀a∨国产成人精品| av激情成人网| 欧美一区二区三区在线观看| 亚洲欧洲三级电影| 国产一区视频在线看| 欧美在线观看你懂的| 久久久精品天堂| 亚洲成人先锋电影| 99国产精品久久久久| 欧美成人福利视频| 亚洲动漫第一页| 9久草视频在线视频精品| 欧美tickling挠脚心丨vk| 亚洲一区二区欧美| 91麻豆123| 久久精品日韩一区二区三区| 天天综合网 天天综合色| 91在线播放网址| 久久久五月婷婷| 蜜桃一区二区三区四区| 欧美男人的天堂一二区| 亚洲男人的天堂av| 成人免费av在线| 国产亚洲精久久久久久| 久久99在线观看| 9191成人精品久久| 五月激情丁香一区二区三区| 色婷婷精品大视频在线蜜桃视频| 国产精品美日韩| 国产成人久久精品77777最新版本| 欧美不卡一区二区三区四区| 日本在线不卡视频| 欧美日本乱大交xxxxx| 综合中文字幕亚洲| 91蜜桃婷婷狠狠久久综合9色| 中文成人综合网| 成人小视频在线| 国产精品九色蝌蚪自拍| 成人午夜视频在线| 国产精品动漫网站| 99天天综合性| 亚洲欧美电影一区二区| 91久久精品网| 夜夜爽夜夜爽精品视频| 欧美网站一区二区| 亚洲宅男天堂在线观看无病毒| 欧美在线你懂的| 亚洲一二三区不卡| 91麻豆精品国产91久久久久久久久| 亚洲国产你懂的| 在线91免费看| 久久99久久久久久久久久久| 欧美精品一区二区三区视频| 国产一区二区三区免费看| 2024国产精品视频| 成人性色生活片免费看爆迷你毛片| 国产精品久久久久久亚洲伦| eeuss鲁片一区二区三区| 亚洲欧美国产三级| 欧美顶级少妇做爰| 国内国产精品久久| 中文字幕第一区第二区| 色综合久久综合网| 亚洲国产成人av网| 欧美大黄免费观看| 国产99久久久精品| 亚洲精品日韩综合观看成人91| 欧美疯狂性受xxxxx喷水图片| 蜜臀av性久久久久蜜臀aⅴ流畅 | 一区二区在线观看免费 | 日韩一区二区三区在线| 国产一区激情在线| 亚洲精品国产高清久久伦理二区| 91精品国产综合久久香蕉麻豆| 国产a级毛片一区| 亚洲一区二区三区四区在线|