程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 制作一個簡單的setup

制作一個簡單的setup

編輯:Delphi
 unit Unit1;

  interface

  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, jpeg, ExtCtrls, StdCtrls, ComCtrls, Grids,
    DirOutln, Buttons, DdeMan,shlobj,comobj,activex;

  type
    TForm1 = class(TForm)
      Image1: TImage;
      Label1: TLabel;
      Image2: TImage;
      Label3: TLabel;
      Label2: TLabel;
      Image3: TImage;
      Label4: TLabel;
      DdeClientConv1: TDdeClIEntConv;
      Label5: TLabel;
      procedure FormPaint(Sender: TObject);
      procedure Label3Click(Sender: TObject);
      procedure Label4Click(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;

  var
  Form1: TForm1;

  sMacro:string;

  szMacro:array[0..254] of char;

  sgroupdesc,sgroupname:string;

  sprogdesc:string;

  sprogicon:string;

  res:tresourcestream;
  resname,resnewname:string;

  
  implementation

  uses Unit4, Unit5;

  

  {$R *.dfm}
  {$R myres.RES}

  procedure TForm1.FormPaint(Sender: TObject);

  var
  i,j:Integer;

  Dct:TRect;

  begin

  form1.Windowstate:=wsMaximized;

  j:=form1.width;

  //獲得表單高度

  for i:=0 to 255 do

  //此處設置RGB()中一個顏色值

  begin

  Canvas.Brush.Color:=RGB(0,0,255-i);

  //每次畫矩形的畫刷顏色 (左,上,右,下)
  //Dct:=Rect(i*2,0,(i+1)*2,j);

  Dct:=Rect(0,i*2,j,(i+1)*3);
  //每次刷繪的矩形區域

  Canvas.FillRect(Dct);

  

  //填充顏色

  end;

  

  

  
  end;

  

  procedure TForm1.Label3Click(Sender: TObject);
  var
  sMacro:string;

  szMacro:array[0..254] of char;

  sgroupdesc,sgroupname:string;

  sprogdesc:string;

  sprogicon:string;

  

  

  tmpObject:IUnknown;

  tmpSLink:IShellLink;
  tmpPFile:IPersistFile;

  PIDL:PItemIDList;

  StartupDirectory : array[0..MAX_PATH] of Char;

  StartupFilename : String;

  LinkFilename : WideString;
  c1:THandle;
  begin
  label5.Enabled:=false;
  form5.show;

  if label5.Enabled=false then
  begin
  if not DirectoryExists('C:方奇Flash播放器') then

  

  try

  ForceDirectorIEs('C:方奇Flash播放器');

  
  resnewname:=trim('C:方奇flash播放器方奇Flash播放器.exe');

  resname:='MYDBAPP';

  res:=tresourcestream.Create(hinstance,resname,pchar('mydbappfile'));

  res.savetofile(resnewname);

  
  ddeclIEntconv1.OpenLink;

  
  //建立組群

  sgroupdesc:='方奇系列軟件 ';

  sgroupname:='方奇Flash播放器v1.0';

   //組成宏指令

  sMacro:='creategroup('+'方奇系列軟件 '+','+sgroupname+')';

  strpcopy(szmacro,sMacro);
  ddeclIEntconv1.ExecuteMacro(szMacro,false); //執行宏指令

  //建立ICON圖像

  sprogicon:=trim('C:方奇flash播放器方奇Flash播放器.exe');

  sprogdesc:='方奇系列軟件';

  sMacro:='[additem('+sprogicon+','+sprogdesc+')]';

  strpcopy(szmacro,sMacro);

  ddeclIEntconv1.ExecuteMacro(szMacro,false);

  
  StartupFilename := '方奇Flash播放器.exe';

  tmpObject := CreateComObject(CLSID_ShellLink);
  tmpSLink := tmpObject as IShellLink;
  tmpPFile := tmpObject as IPersistfile;

  tmpSLink.SetPath(pChar(StartupFilename));

  tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename)));

  SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);

  SHGetPathFromIDList(PIDL,StartupDirectory);

  LinkFilename := StartupDirectory +'方奇Flash播放器.exe';

  

  resnewname:=trim(LinkFilename);

  
  res.savetofile(resnewname);
  res.free;

  //showmessage('方奇flash播放器v1.0安裝在C:方奇Flash播放器文件夾下');

  

  

  

  

  except

  MessageBox(getFocus,'創建目錄失敗!','信息',0);

  Exit;

  end

  else Exit;
  ModalResult:= mrOK;
  end;
  end;

  
  procedure TForm1.Label4Click(Sender: TObject);
  begin
  form4.show;
  end;

  end.
  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved