www.pudn.com > Desktop.rar > main.pas


{******************************************************** 
***                                                   *** 
***                        破天惊工作室 
***  名称:嵌入窗体之桌面嵌入 
***  日期:12.9.2004 
***  环境:Delphi6+WinXP 
***  作者:破天惊 
***  E-Mail:Tresss@sohu.com 
***  HomePage:http://tresss.com 
*** 
***  说明: 
***                                                   *** 
*********************************************************} 
unit main; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, ExtCtrls; 
 
type 
  TFrmMain = class(TForm) 
    Btn1: TButton; 
    Timer1: TTimer; 
    Edt1: TEdit; 
    BtnOwner: TButton; 
    Label1: TLabel; 
    Btn2: TButton; 
    Edt2: TEdit; 
    Label2: TLabel; 
    Btn3: TButton; 
    Edt3: TEdit; 
    Label3: TLabel; 
    BtnRnd: TButton; 
    procedure Timer1Timer(Sender: TObject); 
    procedure BtnOwnerClick(Sender: TObject); 
    procedure FormCreate(Sender: TObject); 
    procedure Btn1Click(Sender: TObject); 
    procedure Btn2Click(Sender: TObject); 
    procedure Btn3Click(Sender: TObject); 
    procedure BtnRndClick(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 
 
var 
  FrmMain: TFrmMain; 
  TmpHandle:THandle; 
 
implementation 
 
{$R *.dfm} 
 
procedure TFrmMain.Timer1Timer(Sender: TObject); 
begin 
  FrmMain.ParentWindow:=0; 
end; 
 
procedure TFrmMain.BtnOwnerClick(Sender: TObject); 
begin 
  FrmMain.ParentWindow:=0; 
end; 
 
procedure TFrmMain.FormCreate(Sender: TObject); 
begin 
  TmpHandle:=FindWindow('Progman',Nil); 
  If TmpHandle<>0 Then 
  Begin 
    Edt3.Text:=IntToStr(TmpHandle); 
    TmpHandle:=GetWindow(TmpHandle,GW_CHILD); 
    Edt2.Text:=IntToStr(TmpHandle); 
    TmpHandle:=GetWindow(TmpHandle,GW_CHILD); 
    Edt1.Text:=IntToStr(TmpHandle); 
  End 
  Else 
    ShowMessage('找不到桌面,可能是Explorer已结束!'); 
end; 
 
procedure TFrmMain.Btn1Click(Sender: TObject); 
begin 
  If Edt1.Text<>'' Then 
  Begin 
    FrmMain.ParentWindow:=StrToInt(Edt1.Text); 
    BringWindowToTop(FrmMain.Handle); 
  End; 
end; 
 
procedure TFrmMain.Btn2Click(Sender: TObject); 
begin 
  If Edt2.Text<>'' Then 
  Begin 
    FrmMain.ParentWindow:=StrToInt(Edt2.Text); 
    BringWindowToTop(FrmMain.Handle); 
  End; 
end; 
 
procedure TFrmMain.Btn3Click(Sender: TObject); 
begin 
  If Edt3.Text<>'' Then 
  Begin 
    FrmMain.ParentWindow:=StrToInt(Edt3.Text); 
    BringWindowToTop(FrmMain.Handle); 
  End; 
end; 
 
procedure TFrmMain.BtnRndClick(Sender: TObject); 
begin 
  If (Edt3.Text<>'') and (Edt2.Text<>'') Then 
  Begin 
    FrmMain.ParentWindow:=StrToInt(Edt3.Text); 
    BringWindowToTop(FrmMain.Handle); 
    FrmMain.Left:=0; 
    MoveWindow(StrToInt(Edt2.Text),170,0,screen.Width-170,screen.Height,False); 
  End;  
end; 
 
end.