载入中...
栏目导航
google相关内容
热门教程
相关教程
制作一个简单的setup [收藏本页]
  • 作者:佚名 来源:不详 发布时间:2006-9-5 8:20:19
  •  

    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.

  • [] [返回上一页] [打 印] [收 藏]
  • 上一篇教程:编译原理的一个简单的枚举算法 下一篇教程:在delphi中,如何把MDI工作区的粗边框去掉
  • Copyright © 2003-2008 站长助手 www.web162.com
    京ICP备05001760号 网络实名:站长助手 转载本站原创教程请注名来源于本站
    力倡站长资源文化,崇尚互联共享,做中国最好站长网站,为中国网站提供动力!
    始建于2003-3-1 8:10 中国首都·北京 辽宁(分站)
    主资源渠道辽宁电信分公司服务器组及带宽!