[답변]실행파일 숨기기
올 린 ID 이창엽(lifewalk) 작 성 시 각 2000-06-19 오전 11:28:58
조 회 수 22 첨 부 파 일
RegisterServiceProcess API를 이용해 서비스 모드 프로그램으로 등록하면
CTRL-ALT-DEL dialog에 안나옵니다.
RegisterServiceProcess는 KERNEL32.DLL이 제공하는 함수이지만 SDK 헤더 파일에는
이 함수의 prototype이 제공되지 않습니다.
[code example]
typedef DWORD (__stdcall *pRegFunction)(DWORD, DWORD);
HINSTANCE hKernelLib;
pRegFunction RegisterServiceProcess;
A::A()
{
hKernelLib = LoadLibrary("kernel32.dll");
if(hKernelLib) {
RegisterServiceProcess =
(pRegFunction)GetProcAddress(hKernelLib,
"RegisterServiceProcess");
if(RegisterServiceProcess)
RegisterServiceProcess(GetCurrentProcessId(),
RSP_SIMPLE_SERVICE);
}
}
A::~A()
{
if(hKernelLib) {
if(RegisterServiceProcess)
RegisterServiceProcess(GetCurrentProcessId(),
RSP_UNREGISTER_SERVICE);
FreeLibrary(hKernelLib);
}
}
올 린 ID 이창엽(lifewalk) 작 성 시 각 2000-06-19 오전 11:28:58
조 회 수 22 첨 부 파 일
RegisterServiceProcess API를 이용해 서비스 모드 프로그램으로 등록하면
CTRL-ALT-DEL dialog에 안나옵니다.
RegisterServiceProcess는 KERNEL32.DLL이 제공하는 함수이지만 SDK 헤더 파일에는
이 함수의 prototype이 제공되지 않습니다.
[code example]
typedef DWORD (__stdcall *pRegFunction)(DWORD, DWORD);
HINSTANCE hKernelLib;
pRegFunction RegisterServiceProcess;
A::A()
{
hKernelLib = LoadLibrary("kernel32.dll");
if(hKernelLib) {
RegisterServiceProcess =
(pRegFunction)GetProcAddress(hKernelLib,
"RegisterServiceProcess");
if(RegisterServiceProcess)
RegisterServiceProcess(GetCurrentProcessId(),
RSP_SIMPLE_SERVICE);
}
}
A::~A()
{
if(hKernelLib) {
if(RegisterServiceProcess)
RegisterServiceProcess(GetCurrentProcessId(),
RSP_UNREGISTER_SERVICE);
FreeLibrary(hKernelLib);
}
}
'KB > MFC/Win32' 카테고리의 다른 글
[DB] 트리거 사용 (0) | 2004.04.28 |
---|---|
익스플로러 인터페이스 받기 (0) | 2004.04.28 |
CSliderCtrl을 DoModal 다이얼로그에 붙일때 (0) | 2004.04.28 |
[winsock] 소켓 타임 아웃 주기 (0) | 2004.04.28 |
새창으로 웹브라우저 띄우기 (0) | 2004.04.28 |