Command prompta çalışan programın konsola vereceği mesajları yakalama

Başlatan z, 18 Şubat 2016, 22:18:15

z

Command promptta çalışan bir programı windows program ile çalıştıracağım. Bunun için programı bir batch içine koyacağım ve batch'ı çağıracağım.

Program konsola mesaj verirse bunlardan haberdar olmak için DOS'un yönlendirme komutundan yararlanacağım.

Örneğin A.exe programını A.bat içine şu şekilde yazacağım.

A.exe > 1.txt

Böylece konsol mesajları 1.txt içine yazılacak.

Fakat A.exe bir hata mesajı verir ve bir tuşa basmamı isterse bu mesajdan haberdar olamayacağımdan (windows program haberdar olamayacağından) 1.txt oluşmayacak ve sistem kitlenecek.

Gerçi "time out" tanımlayarak ctrl c gönderme durumum olabilirse de benim asıl merak ettiğim konu şu;

Command promptda çalışan bir programı delphi C vs bir programla çalıştırıp ardından ekrana çıkacak mesajları gene bu delphi vs programa okutturabilirmiyiz?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

t2


z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

t2


z

Varsa isterim. Kendime Delphi için wordda bir hurda hazırlamaya başlamıştım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Peki command promptta çalışan programın return değerini nasıl öğreneceğim?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

t2

Capture Output demiş. Return degeri orada olmuyor mu? Yani dos ekraninda ne varsa alinabiliyor. Bu, uzun bir string olsa gerek. Parcalara ayrilir, oyle okunur. icinde referans baska string aranir.

if pos('error', outString ) then ...

if pos('Completed', outString ) then ...

z

Return değeri konsolda text olarak çıkmazki. Return değeri işletim sistemine bildirilir.

C'de int main(void)  yazıyoruz ya. İşte adı geçen int değerine de erişmem lazım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com