📄 ntsvcdemodependent.pas
字号:
unit NtSvcDemoDependent;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, WinSvc, JclSvcCtrl, ComCtrls;
type
TfrmDependent = class(TForm)
boxDependOn: TGroupBox;
boxDependBy: TGroupBox;
btnOK: TBitBtn;
treeDependOn: TTreeView;
treeDependBy: TTreeView;
procedure treeDependDblClick(Sender: TObject);
private
m_SelectedSvc: TJclNtService;
procedure ShowDependent(const NtSvc: TJclNtService);
public
class function Execute(const NtSvc: TJclNtService): TJclNtService;
end;
implementation
uses NtSvcDemoGroups;
{$R *.DFM}
{ TfrmDependent }
class function TfrmDependent.Execute(const NtSvc: TJclNtService): TJclNtService;
begin
with TfrmDependent.Create(nil) do
try
ShowDependent(NtSvc);
m_SelectedSvc := nil;
ShowModal;
Result := m_SelectedSvc;
finally
Free;
end;
end;
procedure TfrmDependent.ShowDependent(const NtSvc: TJclNtService);
var
I, J: Integer;
Node: TTreeNode;
SvcGrp: TJclServiceGroup;
begin
treeDependOn.ShowLines := NtSvc.DependentGroupCount <> 0;
treeDependOn.ShowRoot := NtSvc.DependentGroupCount <> 0;
for I:=0 to NtSvc.DependentGroupCount-1 do
begin
SvcGrp := NtSvc.DependentGroups[I];
Node := treeDependOn.Items.AddObject(nil, SvcGrp.Name, SvcGrp);
for J:=0 to SvcGrp.ServiceCount-1 do
treeDependOn.Items.AddChildObject(Node,
SvcGrp.Services[J].ServiceName, SvcGrp.Services[J]);
end;
for I:=0 to NtSvc.DependentServiceCount-1 do
treeDependOn.Items.AddObject(nil, NtSvc.DependentServices[I].ServiceName,
NtSvc.DependentServices[I]);
for I:=0 to NtSvc.DependentByServiceCount-1 do
treeDependBy.Items.AddObject(nil, NtSvc.DependentByServices[I].ServiceName,
NtSvc.DependentByServices[I]);
treeDependOn.FullExpand;
treeDependBy.FullExpand;
end;
procedure TfrmDependent.treeDependDblClick(Sender: TObject);
begin
with TTreeView(Sender) do
if Assigned(Selected) then
if TObject(Selected.Data).ClassType = TJclNtService then
begin
m_SelectedSvc := TJclNtService(Selected.Data);
Close;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -