Hallo allen,
Ik heb een procedure geschreven om data te verkrijgen van het WMI interface van een remotecomputer. Deze procedure is onderdeel van een hele reeks. Probleem doet zich nu echter voor wanneer de remotehost geen WMI service heeft draaien. Dan kan ie dus niet verbinden en knalt de hele procedure eruit met de melding: "RPC server unavailable". Dit is de code die ik heb geschreven:
Weet iemand hoe ik voorkom dat de hele procedure eruit knalt als de bovenstaande procedure eruit knalt? OnExeption??
Ik heb een procedure geschreven om data te verkrijgen van het WMI interface van een remotecomputer. Deze procedure is onderdeel van een hele reeks. Probleem doet zich nu echter voor wanneer de remotehost geen WMI service heeft draaien. Dan kan ie dus niet verbinden en knalt de hele procedure eruit met de melding: "RPC server unavailable". Dit is de code die ik heb geschreven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| Procedure TForm1.Getinfo (WMI_Interface: String);
Var
Locator : ISWbemLocator;
Services : ISWbemServices;
ObjectSet : SWbemObjectSet;
Enum : IEnumVARIANT;
TempObj : OleVariant;
Value : Cardinal;
SObject : ISWbemObject;
begin
MyResults := TStringlist.Create;
Locator := CoSWbemLocator.Create;
services:=locator.connectserver(Computername2,'','','','','',0, nil);
sObject:= services.Get(WMI_Interface, wbemFlagUseAmendedQualifiers, nil);
ObjectSet:= SObject.Instances_(0, nil);
Enum:= (ObjectSet._NewEnum) as IEnumVariant;
while (Enum.Next(1, TempObj, Value) = S_OK) do
begin
SObject:= IUnknown(TempObj) as SWBemObject;
if WMI_Interface = 'Win32_Processor' then
begin
MyResults.Text := SObject.GetObjectText_(0);
GetInfoBool := True;
end;
CPUInfo := SObject.GetObjectText_(0);
end;
if WMI_Interface = 'Win32_ComputerSystem' then myResults.Text := SObject.GetObjectText_(0);
end; |
Weet iemand hoe ik voorkom dat de hele procedure eruit knalt als de bovenstaande procedure eruit knalt? OnExeption??