📄 20000805021.htm
字号:
<HTML>
<HEAD>
<TITLE>Windows95/98下怎样隐藏应用程序不让它出现在CTRL-ALT-DEL对话框中?</TITLE>
<META content="MSHTML 5.00.2314.1000" name=GENERATOR>
</HEAD>
<BODY aLink=#FF0000 bgColor=#ffffff leftMargin=0 link=#187800 topMargin=0
vLink=#990099>
<div align="center">
<table width="744" border="0" cellspacing="0" cellpadding="0" height="76">
<tr>
<td>
<p class="coffee" align="center"><font size="3"><b><br>
Windows95/98下怎样隐藏应用程序不让它出现在CTRL-ALT-DEL对话框中?</b></font></p>
<center>
<p align="left">把你的应用程序从CTRL-ALT-DEL对话框中隐藏的一个简单办法是去应用程序的标题。如果一个程序的主窗口没以标题,Windows95不把它放到CTRL-ALT-DEL对话框中。清除标题属性的最好地方是在WinMain函数里。</p>
<div align="left">
<pre><span style="BACKGROUND-COLOR: silver"><font color=blue >WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, </font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>int</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue >)</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >{</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > </font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>try</b></font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > {</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > Application->Title = "";</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > Application->Initialize();</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > Application->CreateForm(</font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>__classid</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue >(TForm1), &Form1);</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > Application->Run();</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > }</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > </font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>catch</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue > (Exception &exception)</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > {</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > Application->ShowException(&exception);</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > }</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > </font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>return</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue > 0;</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >}</font></span></pre>
</div>
<p align="left">另一种方法是:调用RegisterServiceProcess API 函数将程序注册成为一个服务模式程序。
RegisterServiceProcess是一个在Kernel32.dll里相关但无正式文件的函数。在MS SDK头文件里没有该函数的原型说明,但在Borland
import libraries for C++ Builder里能找到。很显然,这个函数的主要目的是创建一个服务模式程序。之所以说<i>很显然</i>,是因为MSDN里实质上对这个函数没有说什么。</p>
<p align="left">下面的例子代码演示了在Windows95/98下怎样通过使用RegisterServiceProcess来把你的程序从CTRL-ALT-DEL对话框中隐藏起来。</p>
<div align="left">
<pre><span style="BACKGROUND-COLOR: silver"><font color=blue >//------------Header file------------------------------</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue ><b>typedef</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue > DWORD (</font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>__stdcall</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue > *pRegFunction)(DWORD, DWORD);</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue ><b>class</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue > TForm1 : public TForm</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >{</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue ><b>__published:</b></font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > TButton *Button1;</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue ><b>private</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue >:</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > HINSTANCE hKernelLib;</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > pRegFunction RegisterServiceProcess;</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue ><b>public</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue >:</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > </font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>__fastcall</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue > TForm1(TComponent* Owner);</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > </font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>__fastcall</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue > ~TForm1();</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >};</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >//-----------CPP file------------------------------</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >#include "Unit1.h"</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >#define RSP_SIMPLE_SERVICE 1</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >#define RSP_UNREGISTER_SERVICE 0</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue ><b>__fastcall</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue > TForm1::TForm1(TComponent* Owner)</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > : TForm(Owner)</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >{</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > hKernelLib = LoadLibrary("kernel32.dll");</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > </font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>if</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue >(hKernelLib)</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > {</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > RegisterServiceProcess =</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > (pRegFunction)GetProcAddress(hKernelLib,</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > "RegisterServiceProcess");</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > </font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>if</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue >(RegisterServiceProcess)</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > RegisterServiceProcess(GetCurrentProcessId(),</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > RSP_SIMPLE_SERVICE);</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > }</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >}</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue ><b>__fastcall</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue > TForm1::~TForm1()</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >{</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > </font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>if</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue >(hKernelLib)</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > {</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > </font></span><span style="BACKGROUND-COLOR: silver"><font color=blue ><b>if</b></font></span><span style="BACKGROUND-COLOR: silver"><font color=blue >(RegisterServiceProcess)</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > RegisterServiceProcess(GetCurrentProcessId(),</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > RSP_UNREGISTER_SERVICE);</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > FreeLibrary(hKernelLib);</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue > }</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >}</font></span>
<span style="BACKGROUND-COLOR: silver"><font color=blue >//-------------------------------------------------</font></span></pre>
</div>
<p align="left"><b>注:</b> windows NT下<font >没有</font><font
><tt>RegisterServiceProcess函数。</tt></font></p>
</center>
</td>
</tr>
</table>
</div>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -