主要是不想用户通过开始菜单进行操作。
如果禁用功能有一定的难度,则可不可以实现当用户按下“开始”后,应用程序马上夺回光标(操作权),从而达到用户不能使用“开始”菜单的效果?
我尝试过用SetWindowPos(Handle, HWND_TOPMOST, Left,Top, Width,Height, SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE)函数,但程序只显示却不能夺回光标(程序是灰色的),开始菜单并没有缩回去。form1.setfocus也不行。
请问高手有什么好的方法???分不够可以加,新手,穷!
如果禁用功能有一定的难度,则可不可以实现当用户按下“开始”后,应用程序马上夺回光标(操作权),从而达到用户不能使用“开始”菜单的效果?
我尝试过用SetWindowPos(Handle, HWND_TOPMOST, Left,Top, Width,Height, SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE)函数,但程序只显示却不能夺回光标(程序是灰色的),开始菜单并没有缩回去。form1.setfocus也不行。
请问高手有什么好的方法???分不够可以加,新手,穷!
ftp://[email protected]
PSD:829369214
急着下机,你自己登上去下吧,其他人别去删啊!谢谢!
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.
fenger8293(深爱着兰)的可以研究一下,准有分!
小弟主要是想实现点击桌面按钮后,程序窗口仍然位于最前面,不会因此而缩回去!!
请不吝赐教!!
to zdq801104(我很笨,但是我不傻!) systemparametersinfo这个函数好像只对win9x系统有效,nt的系统限制功能键一般用钩子,有的也可以用注册热键去覆盖,只要在热键的处理里把消息标识为已处理(message.result:=1)就行了。但对win键和ctrl+alt+del不行。
to Cherry_Leo() 如果要实现你的功能我的想法是1.将窗口全屏显示并隐藏任务栏,屏蔽切换等热键。(不知道你的程序允不允许这样)2.用clipcursor来锁定鼠标移动范围 3.暂时我也不知道,呵呵,试试取得桌面窗口的hwnd,对它进行操作看看
procedure TForm1.Button1Click(Sender: TObject);
begin
EnableWindow(FindwindowEx(Findwindow('shell_traywnd',nil),0,'button',nil),false);//開始按紐失效end;procedure TForm1.Button2Click(Sender: TObject);
begin
EnableWindow(FindwindowEx(Findwindow('shell_traywnd',nil),0,'button',nil),true);//恢復開始按紐end;