API
17.08.1999
  • Usuwanie nazwy programu z task managera (ctrl+alt+del).

      Należy wywołać funkcję RegisterServiceProcess, która znajduje się w Kernel32.dll. Przykład w poniższym kodzie:

//------------Plik nagłówkowy------------------------------
typedef DWORD (__stdcall *pRegFunction)(DWORD, DWORD);

class TForm1 : public TForm
{
__published:

private:
    HINSTANCE hKernelLib;
    pRegFunction RegisterServiceProcess;
public:
    __fastcall TForm1(TComponent* Owner);
    __fastcall ~TForm1();
};


//-----------plik CPP------------------------------
#define RSP_SIMPLE_SERVICE     1
#define RSP_UNREGISTER_SERVICE 0

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    hKernelLib = LoadLibrary("kernel32.dll");
    if(hKernelLib)
    {
     RegisterServiceProcess =
          (pRegFunction)GetProcAddress(hKernelLib,
                                    "RegisterServiceProcess");

        if(RegisterServiceProcess)
            RegisterServiceProcess(GetCurrentProcessId(),
                                   RSP_SIMPLE_SERVICE);
    }
}

__fastcall TForm1::~TForm1()
{
    if(hKernelLib)
    {
        if(RegisterServiceProcess)
            RegisterServiceProcess(GetCurrentProcessId(),
                                   RSP_UNREGISTER_SERVICE);

        FreeLibrary(hKernelLib);
    }
}
//-------------------------------------------------