不管用户进行什么操作(包括:最小化,点击其他应用程序,点击显示桌面按钮等;关闭程序除外),程序窗口都一直位于最前面,类似悬浮的效果。看过以前的帖子,都没有很好的解决!
   其中最小化和点击其他应用程序情况应该不难(基本解决),难点在于点击显示桌面按钮的情况(不懂)!
   旨在共同探讨,分不够可以+
   谢谢大虾们!!

解决方案 »

  1.   

    net send 127.0.0.1 hello是这样的效果吗?
      

  2.   

    我也试过n多的api,最后放弃了 -_-|||
      

  3.   

    可以,
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var temp:integer;
    begin
      systemparametersinfo(spi_screensaverrunning,1,@temp,0);
      //限制功能键
      formstyle:=fsstayontop;
      windowstate:=wsmaximized;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    var temp:integer;
    begin
     systemparametersinfo(spi_screensaverrunning,0,@temp,0);//取消对功能键的限制
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
    close;
    end;end.
      

  4.   

    没有的,用这个函数:procedure CreateParams(var Param: TCreateParams); override;///——————*使桌面按钮无效*——————//////
    procedure TLoginForm.CreateParams(var Param: TCreateParams);
    begin
       inherited;
       with Param do
       begin
         EXStyle := ExStyle or WS_EX_TOPMOST or WS_EX_ACCEPTFILES OR WS_EX_TOOLWINDOW;
         WndParent := GetDesktopWindow;
       end;
    end;