範例如下, 按Button1啟動Service, Button2停止Service
//--------------------------------------------------------------------------- #include
#pragma hdrstop #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
BOOL ControlService(BOOL bStart)
{
SC_HANDLE h_sc = NULL;
SC_HANDLE h_service = NULL;
SERVICE_STATUS SrvStatus; // Open Service Database
h_sc = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if(!h_sc) return FALSE;
else
{
__try
{
h_service = OpenService(h_sc, TEXT("RemoteAccess"), SERVICE_ALL_ACCESS); if(!h_service) return FALSE; if (bStart)
{
if(!StartService(h_service, 0, NULL))
{
// Start Service Failed
return FALSE;
}
}
else
{
if (!ControlService(h_service, SERVICE_CONTROL_STOP, &SrvStatus))
{
// Stop service failed
return FALSE;
}
}
}
__finally
{
CloseServiceHandle(h_sc);
}
} return TRUE;
}
//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Strat service
ControlService(TRUE);
}
//--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender)
{
// Stop service
ControlService(FALSE);
}
//---------------------------------------------------------------------------