⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lc_bcb_86.html

📁 C++Builder教学大全
💻 HTML
字号:


<HTML><HEAD>

<TITLE> Windows95/98下怎样隐藏应用程序</TITLE>

<META content="text/html; charset=gb2312" http-equiv=Content-Type>

<META content="Microsoft FrontPage 4.0" name=GENERATOR>

</HEAD>

<BODY>

<h3 align="center"> Windows95/98下怎样隐藏应用程序</h3>

<h3>问: Windows95/98下怎样隐藏应用程序不让它出现在CTRL-ALT-DEL对话框中?</h3>  

<h3>答:</h3>  

<p>把你的应用程序从CTRL-ALT-DEL对话框中隐藏的一个简单办法是去应用程序的标题。如果一个程序的主窗口没以标题,Windows95不把它放到CTRL-ALT-DEL对话框中。清除标题属性的最好地方是在WinMain函数里。</p>  

<pre><span style="BACKGROUND-COLOR: silver"><font size="4">WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, <b>int</b>)</font></span>

<span style="BACKGROUND-COLOR: silver"><font size="4">{</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    <b>try</b></font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    {</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">         Application-&gt;Title = &quot;&quot;;</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">         Application-&gt;Initialize();</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">         Application-&gt;CreateForm(<b>__classid</b>(TForm1), &amp;Form1);</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">         Application-&gt;Run();</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    }</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    <b>catch</b> (Exception &amp;exception)</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    {</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">         Application-&gt;ShowException(&amp;exception);</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    }</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    <b>return</b> 0;</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">}</font></span></pre>  

<p>另一种方法是:调用RegisterServiceProcess API   

函数将程序注册成为一个服务模式程序。 RegisterServiceProcess是一个在Kernel32.dll里相关但无正式文件的函数。在MS   

SDK头文件里没有该函数的原型说明,但在Borland import libraries   

for C++ Builder里能找到。很显然,这个函数的主要目的是创建一个服务模式程序。之所以说<i>很显然</i>,是因为MSDN里实质上对这个函数没有说什么。</p>  

<p>下面的例子代码演示了在Windows95/98下怎样通过使用RegisterServiceProcess来把你的程序从CTRL-ALT-DEL对话框中隐藏起来。</p>  

<pre><span style="BACKGROUND-COLOR: silver"><font size="4">//------------Header file------------------------------</font></span>

<span style="BACKGROUND-COLOR: silver"><b><font size="4">typedef</font></b><font size="4"> DWORD (<b>__stdcall</b> *pRegFunction)(DWORD, DWORD);</font></span>

&nbsp;

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4"><b>class</b> TForm1 : public TForm</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">{</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4"><b>__published:</b></font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    TButton *Button1;</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4"><b>private</b>:</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    HINSTANCE hKernelLib;</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    pRegFunction RegisterServiceProcess;</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4"><b>public</b>:</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    <b>__fastcall</b> TForm1(TComponent* Owner);</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    <b>__fastcall</b> ~TForm1();</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">};</font></span>

&nbsp;

&nbsp;

<span style="BACKGROUND-COLOR: silver"><font size="4">//-----------CPP file------------------------------</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">#include &quot;Unit1.h&quot;</font></span>

&nbsp;

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">#define RSP_SIMPLE_SERVICE     1</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">#define RSP_UNREGISTER_SERVICE 0</font></span>

&nbsp;

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4"><b>__fastcall</b> TForm1::TForm1(TComponent* Owner)</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    : TForm(Owner)</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">{</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    hKernelLib = LoadLibrary(&quot;kernel32.dll&quot;);</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    <b>if</b>(hKernelLib)</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    {</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">        RegisterServiceProcess =</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">                  (pRegFunction)GetProcAddress(hKernelLib,</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">                                               &quot;RegisterServiceProcess&quot;);</font></span>

&nbsp;

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">        <b>if</b>(RegisterServiceProcess)</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">            RegisterServiceProcess(GetCurrentProcessId(),</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">                                   RSP_SIMPLE_SERVICE);</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    }</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">}</font></span>

&nbsp;

<span style="BACKGROUND-COLOR: silver"><b><font size="4">__fastcall</font></b><font size="4"> TForm1::~TForm1()</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">{</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    <b>if</b>(hKernelLib)</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    {</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">        <b>if</b>(RegisterServiceProcess)</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">            RegisterServiceProcess(GetCurrentProcessId(),</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">                                   RSP_UNREGISTER_SERVICE);</font></span>

&nbsp;

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">        FreeLibrary(hKernelLib);</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">    }</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">}</font></span>

<span style="BACKGROUND-COLOR: silver"><font color="blue" size="4">//-------------------------------------------------</font></span></pre>  

<p><b>注:</b> windows NT下<font size="4">没有<tt>RegisterServiceProcess函数。</tt></font></p>  

<div id="content">  

  <p>&nbsp;</p>  

</div>  

</BODY></HTML>  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -