📄 winsvc.pas
字号:
LPSC_ACTION = ^SC_ACTION;
{$EXTERNALSYM LPSC_ACTION}
_SC_ACTION = record
Type_: SC_ACTION_TYPE;
Delay: DWORD;
end;
{$EXTERNALSYM _SC_ACTION}
SC_ACTION = _SC_ACTION;
{$EXTERNALSYM SC_ACTION}
TScAction = SC_ACTION;
PScAction = LPSC_ACTION;
LPSERVICE_FAILURE_ACTIONSA = ^SERVICE_FAILURE_ACTIONSA;
{$EXTERNALSYM LPSERVICE_FAILURE_ACTIONSA}
_SERVICE_FAILURE_ACTIONSA = record
dwResetPeriod: DWORD;
lpRebootMsg: LPSTR;
lpCommand: LPSTR;
cActions: DWORD;
lpsaActions: LPSC_ACTION;
end;
{$EXTERNALSYM _SERVICE_FAILURE_ACTIONSA}
SERVICE_FAILURE_ACTIONSA = _SERVICE_FAILURE_ACTIONSA;
{$EXTERNALSYM SERVICE_FAILURE_ACTIONSA}
TServiceFailureActionsA = SERVICE_FAILURE_ACTIONSA;
PServiceFailureActionsA = LPSERVICE_FAILURE_ACTIONSA;
LPSERVICE_FAILURE_ACTIONSW = ^SERVICE_FAILURE_ACTIONSW;
{$EXTERNALSYM LPSERVICE_FAILURE_ACTIONSW}
_SERVICE_FAILURE_ACTIONSW = record
dwResetPeriod: DWORD;
lpRebootMsg: LPWSTR;
lpCommand: LPWSTR;
cActions: DWORD;
lpsaActions: LPSC_ACTION;
end;
{$EXTERNALSYM _SERVICE_FAILURE_ACTIONSW}
SERVICE_FAILURE_ACTIONSW = _SERVICE_FAILURE_ACTIONSW;
{$EXTERNALSYM SERVICE_FAILURE_ACTIONSW}
TServiceFailureActionsW = SERVICE_FAILURE_ACTIONSW;
PServiceFailureActionsW = LPSERVICE_FAILURE_ACTIONSW;
{$IFDEF UNICODE}
SERVICE_FAILURE_ACTIONS = SERVICE_FAILURE_ACTIONSW;
{$EXTERNALSYM SERVICE_FAILURE_ACTIONS}
LPSERVICE_FAILURE_ACTIONS = LPSERVICE_FAILURE_ACTIONSW;
{$EXTERNALSYM LPSERVICE_FAILURE_ACTIONS}
TServiceFailureActions = TServiceFailureActionsW;
PServiceFailureActions = PServiceFailureActionsW;
{$ELSE}
SERVICE_FAILURE_ACTIONS = SERVICE_FAILURE_ACTIONSA;
{$EXTERNALSYM SERVICE_FAILURE_ACTIONS}
LPSERVICE_FAILURE_ACTIONS = LPSERVICE_FAILURE_ACTIONSA;
{$EXTERNALSYM LPSERVICE_FAILURE_ACTIONS}
TServiceFailureActions = TServiceFailureActionsA;
PServiceFailureActions = PServiceFailureActionsA;
{$ENDIF}
//
// Handle Types
//
SC_HANDLE = HANDLE;
{$EXTERNALSYM SC_HANDLE}
LPSC_HANDLE = ^SC_HANDLE;
{$EXTERNALSYM LPSC_HANDLE}
SERVICE_STATUS_HANDLE = HANDLE;
{$EXTERNALSYM SERVICE_STATUS_HANDLE}
//
// Info levels for QueryServiceStatusEx
//
_SC_STATUS_TYPE = (SC_STATUS_PROCESS_INFO);
{$EXTERNALSYM _SC_STATUS_TYPE}
SC_STATUS_TYPE = _SC_STATUS_TYPE;
{$EXTERNALSYM SC_STATUS_TYPE}
//
// Info levels for EnumServicesStatusEx
//
_SC_ENUM_TYPE = (SC_ENUM_PROCESS_INFO);
{$EXTERNALSYM _SC_ENUM_TYPE}
SC_ENUM_TYPE = _SC_ENUM_TYPE;
{$EXTERNALSYM SC_ENUM_TYPE}
//
// Service Status Structures
//
LPSERVICE_STATUS = ^SERVICE_STATUS;
{$EXTERNALSYM LPSERVICE_STATUS}
_SERVICE_STATUS = record
dwServiceType: DWORD;
dwCurrentState: DWORD;
dwControlsAccepted: DWORD;
dwWin32ExitCode: DWORD;
dwServiceSpecificExitCode: DWORD;
dwCheckPoint: DWORD;
dwWaitHint: DWORD;
end;
{$EXTERNALSYM _SERVICE_STATUS}
SERVICE_STATUS = _SERVICE_STATUS;
{$EXTERNALSYM SERVICE_STATUS}
TServiceStatus = SERVICE_STATUS;
PServiceStatus = LPSERVICE_STATUS;
LPSERVICE_STATUS_PROCESS = ^SERVICE_STATUS_PROCESS;
{$EXTERNALSYM LPSERVICE_STATUS_PROCESS}
_SERVICE_STATUS_PROCESS = record
dwServiceType: DWORD;
dwCurrentState: DWORD;
dwControlsAccepted: DWORD;
dwWin32ExitCode: DWORD;
dwServiceSpecificExitCode: DWORD;
dwCheckPoint: DWORD;
dwWaitHint: DWORD;
dwProcessId: DWORD;
dwServiceFlags: DWORD;
end;
{$EXTERNALSYM _SERVICE_STATUS_PROCESS}
SERVICE_STATUS_PROCESS = _SERVICE_STATUS_PROCESS;
{$EXTERNALSYM SERVICE_STATUS_PROCESS}
TServiceStatusProcess = SERVICE_STATUS_PROCESS;
PServiceStatusProcess = LPSERVICE_STATUS_PROCESS;
//
// Service Status Enumeration Structure
//
LPENUM_SERVICE_STATUSA = ^ENUM_SERVICE_STATUSA;
{$EXTERNALSYM LPENUM_SERVICE_STATUSA}
_ENUM_SERVICE_STATUSA = record
lpServiceName: LPSTR;
lpDisplayName: LPSTR;
ServiceStatus: SERVICE_STATUS;
end;
{$EXTERNALSYM _ENUM_SERVICE_STATUSA}
ENUM_SERVICE_STATUSA = _ENUM_SERVICE_STATUSA;
{$EXTERNALSYM ENUM_SERVICE_STATUSA}
TEnumServiceStatusA = ENUM_SERVICE_STATUSA;
PEnumServiceStatusA = LPENUM_SERVICE_STATUSA;
LPENUM_SERVICE_STATUSW = ^ENUM_SERVICE_STATUSW;
{$EXTERNALSYM LPENUM_SERVICE_STATUSW}
_ENUM_SERVICE_STATUSW = record
lpServiceName: LPWSTR;
lpDisplayName: LPWSTR;
ServiceStatus: SERVICE_STATUS;
end;
{$EXTERNALSYM _ENUM_SERVICE_STATUSW}
ENUM_SERVICE_STATUSW = _ENUM_SERVICE_STATUSW;
{$EXTERNALSYM ENUM_SERVICE_STATUSW}
TEnumServiceStatusW = ENUM_SERVICE_STATUSW;
PEnumServiceStatusW = LPENUM_SERVICE_STATUSW;
{$IFDEF UNICODE}
ENUM_SERVICE_STATUS = ENUM_SERVICE_STATUSW;
{$EXTERNALSYM ENUM_SERVICE_STATUS}
LPENUM_SERVICE_STATUS = LPENUM_SERVICE_STATUSW;
{$EXTERNALSYM LPENUM_SERVICE_STATUS}
TEnumServiceStatus = TEnumServiceStatusW;
PEnumServiceStatus = PEnumServiceStatusW;
{$ELSE}
ENUM_SERVICE_STATUS = ENUM_SERVICE_STATUSA;
{$EXTERNALSYM ENUM_SERVICE_STATUS}
LPENUM_SERVICE_STATUS = LPENUM_SERVICE_STATUSA;
{$EXTERNALSYM LPENUM_SERVICE_STATUS}
TEnumServiceStatus = TEnumServiceStatusA;
PEnumServiceStatus = PEnumServiceStatusA;
{$ENDIF}
LPENUM_SERVICE_STATUS_PROCESSA = ^ENUM_SERVICE_STATUS_PROCESSA;
{$EXTERNALSYM LPENUM_SERVICE_STATUS_PROCESSA}
_ENUM_SERVICE_STATUS_PROCESSA = record
lpServiceName: LPSTR;
lpDisplayName: LPSTR;
ServiceStatusProcess: SERVICE_STATUS_PROCESS;
end;
{$EXTERNALSYM _ENUM_SERVICE_STATUS_PROCESSA}
ENUM_SERVICE_STATUS_PROCESSA = _ENUM_SERVICE_STATUS_PROCESSA;
{$EXTERNALSYM ENUM_SERVICE_STATUS_PROCESSA}
TEnumServiceStatusProcessA = ENUM_SERVICE_STATUS_PROCESSA;
PEnumServiceStatusProcessA = LPENUM_SERVICE_STATUS_PROCESSA;
LPENUM_SERVICE_STATUS_PROCESSW = ^ENUM_SERVICE_STATUS_PROCESSW;
{$EXTERNALSYM LPENUM_SERVICE_STATUS_PROCESSW}
_ENUM_SERVICE_STATUS_PROCESSW = record
lpServiceName: LPWSTR;
lpDisplayName: LPWSTR;
ServiceStatusProcess: SERVICE_STATUS_PROCESS;
end;
{$EXTERNALSYM _ENUM_SERVICE_STATUS_PROCESSW}
ENUM_SERVICE_STATUS_PROCESSW = _ENUM_SERVICE_STATUS_PROCESSW;
{$EXTERNALSYM ENUM_SERVICE_STATUS_PROCESSW}
TEnumServiceStatusProcessW = ENUM_SERVICE_STATUS_PROCESSW;
PEnumServiceStatusProcessW = LPENUM_SERVICE_STATUS_PROCESSW;
{$IFDEF UNICODE}
ENUM_SERVICE_STATUS_PROCESS = ENUM_SERVICE_STATUS_PROCESSW;
{$EXTERNALSYM ENUM_SERVICE_STATUS_PROCESS}
LPENUM_SERVICE_STATUS_PROCESS = LPENUM_SERVICE_STATUS_PROCESSW;
{$EXTERNALSYM LPENUM_SERVICE_STATUS_PROCESS}
TEnumServiceStatusProcess = TEnumServiceStatusProcessW;
PEnumServiceStatusProcess = PEnumServiceStatusProcessW;
{$ELSE}
ENUM_SERVICE_STATUS_PROCESS = ENUM_SERVICE_STATUS_PROCESSA;
{$EXTERNALSYM ENUM_SERVICE_STATUS_PROCESS}
LPENUM_SERVICE_STATUS_PROCESS = LPENUM_SERVICE_STATUS_PROCESSA;
{$EXTERNALSYM LPENUM_SERVICE_STATUS_PROCESS}
TEnumServiceStatusProcess = TEnumServiceStatusProcessA;
PEnumServiceStatusProcess = PEnumServiceStatusProcessA;
{$ENDIF}
//
// Structures for the Lock API functions
//
SC_LOCK = LPVOID;
{$EXTERNALSYM SC_LOCK}
LPQUERY_SERVICE_LOCK_STATUSA = ^QUERY_SERVICE_LOCK_STATUSA;
{$EXTERNALSYM LPQUERY_SERVICE_LOCK_STATUSA}
_QUERY_SERVICE_LOCK_STATUSA = record
fIsLocked: DWORD;
lpLockOwner: LPSTR;
dwLockDuration: DWORD;
end;
{$EXTERNALSYM _QUERY_SERVICE_LOCK_STATUSA}
QUERY_SERVICE_LOCK_STATUSA = _QUERY_SERVICE_LOCK_STATUSA;
{$EXTERNALSYM QUERY_SERVICE_LOCK_STATUSA}
TQueryServiceLockStatusA = QUERY_SERVICE_LOCK_STATUSA;
PQueryServiceLockStatusA = LPQUERY_SERVICE_LOCK_STATUSA;
LPQUERY_SERVICE_LOCK_STATUSW = ^QUERY_SERVICE_LOCK_STATUSW;
{$EXTERNALSYM LPQUERY_SERVICE_LOCK_STATUSW}
_QUERY_SERVICE_LOCK_STATUSW = record
fIsLocked: DWORD;
lpLockOwner: LPWSTR;
dwLockDuration: DWORD;
end;
{$EXTERNALSYM _QUERY_SERVICE_LOCK_STATUSW}
QUERY_SERVICE_LOCK_STATUSW = _QUERY_SERVICE_LOCK_STATUSW;
{$EXTERNALSYM QUERY_SERVICE_LOCK_STATUSW}
TQueryServiceLockStatusW = QUERY_SERVICE_LOCK_STATUSW;
PQueryServiceLockStatusW = LPQUERY_SERVICE_LOCK_STATUSW;
{$IFDEF UNICODE}
QUERY_SERVICE_LOCK_STATUS = QUERY_SERVICE_LOCK_STATUSW;
{$EXTERNALSYM QUERY_SERVICE_LOCK_STATUS}
LPQUERY_SERVICE_LOCK_STATUS = LPQUERY_SERVICE_LOCK_STATUSW;
{$EXTERNALSYM LPQUERY_SERVICE_LOCK_STATUS}
TQueryServiceLockStatus = TQueryServiceLockStatusW;
PQueryServiceLockStatus = PQueryServiceLockStatusW;
{$ELSE}
QUERY_SERVICE_LOCK_STATUS = QUERY_SERVICE_LOCK_STATUSA;
{$EXTERNALSYM QUERY_SERVICE_LOCK_STATUS}
LPQUERY_SERVICE_LOCK_STATUS = LPQUERY_SERVICE_LOCK_STATUSA;
{$EXTERNALSYM LPQUERY_SERVICE_LOCK_STATUS}
TQueryServiceLockStatus = TQueryServiceLockStatusA;
PQueryServiceLockStatus = PQueryServiceLockStatusA;
{$ENDIF}
//
// Query Service Configuration Structure
//
LPQUERY_SERVICE_CONFIGA = ^QUERY_SERVICE_CONFIGA;
{$EXTERNALSYM LPQUERY_SERVICE_CONFIGA}
_QUERY_SERVICE_CONFIGA = record
dwServiceType: DWORD;
dwStartType: DWORD;
dwErrorControl: DWORD;
lpBinaryPathName: LPSTR;
lpLoadOrderGroup: LPSTR;
dwTagId: DWORD;
lpDependencies: LPSTR;
lpServiceStartName: LPSTR;
lpDisplayName: LPSTR;
end;
{$EXTERNALSYM _QUERY_SERVICE_CONFIGA}
QUERY_SERVICE_CONFIGA = _QUERY_SERVICE_CONFIGA;
{$EXTERNALSYM QUERY_SERVICE_CONFIGA}
TQueryServiceConfigA = QUERY_SERVICE_CONFIGA;
PQueryServiceConfigA = LPQUERY_SERVICE_CONFIGA;
LPQUERY_SERVICE_CONFIGW = ^QUERY_SERVICE_CONFIGW;
{$EXTERNALSYM LPQUERY_SERVICE_CONFIGW}
_QUERY_SERVICE_CONFIGW = record
dwServiceType: DWORD;
dwStartType: DWORD;
dwErrorControl: DWORD;
lpBinaryPathName: LPWSTR;
lpLoadOrderGroup: LPWSTR;
dwTagId: DWORD;
lpDependencies: LPWSTR;
lpServiceStartName: LPWSTR;
lpDisplayName: LPWSTR;
end;
{$EXTERNALSYM _QUERY_SERVICE_CONFIGW}
QUERY_SERVICE_CONFIGW = _QUERY_SERVICE_CONFIGW;
{$EXTERNALSYM QUERY_SERVICE_CONFIGW}
TQueryServiceConfigW = QUERY_SERVICE_CONFIGW;
PQueryServiceConfigW = LPQUERY_SERVICE_CONFIGW;
{$IFDEF UNICODE}
QUERY_SERVICE_CONFIG = QUERY_SERVICE_CONFIGW;
{$EXTERNALSYM QUERY_SERVICE_CONFIG}
LPQUERY_SERVICE_CONFIG = LPQUERY_SERVICE_CONFIGW;
{$EXTERNALSYM LPQUERY_SERVICE_CONFIG}
TQueryServiceConfig = TQueryServiceConfigW;
PQueryServiceConfig = PQueryServiceConfigW;
{$ELSE}
QUERY_SERVICE_CONFIG = QUERY_SERVICE_CONFIGA;
{$EXTERNALSYM QUERY_SERVICE_CONFIG}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -