发信人: skyice() 
整理人: wenbobo(2002-12-06 23:27:39), 站内信件
 | 
 
 
    关键的一点在于使用未公开的 API 函数 RegisterServiceProcess。
     RegisterServiceProcess 函数包含在 kernel32.dll 中,由于它属
 于没有公开的 API 函数,因此还涉及到在应用程序中动态装入与卸载动态
 链接库的问题。
     下面是程序代码(bcb4下调试通过):
 
 typedef DWORD (* RegisterServiceProcessCallBack)
      (DWORD dwProcessId,DWORD dwType);
 
 void __fastcall TMainForm::FormCreate(TObject *Sender)
 {
     HINSTANCE hLib=LoadLibrary("kernel32.dll");
     FARPROC ptr=GetProcAddress(hLib,"RegisterServiceProcess");
     RegisterServiceProcessCallBack RegisterServiceProcess;
     RegisterServiceProcess=(RegisterServiceProcessCallBack)ptr;
     DWORD ProcessID = GetCurrentProcessId();
     (* RegisterServiceProcess)(ProcessID,1);
     FreeLibrary(hLib);
 }
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.99.76.78]
  | 
 
 
 |