📄 winsvc.pas
字号:
var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceConfig}
{$ELSE}
function QueryServiceConfig(hService: SC_HANDLE;
lpServiceConfig: LPQUERY_SERVICE_CONFIGA; cbBufSize: DWORD;
var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceConfig}
{$ENDIF}
function QueryServiceConfig2A(hService: SC_HANDLE; dwInfoLevel: DWORD;
lpBuffer: LPBYTE; cbBufSize: DWORD; var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceConfig2A}
function QueryServiceConfig2W(hService: SC_HANDLE; dwInfoLevel: DWORD;
lpBuffer: LPBYTE; cbBufSize: DWORD; var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceConfig2W}
{$IFDEF UNICODE}
function QueryServiceConfig2(hService: SC_HANDLE; dwInfoLevel: DWORD;
lpBuffer: LPBYTE; cbBufSize: DWORD; var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceConfig2}
{$ELSE}
function QueryServiceConfig2(hService: SC_HANDLE; dwInfoLevel: DWORD;
lpBuffer: LPBYTE; cbBufSize: DWORD; var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceConfig2}
{$ENDIF}
function QueryServiceLockStatusA(hSCManager: SC_HANDLE;
lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSA; cbBufSize: DWORD;
var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceLockStatusA}
function QueryServiceLockStatusW(hSCManager: SC_HANDLE;
lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSW; cbBufSize: DWORD;
var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceLockStatusW}
{$IFDEF UNICODE}
function QueryServiceLockStatus(hSCManager: SC_HANDLE;
lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSW; cbBufSize: DWORD;
var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceLockStatus}
{$ELSE}
function QueryServiceLockStatus(hSCManager: SC_HANDLE;
lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSA; cbBufSize: DWORD;
var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceLockStatus}
{$ENDIF}
function QueryServiceObjectSecurity(hService: SC_HANDLE;
dwSecurityInformation: SECURITY_INFORMATION;
var lpSecurityDescriptor: SECURITY_DESCRIPTOR; cbBufSize: DWORD;
var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceObjectSecurity}
function QueryServiceStatus(hService: SC_HANDLE;
var lpServiceStatus: SERVICE_STATUS): BOOL; stdcall;
{$EXTERNALSYM QueryServiceStatus}
function QueryServiceStatusEx(hService: SC_HANDLE; InfoLevel: SC_STATUS_TYPE;
lpBuffer: LPBYTE; cbBufSize: DWORD; var pcbBytesNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM QueryServiceStatusEx}
function RegisterServiceCtrlHandlerA(lpServiceName: LPCSTR;
lpHandlerProc: LPHANDLER_FUNCTION): SERVICE_STATUS_HANDLE; stdcall;
{$EXTERNALSYM RegisterServiceCtrlHandlerA}
function RegisterServiceCtrlHandlerW(lpServiceName: LPCWSTR;
lpHandlerProc: LPHANDLER_FUNCTION): SERVICE_STATUS_HANDLE; stdcall;
{$EXTERNALSYM RegisterServiceCtrlHandlerW}
{$IFDEF UNICODE}
function RegisterServiceCtrlHandler(lpServiceName: LPCWSTR;
lpHandlerProc: LPHANDLER_FUNCTION): SERVICE_STATUS_HANDLE; stdcall;
{$EXTERNALSYM RegisterServiceCtrlHandler}
{$ELSE}
function RegisterServiceCtrlHandler(lpServiceName: LPCSTR;
lpHandlerProc: LPHANDLER_FUNCTION): SERVICE_STATUS_HANDLE; stdcall;
{$EXTERNALSYM RegisterServiceCtrlHandler}
{$ENDIF}
function RegisterServiceCtrlHandlerExA(lpServiceName: LPCSTR;
lpHandlerProc: LPHANDLER_FUNCTION_EX; lpContext: LPVOID): SERVICE_STATUS_HANDLE; stdcall;
{$EXTERNALSYM RegisterServiceCtrlHandlerExA}
function RegisterServiceCtrlHandlerExW(lpServiceName: LPCWSTR;
lpHandlerProc: LPHANDLER_FUNCTION_EX; lpContext: LPVOID): SERVICE_STATUS_HANDLE; stdcall;
{$EXTERNALSYM RegisterServiceCtrlHandlerExW}
{$IFDEF UNICODE}
function RegisterServiceCtrlHandlerEx(lpServiceName: LPCWSTR;
lpHandlerProc: LPHANDLER_FUNCTION_EX; lpContext: LPVOID): SERVICE_STATUS_HANDLE; stdcall;
{$EXTERNALSYM RegisterServiceCtrlHandlerEx}
{$ELSE}
function RegisterServiceCtrlHandlerEx(lpServiceName: LPCSTR;
lpHandlerProc: LPHANDLER_FUNCTION_EX; lpContext: LPVOID): SERVICE_STATUS_HANDLE; stdcall;
{$EXTERNALSYM RegisterServiceCtrlHandlerEx}
{$ENDIF}
function SetServiceObjectSecurity(hService: SC_HANDLE;
dwSecurityInformation: SECURITY_INFORMATION;
const lpSecurityDescriptor: SECURITY_DESCRIPTOR): BOOL; stdcall;
{$EXTERNALSYM SetServiceObjectSecurity}
function SetServiceStatus(hServiceStatus: SERVICE_STATUS_HANDLE;
const lpServiceStatus: SERVICE_STATUS): BOOL; stdcall;
{$EXTERNALSYM SetServiceStatus}
function StartServiceCtrlDispatcherA(lpServiceStartTable: LPSERVICE_TABLE_ENTRYA): BOOL; stdcall;
{$EXTERNALSYM StartServiceCtrlDispatcherA}
function StartServiceCtrlDispatcherW(lpServiceStartTable: LPSERVICE_TABLE_ENTRYW): BOOL; stdcall;
{$EXTERNALSYM StartServiceCtrlDispatcherW}
{$IFDEF UNICODE}
function StartServiceCtrlDispatcher(lpServiceStartTable: LPSERVICE_TABLE_ENTRYW): BOOL; stdcall;
{$EXTERNALSYM StartServiceCtrlDispatcher}
{$ELSE}
function StartServiceCtrlDispatcher(lpServiceStartTable: LPSERVICE_TABLE_ENTRYA): BOOL; stdcall;
{$EXTERNALSYM StartServiceCtrlDispatcher}
{$ENDIF}
function StartServiceA(hService: SC_HANDLE; dwNumServiceArgs: DWORD;
lpServiceArgVectors: LPCSTR): BOOL; stdcall;
{$EXTERNALSYM StartServiceA}
function StartServiceW(hService: SC_HANDLE; dwNumServiceArgs: DWORD;
lpServiceArgVectors: LPCWSTR): BOOL; stdcall;
{$EXTERNALSYM StartServiceW}
{$IFDEF UNICODE}
function StartService(hService: SC_HANDLE; dwNumServiceArgs: DWORD;
lpServiceArgVectors: LPCWSTR): BOOL; stdcall;
{$EXTERNALSYM StartService}
{$ELSE}
function StartService(hService: SC_HANDLE; dwNumServiceArgs: DWORD;
lpServiceArgVectors: LPCSTR): BOOL; stdcall;
{$EXTERNALSYM StartService}
{$ENDIF}
function UnlockServiceDatabase(ScLock: SC_LOCK): BOOL; stdcall;
{$EXTERNALSYM UnlockServiceDatabase}
implementation
const
advapi32 = 'advapi32.dll';
function ChangeServiceConfigA; external advapi32 name 'ChangeServiceConfigA';
function ChangeServiceConfigW; external advapi32 name 'ChangeServiceConfigW';
{$IFDEF UNICODE}
function ChangeServiceConfig; external advapi32 name 'ChangeServiceConfigW';
{$ELSE}
function ChangeServiceConfig; external advapi32 name 'ChangeServiceConfigA';
{$ENDIF}
function ChangeServiceConfig2A; external advapi32 name 'ChangeServiceConfig2A';
function ChangeServiceConfig2W; external advapi32 name 'ChangeServiceConfig2W';
{$IFDEF UNICODE}
function ChangeServiceConfig2; external advapi32 name 'ChangeServiceConfig2W';
{$ELSE}
function ChangeServiceConfig2; external advapi32 name 'ChangeServiceConfig2A';
{$ENDIF}
function CloseServiceHandle; external advapi32 name 'CloseServiceHandle';
function ControlService; external advapi32 name 'ControlService';
function CreateServiceA; external advapi32 name 'CreateServiceA';
function CreateServiceW; external advapi32 name 'CreateServiceW';
{$IFDEF UNICODE}
function CreateService; external advapi32 name 'CreateServiceW';
{$ELSE}
function CreateService; external advapi32 name 'CreateServiceA';
{$ENDIF}
function DeleteService; external advapi32 name 'DeleteService';
function EnumDependentServicesA; external advapi32 name 'EnumDependentServicesA';
function EnumDependentServicesW; external advapi32 name 'EnumDependentServicesW';
{$IFDEF UNICODE}
function EnumDependentServices; external advapi32 name 'EnumDependentServicesW';
{$ELSE}
function EnumDependentServices; external advapi32 name 'EnumDependentServicesA';
{$ENDIF}
function EnumServicesStatusA; external advapi32 name 'EnumServicesStatusA';
function EnumServicesStatusW; external advapi32 name 'EnumServicesStatusW';
{$IFDEF UNICODE}
function EnumServicesStatus; external advapi32 name 'EnumServicesStatusW';
{$ELSE}
function EnumServicesStatus; external advapi32 name 'EnumServicesStatusA';
{$ENDIF}
function EnumServicesStatusExA; external advapi32 name 'EnumServicesStatusExA';
function EnumServicesStatusExW; external advapi32 name 'EnumServicesStatusExW';
{$IFDEF UNICODE}
function EnumServicesStatusEx; external advapi32 name 'EnumServicesStatusExW';
{$ELSE}
function EnumServicesStatusEx; external advapi32 name 'EnumServicesStatusExA';
{$ENDIF}
function GetServiceKeyNameA; external advapi32 name 'GetServiceKeyNameA';
function GetServiceKeyNameW; external advapi32 name 'GetServiceKeyNameW';
{$IFDEF UNICODE}
function GetServiceKeyName; external advapi32 name 'GetServiceKeyNameW';
{$ELSE}
function GetServiceKeyName; external advapi32 name 'GetServiceKeyNameA';
{$ENDIF}
function GetServiceDisplayNameA; external advapi32 name 'GetServiceDisplayNameA';
function GetServiceDisplayNameW; external advapi32 name 'GetServiceDisplayNameW';
{$IFDEF UNICODE}
function GetServiceDisplayName; external advapi32 name 'GetServiceDisplayNameW';
{$ELSE}
function GetServiceDisplayName; external advapi32 name 'GetServiceDisplayNameA';
{$ENDIF}
function LockServiceDatabase; external advapi32 name 'LockServiceDatabase';
function NotifyBootConfigStatus; external advapi32 name 'NotifyBootConfigStatus';
function OpenSCManagerA; external advapi32 name 'OpenSCManagerA';
function OpenSCManagerW; external advapi32 name 'OpenSCManagerW';
{$IFDEF UNICODE}
function OpenSCManager; external advapi32 name 'OpenSCManagerW';
{$ELSE}
function OpenSCManager; external advapi32 name 'OpenSCManagerA';
{$ENDIF}
function OpenServiceA; external advapi32 name 'OpenServiceA';
function OpenServiceW; external advapi32 name 'OpenServiceW';
{$IFDEF UNICODE}
function OpenService; external advapi32 name 'OpenServiceW';
{$ELSE}
function OpenService; external advapi32 name 'OpenServiceA';
{$ENDIF}
function QueryServiceConfigA; external advapi32 name 'QueryServiceConfigA';
function QueryServiceConfigW; external advapi32 name 'QueryServiceConfigW';
{$IFDEF UNICODE}
function QueryServiceConfig; external advapi32 name 'QueryServiceConfigW';
{$ELSE}
function QueryServiceConfig; external advapi32 name 'QueryServiceConfigA';
{$ENDIF}
function QueryServiceConfig2A; external advapi32 name 'QueryServiceConfig2A';
function QueryServiceConfig2W; external advapi32 name 'QueryServiceConfig2W';
{$IFDEF UNICODE}
function QueryServiceConfig2; external advapi32 name 'QueryServiceConfig2W';
{$ELSE}
function QueryServiceConfig2; external advapi32 name 'QueryServiceConfig2A';
{$ENDIF}
function QueryServiceLockStatusA; external advapi32 name 'QueryServiceLockStatusA';
function QueryServiceLockStatusW; external advapi32 name 'QueryServiceLockStatusW';
{$IFDEF UNICODE}
function QueryServiceLockStatus; external advapi32 name 'QueryServiceLockStatusW';
{$ELSE}
function QueryServiceLockStatus; external advapi32 name 'QueryServiceLockStatusA';
{$ENDIF}
function QueryServiceObjectSecurity; external advapi32 name 'QueryServiceObjectSecurity';
function QueryServiceStatus; external advapi32 name 'QueryServiceStatus';
function QueryServiceStatusEx; external advapi32 name 'QueryServiceStatusEx';
function RegisterServiceCtrlHandlerA; external advapi32 name 'RegisterServiceCtrlHandlerA';
function RegisterServiceCtrlHandlerW; external advapi32 name 'RegisterServiceCtrlHandlerW';
{$IFDEF UNICODE}
function RegisterServiceCtrlHandler; external advapi32 name 'RegisterServiceCtrlHandlerW';
{$ELSE}
function RegisterServiceCtrlHandler; external advapi32 name 'RegisterServiceCtrlHandlerA';
{$ENDIF}
function RegisterServiceCtrlHandlerExA; external advapi32 name 'RegisterServiceCtrlHandlerExA';
function RegisterServiceCtrlHandlerExW; external advapi32 name 'RegisterServiceCtrlHandlerExW';
{$IFDEF UNICODE}
function RegisterServiceCtrlHandlerEx; external advapi32 name 'RegisterServiceCtrlHandlerExW';
{$ELSE}
function RegisterServiceCtrlHandlerEx; external advapi32 name 'RegisterServiceCtrlHandlerExA';
{$ENDIF}
function SetServiceObjectSecurity; external advapi32 name 'SetServiceObjectSecurity';
function SetServiceStatus; external advapi32 name 'SetServiceStatus';
function StartServiceCtrlDispatcherA; external advapi32 name 'StartServiceCtrlDispatcherA';
function StartServiceCtrlDispatcherW; external advapi32 name 'StartServiceCtrlDispatcherW';
{$IFDEF UNICODE}
function StartServiceCtrlDispatcher; external advapi32 name 'StartServiceCtrlDispatcherW';
{$ELSE}
function StartServiceCtrlDispatcher; external advapi32 name 'StartServiceCtrlDispatcherA';
{$ENDIF}
function StartServiceA; external advapi32 name 'StartServiceA';
function StartServiceW; external advapi32 name 'StartServiceW';
{$IFDEF UNICODE}
function StartService; external advapi32 name 'StartServiceW';
{$ELSE}
function StartService; external advapi32 name 'StartServiceA';
{$ENDIF}
function UnlockServiceDatabase; external advapi32 name 'UnlockServiceDatabase';
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -