怎样做才能使用户无法切换到其它的应用程序呢?谢谢!(50分)(50分)

  • 主题发起人 主题发起人 zyl000
  • 开始时间 开始时间
1、屏蔽系统功能键(用屏保方式欺骗);<br>2、去掉桌面、系统菜单条。<br>
 
将Form的FormStyle属性设为fsStayOnTop <br>将Form的WindowState属性设为wsMaximized <br>在Form的OnCreate事件处理过程中为Windows发送一个屏幕保护程序正在运行的消息 <br>当程序结束时清除屏幕保护程序运行标志。 <br>procedure TForm1.FormCreate(Sender: TObject);<br>var<br>&nbsp; temp: Integer;<br>begin<br>&nbsp; SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @temp, 0);<br>end;<br><br>procedure Form1.OnClose(Sender: TObject; var Action: TCloseAction);<br>var<br>&nbsp; temp: Integer;<br>begin<br>&nbsp; SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @temp, 0);<br>end;
 
屏蔽Alt+Tab键,以及win键+Tab键
 
to TYZhang:<br>&nbsp; &nbsp;如何去掉桌面、系统菜单条呢?又如何恢复?
 
去掉:<br>var Buffer:Array[0..50] of char;<br>&nbsp; &nbsp; Handle:HWND;<br>begin<br>&nbsp; strcopy(Buffer,'Progman');<br>&nbsp; Handle:=FindWindow(Buffer,nil);<br>&nbsp; if(Handle&gt;0) then ShowWindow(Handle,SW_HIDE);<br>&nbsp; strcopy(Buffer,'Shell_TrayWnd');<br>&nbsp; Handle:=FindWindow(Buffer,nil);<br>&nbsp; if(Handle&gt;0) then ShowWindow(Handle,SW_HIDE);<br>end;<br><br>显示:<br>var Buffer:Array[0..50] of char;<br>&nbsp; &nbsp; Handle:HWND;<br>begin<br>&nbsp; strcopy(Buffer,'Progman');<br>&nbsp; Handle:=FindWindow(Buffer,nil);<br>&nbsp; if(Handle&gt;0) then ShowWindow(Handle,SW_SHOW);<br>&nbsp; strcopy(Buffer,'Shell_TrayWnd');<br>&nbsp; Handle:=FindWindow(Buffer,nil);<br>&nbsp; if(Handle&gt;0) then ShowWindow(Handle,SW_SHOW);<br>end;
 
&nbsp;谢谢大家,特别谢谢TYZhang,我会给你分的,<br>不过还有没有更好的方法呢?从程序本身着手而不改变其它
 
procedure TForm1.FormCreate(Sender: TObject);<br>begin<br>application.Title:='';<br>//应用程序没有名称,按Ctrl+Alt+Del时看不到程序<br>application.showmainform:=false;<br>//程序运行时不显示<br>end;<br><br>//应该可以拿50分了<br>
 
用SETWINGDOWPOS函数,此API函数可以保证窗体在屏幕里的位置。[:D]<br>另外,设置了application.showmainform:=false;后,应<br>设置热键(如ALT+A),application.showmainform:=TRUE;再现窗口[:D]<br>
 
&nbsp;谢谢大家!
 
后退
顶部