利用DELPHI实现完全桌面控制的实现
2011-04-21 14:31
309 查看
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;
在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;
相关文章推荐
- 重构桌面飘着圣诞老人,利用策略模式和改造的代理模式让软件完全实现开闭原则,欢迎下载源代码分析
- 利用远程桌面连接实现外网对局域网计算机的控制
- Delphi编程:完全控制桌面的实现
- 利用Windows2003 IP安全策略实现服务器远程桌面端口(3389)访问控制
- Delphi编程:完全控制桌面的实现
- Delphi编程:完全控制桌面的实现
- Delphi编程:完全控制桌面的实现
- 利用远程桌面连接实现外网对局域网计算机的控制
- 利用远程桌面连接实现外网对局域网计算机的控制
- Delphi编程:完全控制桌面的实现
- Delphi利用TActionList实现权限控制
- 利用Windows2003 IP安全策略实现服务器远程桌面端口(3389)访问控制
- Delphi编程:完全控制桌面的实现
- 利用css里expression来实现界面对象的批量控制
- Delphi中利用管道重定向实现对控制台(Console)程序的操作
- 利用VB实现对IE的调用与控制
- 利用websm和vnc实现远程控制HMC
- 利用AT和shutdown命令实现自动关机任务||远程桌面关闭重启电脑
- 利用javascript实现类似delphi中数据敏感控件dbtextbox!
- 一个利用CAN实现车辆控制的简单模板