岳庆生编著的“版主答疑-delphi高级编程技巧"一书,有主要程序行。

解决方案 »

  1.   

    这个是小弟写来玩的
    你可以先看看
    unit frmMain;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls;type
      TMainForm = class(TForm)
        tmDrawRound: TTimer;
        tmDrawLine: TTimer;
        tmDot: TTimer;
        tmTarget: TTimer;
        Label1: TLabel;
        procedure FormCreate(Sender: TObject);
        procedure tmDrawRoundTimer(Sender: TObject);
        procedure tmDrawLineTimer(Sender: TObject);
        procedure tmDotTimer(Sender: TObject);
        procedure tmTargetTimer(Sender: TObject);
        procedure FormKeyPress(Sender: TObject; var Key: Char);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      MainForm: TMainForm;
      StarCount : Integer;
    implementation{$R *.dfm}procedure TMainForm.FormCreate(Sender: TObject);
    begin
      SetWindowLong(MainForm.Handle,
                    GWL_STYLE,
                    GetWindowLong(Handle,GWL_STYLE) and not WS_CAPTION);
      Height := ClientHeight;
      Screen.Cursor := crNone;
      StarCount := 0;
    end;procedure TMainForm.tmDrawRoundTimer(Sender: TObject);
    var
      i : Integer;
    begin
      i := Screen.Width;
      Randomize;
      MainForm.Canvas.pen.Color := clNone;
      MainForm.Canvas.Pen.Width := 0;
      MainForm.Canvas.Brush.Color := random(6553600);
      MainForm.Canvas.Ellipse(random(i),random(i),random(i),random(i));
    end;procedure TMainForm.tmDrawLineTimer(Sender: TObject);
    var
      i ,z: Integer;
    begin
      randomize;
      z := random(200);
      i := random(Screen.Height) + z;
      MainForm.Canvas.MoveTo(0,i);
      MainForm.Canvas.Pen.Width :=1; 
      MainForm.Canvas.Pen.Color := clWhite;
      MainForm.Canvas.LineTo(Screen.Width,i); 
    end;procedure TMainForm.tmDotTimer(Sender: TObject);
    var
      i ,j,z: Integer;
    begin
      randomize;
      z := random(1024);
      i := random(Screen.Width+z);
      //randomize;
      j := random(Screen.Height+z);
      MainForm.Canvas.Pen.Color := clLime;
      MainForm.Canvas.Pen.Width := 1;
      MainForm.Canvas.Brush.Color := clLime;
      MainForm.Canvas.Ellipse(i,j,i+2,j+2);
      inc(StarCount);
      MainForm.Label1.Caption := IntToStr(StarCount);
    end;procedure TMainForm.tmTargetTimer(Sender: TObject);
    var
      x,y,i,j,z: Integer;begin
      randomize;
      X := Screen.Width div 2;
      Y := Screen.Height div 2;
      MainForm.Canvas.Pen.Color := clLime;
      MainForm.Canvas.Brush.Color := clBlack;
      MainForm.Canvas.Brush.Style := bsClear;
      MainForm.Canvas.Pen.Width := 1;
      randomize;
      z := random(300);
      i := Random(Screen.Height div 2 +z);
      j := Y - X + i;
      MainForm.Canvas.Ellipse(i,j,2 * X - i ,2 * Y - j);
    end;procedure TMainForm.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then
        begin
          Application.Terminate;
        end;
    end;end.
      

  2.   

    思想我想是这样的,首先你得保证你的屏保能够锁住屏幕,让别人无法用任何办法进入到界面,这只是在你有密码时才是这样的了;上面的老兄说得很对呀
    因为你做出来的程序不是真正WINDOWS的屏保,你不能让他显示在任务列表中,不能让人通ALT+F4退出程序
    下面有两个函数,你可以参考,这只是个人观点!!!!!!!!function RegisterServiceProcess (dwProcessID, dwType: DWord) : DWord; stdcall; external 'KERNEL32.DLL';//不要程序显示在任务列表中
        RegisterServiceProcess(GetCurrentProcessID,1);//让程序不显示在任务列表中
        systemParametersInfo(Spi_screensaverrunning,1,@temp,0);让功能键全失效
      

  3.   

    type
      TMainForm = class(TForm)
        tmDrawRound: TTimer;
        tmDrawLine: TTimer;
        tmDot: TTimer;
        tmTarget: TTimer;
        Label1: TLabel;
        procedure FormCreate(Sender: TObject);
        procedure tmDrawRoundTimer(Sender: TObject);
        procedure tmDrawLineTimer(Sender: TObject);
        procedure tmDotTimer(Sender: TObject);
        procedure tmTargetTimer(Sender: TObject);
        procedure FormKeyPress(Sender: TObject; var Key: Char);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      MainForm: TMainForm;
      StarCount : Integer;
    implementation{$R *.dfm}procedure TMainForm.FormCreate(Sender: TObject);
    begin
      SetWindowLong(MainForm.Handle,
                    GWL_STYLE,
                    GetWindowLong(Handle,GWL_STYLE) and not WS_CAPTION);
      Height := ClientHeight;
      Screen.Cursor := crNone;
      StarCount := 0;
    end;procedure TMainForm.tmDrawRoundTimer(Sender: TObject);
    var
      i : Integer;
    begin
      i := Screen.Width;
      Randomize;
      MainForm.Canvas.pen.Color := clNone;
      MainForm.Canvas.Pen.Width := 0;
      MainForm.Canvas.Brush.Color := random(6553600);
      MainForm.Canvas.Ellipse(random(i),random(i),random(i),random(i));
    end;procedure TMainForm.tmDrawLineTimer(Sender: TObject);
    var
      i ,z: Integer;
    begin
      randomize;
      z := random(200);
      i := random(Screen.Height) + z;
      MainForm.Canvas.MoveTo(0,i);
      MainForm.Canvas.Pen.Width :=1; 
      MainForm.Canvas.Pen.Color := clWhite;
      MainForm.Canvas.LineTo(Screen.Width,i); 
    end;procedure TMainForm.tmDotTimer(Sender: TObject);
    var
      i ,j,z: Integer;
    begin
      randomize;
      z := random(1024);
      i := random(Screen.Width+z);
      //randomize;
      j := random(Screen.Height+z);
      MainForm.Canvas.Pen.Color := clLime;
      MainForm.Canvas.Pen.Width := 1;
      MainForm.Canvas.Brush.Color := clLime;
      MainForm.Canvas.Ellipse(i,j,i+2,j+2);
      inc(StarCount);
      MainForm.Label1.Caption := IntToStr(StarCount);
    end;procedure TMainForm.tmTargetTimer(Sender: TObject);
    var
      x,y,i,j,z: Integer;begin
      randomize;
      X := Screen.Width div 2;
      Y := Screen.Height div 2;
      MainForm.Canvas.Pen.Color := clLime;
      MainForm.Canvas.Brush.Color := clBlack;
      MainForm.Canvas.Brush.Style := bsClear;
      MainForm.Canvas.Pen.Width := 1;
      randomize;
      z := random(300);
      i := Random(Screen.Height div 2 +z);
      j := Y - X + i;
      MainForm.Canvas.Ellipse(i,j,2 * X - i ,2 * Y - j);
    end;procedure TMainForm.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then
        begin
          Application.Terminate;
        end;
    end;end.