如何让一个DELPHI程序不显示的执行(任务栏和CTRL+SHIFT+DELETE时看不到)(200分)

  • 主题发起人 主题发起人 lumin
  • 开始时间 开始时间
L

lumin

Unregistered / Unconfirmed
GUEST, unregistred user!
如何让一个DELPHI程序不显示的执行(任务栏和CTRL+SHIFT+DELETE时看不到),望各位大虾赐教
 
用CTRL+ALT+DELETE搜索一下,至少有几十个答案吧!
 
如果是Win9x,则在主程序的implementation前面加上一句:<br>function RegisterServiceProcess(dwPID:DWord;dwType:DWord):boolean;<br>StdCall;External 'Kernel32.DLL';<br>然后可以在Form1.Create和Form1.Close里面分别用下面两句来注册服务或取消:<br>RegisterServiceProcess(0,1);{隐藏}<br>RegisterServiceProcess(0,0);{解除}<br><br>NT好像不行
 
对不起,用"隐藏"等关键字搜索比较多.<br>比如: http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=245153<br><br>1.希望大家先搜索问题,后提问<br>2.不要把分数加给我,谢谢
 
本人学得也不算太好。<br>但我想提点我的想法。<br>不知你能不能用delphi把ctrl+shift+alt三键屏蔽掉?<br>如果这样我可也有办法。
 
屏蔽三键<br>要使系统的热启动键(Ctrl+Alt+Del)失效,使用以下语句 <br>SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0); <br>要恢复系统的热启动键(Ctrl+Alt+Del),使用以下语句 <br>SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
 
Application.MainForm.Visible := False;
 
You can do it by shielding the keys("CTRL+ALT+DEL")
 
任务栏不显示,在 FormCreate首句加:<br>&nbsp;SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);<br>屏蔽热启动键(Ctrl+Alt+Del)语句: <br>SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0); <br><br>注意退出时, 在FormCloseQuery 恢复热启动键: <br>SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
 
我同意wjiachun的做法!
 
我去查一下资料,如需要请联系:<br>&nbsp; xxz007@yeah.net
 
不显示在任务栏和他们的一样!另一个再查一下.
 
wjiachun + cHengyAng OK
 
&nbsp;<br>&nbsp; 搜索一下就不用浪费分了。
 
在implementation后添加声明:<br>&nbsp;function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';<br><br>&nbsp;RegisterServiceProcess(GetCurrentProcessID, 1);//隐藏<br>&nbsp;RegisterServiceProcess(GetCurrentProcessID, 0);//显示<br>用ALT+DEL+CTRL看不见<br><br>如何写一个在Win9x、WinNT下通用的“隐身程序”:<br>修改dpr文件<br>uses windows<br>var<br>ExtendedStyle : Integer;<br><br>begin<br>Application.Initialize;<br><br>//============================================================== <br>ExtendedStyle := GetWindowLong (Application.Handle, GWL_EXSTYLE);<br><br>SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle OR WS_EX_TOOLWINDOW<br>AND NOT WS_EX_APPWINDOW);<br>//=============================================================== <br><br>Application.CreateForm(TForm1, Form1);<br>Application.Run;<br>end. <br><br>
 
<br>&gt;&gt;GetWindowLong (Application.Handle, GWL_EXSTYLE);<br>&gt;&gt;SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle OR &gt;&gt;WS_EX_TOOLWINDOW<br>&gt;&gt;AND NOT WS_EX_APPWINDOW);<br>setwindowlong不行,仔细观察一下就能发现,窗口并没有消失,只是隐藏在<br>窗口的左下脚,有任务栏时被遮住,如果隐藏任务栏就能看得很清楚.
 
时间太久,强制结束。 &nbsp; wjiachun
 
后退
顶部