23-12-2009, 04:01 PM
الدالة CreateService تتيح لنا بإختيار مود التحميل في البارامتر dwStartType
كما يلي :
SERVICE_AUTO_START : يتم تحميل السيرفيس أليا وقت تشغيل النظام .
SERVICE_BOOT_START : يتم تحميل السيرفيس بلودر النظام مود boot
SERVICE_DEMAND_START : يحمل مباشرة فور إستدعاء الدالة StartService
IoInitSystem ## : SERVICE_SYSTEM_START
SERVICE_DISABLED : إبطال السيرفيس محاولا تشغيله في مود الخطأ و ذلك بإرجاع
ERROR_SERVICE_DISABLED
و عليه سنتمكن من عمل Loader بسيط مع التحكم في كيفية أو مود التحميل ...
حيث loadMode :
****ا المشاركة و طرح الأفكار و التوضيحات بارك الله فيكم ,,
كما يلي :
SERVICE_AUTO_START : يتم تحميل السيرفيس أليا وقت تشغيل النظام .
SERVICE_BOOT_START : يتم تحميل السيرفيس بلودر النظام مود boot
SERVICE_DEMAND_START : يحمل مباشرة فور إستدعاء الدالة StartService
IoInitSystem ## : SERVICE_SYSTEM_START
SERVICE_DISABLED : إبطال السيرفيس محاولا تشغيله في مود الخطأ و ذلك بإرجاع
ERROR_SERVICE_DISABLED
و عليه سنتمكن من عمل Loader بسيط مع التحكم في كيفية أو مود التحميل ...
PHP كود :
procedure CallDriver(sysName: string;LoadMode:Byte);
var
hSCManager, hService, hDevice: Hwnd;
dwBytesReturned: DWORD;
lpTemp: PChar;
begin
hSCManager := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE);
if hSCManager <> 0 then
begin
hService := CreateService(hSCManager, 'Sample',
'For Practise !!!',
SERVICE_START or SERVICE_STOP or _DELETE,
SERVICE_KERNEL_DRIVER,
LoadMode,
SERVICE_ERROR_IGNORE,
PChar(sysName),
nil, nil, nil, nil, nil);
if hService <> 0 then
begin
StartService(hService, 0, lpTemp);
DeleteService(hService);
CloseServiceHandle(hService);
end else
begin
ShowMessage('Can''t Create Service .');
end;
CloseServiceHandle(hSCManager);
end else
begin
ShowMessage('Can''t connect to Service Control Manager Data Base .');
end;
end;
حيث loadMode :
PHP كود :
// Start Type
//
{$EXTERNALSYM SERVICE_BOOT_START}
SERVICE_BOOT_START = $00000000;
{$EXTERNALSYM SERVICE_SYSTEM_START}
SERVICE_SYSTEM_START = $00000001;
{$EXTERNALSYM SERVICE_AUTO_START}
SERVICE_AUTO_START = $00000002;
{$EXTERNALSYM SERVICE_DEMAND_START}
SERVICE_DEMAND_START = $00000003;
{$EXTERNALSYM SERVICE_DISABLED}
SERVICE_DISABLED = $00000004;
****ا المشاركة و طرح الأفكار و التوضيحات بارك الله فيكم ,,
I'M Fly Like A G6

