應用程式從工作管理員中消失

來源:互聯網
上載者:User
[問題]
通常我們按下CTRL+ATL+DEL按鍵組合後,可以看到正在啟動並執行程式或者進程,有沒有辦法讓程式從CTRL+ATL+DEL消失掉呢?也就是說讓正在啟動並執行程式對CTRL+ATL+DEL不可見。
[解答]
答案是肯定的,辦法如下:
使用Win32 API 函數RegisterServiceProcess,但是這個API函數的文檔你是很難找到的。這裡我們要用一下彙編。

#include <windows.h>

HINSTANCE hLibrary;
void *regproc;

void CADInit(void);
void HideApp(void);
void ShowApp(void);
void CADClean(void);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
  CADInit(); //載入 DLL 並建立一指向它指標
  HideApp(); //隱藏程式
  //ShowApp(); //顯示程式

  //其他處理或調用
  
  CADClean(); //卸載 DLL
  return 0; //retrun 0 因為沒有進入訊息迴圈
}

void CADInit(void)
{
  //載入 kernel32.dll
  hLibrary = LoadLibrary("kernel32.dll");
  //擷取函數RegisterServiceProcess的地址
  regproc = GetProcAddress(hLibrary, "RegisterServiceProcess");
}

void HideApp(void)
{
  //實現程式的隱藏
  __asm
  {
   push 1
   push 0
   call regproc
  }
  return;
}

void ShowApp(void)
{
  //恢複狀態
  __asm
  {
      push 0
      push 0
      call regproc
  }
  return;
}

void CADClean(void)
{
  //卸載 DLL
  FreeLibrary(hLibrary);
  return;
}
本程式在W2K和Win9x測試通過。  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.