• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

利用DELPHI实现完全桌面控制的实现

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

http://forum.cnsec.org/thread-13147-1-1.html

在windows 中系统桌面和开始菜单可以说是它的一大特色,其实我们可以利用delphi轻易地在应用程序中实现这种技术 :

  新建一个应用程序, 将form1窗体的borderstyle属性设置为bsnone,formstyle属性设置为 fsstayontop,windowstate属性设置为wsmaximized。

  如有必要可在form1窗体中放置一个image控件image1,为它的picture属性装入一幅自己喜爱的图像并将它的align属性设置为alclient,stretch设置为true,使图像拉伸占满form1的客户区,作为系统背景。

  然后,新建一个窗体form2,将它的borderstyle属性设置为bsnone,formstyle属性设置为fsstayontop。

  在form2内放置一个speedbutton控件speedbutton1和一个popupmenu控件popupmenu1。

  将speedbutton1的top属性设为0,left属性设为0,caption属性设为 “在这里”(也可随你) ,还可设置glyph属性为它加上一个图像。双击popupmenu1控件,根据自己需要设置各个菜单项。

  接下来为form1的oncreate事件添加如下代码:

  procedure tform1.formcreate(sender: tobject);

  var

   tep:integer;

  begin

  //用来屏蔽ctrl+alt+del、ctrl+tab

  功能及屏幕保护程序的运行

   tep:=0;

   systemparametersinfo(spi_setfasttaskswitch,

   1,@tep,0);

   systemparametersinfo(spi_screensaverrunning,

   1,@tep,0);

  end;

  为form1的onmousemove事件添加代码如下:

  procedure tform1.formmousemove

  (sender: tobject; shift: tshiftstate; x,y: integer);

  begin

  //当鼠标移动到form1的底部时显示form2(即开始菜单) ,否则隐藏form2

   if y〉form1.height-30 then

   begin

   form2.left:=form1.left;

   form2.top:=form1.height-30;

   form2.width:=form1.width;

   form2.height:=30;

   form2.show;

   end

   else

   form2.hide;

  end;

  如果你按上面步骤添加了image1控件,请在form1的image1的onmousemove事件编辑栏内选择formmousemove。

  为form2中的speedbutton1的onclick事件添加如下代码:

  procedure tform2.speedbutton1click

  (sender: tobject);

  begin

  //当用户单击 speedbutton1按钮后弹出由popupmenu1构成的“开始”菜单项

   popupmenu1.popup(form2.left,form2.top);

  end;

  最后为“退出考勤系统”菜单项的onclick事件添加如下代码:

  procedure tform2.a6click(sender: tobject);

  begin   //退出应用程序

   application.terminate;

  end;

  现在,您就可以运行这个程序看看您的劳动成果了。

delphi对开始菜单的编程

http://www.xuedelphi.cn/wenzhang/yytg/2008/12/200812272732.htm

procedure TForm1.Button1Click(Sender: TObject);
var
  Rgn : hRgn;
begin
{隐藏开始菜单}
  Rgn := CreateRectRgn(0, 0, 0, 0);
  SetWindowRgn(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil),Rgn, true);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
{显示开始菜单}
  SetWindowRgn(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil),0,true);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
{禁用开始菜单}
  EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0, 'Button', nil),false);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
{取消禁用菜单}
  EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil),true);
end;




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab随笔之矩阵入门知识发布时间:2022-07-18
下一篇:
matlab矩阵相加发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap