Einzelnen Beitrag anzeigen

Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

objShell.Run + objExec.StdOut.ReadAll = Fehler

  Alt 28. Jul 2008, 01:03
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
  Mit Zitat antworten Zitat