Delphi-Quellcode:
function InStr(Start: integer; Source: string; SourceToFind: string): integer;
begin
Result := pos(SourceToFind,copy(Source,Start,Length(Source) - (Start - 1)));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
objShell : Variant;
objExec : Variant;
objStdOut : Variant;
strResults : String;
begin
objShell := CreateOleObject('WScript.Shell');
objExec := objShell.Run('ping -n 2 -w 1000 -i 255 '+Edit1.Text, SW_HIDE, True);
strResults := objExec.StdOut.ReadAll; // Hier kommt der Fehler !!!
if InStr(0,strResults,'reply from') > 0 then
ShowMessage(Edit1.Text + ' online')
else
ShowMessage(Edit1.Text + ' offline');
end;
end.
Verwende ich "EXEC" um den Befehl abzusetzen, funktioniert alles wunderbar. Nur ich kann das Program nicht versteckt (ohne Dosfenster) ausführen.
Deshalb verwende ich "RUN" aber dann bekommen eine Fehlermeldung wenn ich das Resultat auslesen möchte.
Fehler Meldung:
Zitat:
...Ungültige Variantenoperation...
Wie muss ich "strResults := objExec.StdOut.ReadAll;" umschreiben, damit es funktioniert?
Vielen Dank im voraus.
Sven