[問題]
通常我們按下CTRL+ATL+DEL組合鍵后,可以看到正在運行的程序或者進程,有沒有辦法讓程序從CTRL+ATL+DEL消失掉呢?也就是說讓正在運行的程序?qū)TRL+ATL+DEL不可見。
[解答]
答案是肯定的,辦法如下:
使用Win32 API 函數(shù)RegisterServiceProcess,但是這個API函數(shù)的文檔你是很難找到的。這里我們要用一下匯編。
#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 并創(chuàng)建一指向它指針
HideApp(); //隱藏程序
//ShowApp(); //顯示程序
//其他處理或調(diào)用
CADClean(); //卸載 DLL
return 0; //retrun 0 因為沒有進入消息循環(huán)
}
void CADInit(void)
{
//加載 kernel32.dll
hLibrary = LoadLibrary("kernel32.dll");
//獲取函數(shù)RegisterServiceProcess的地址
regproc = GetProcAddress(hLibrary, "RegisterServiceProcess");
}
void HideApp(void)
{
//實現(xiàn)程序的隱藏
__asm
{
push 1
push 0
call regproc
}
return;
}
void ShowApp(void)
{
//恢復狀態(tài)
__asm
{
push 0
push 0
call regproc
}
return;
}
void CADClean(void)
{
//卸載 DLL
FreeLibrary(hLibrary);
return;
}
本程序在W2K和Win9x測試通過。
posted on 2007-04-09 14:51
喬棟 閱讀(747)
評論(0) 編輯 收藏 引用 所屬分類:
C++的健身房