Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: z - 18 Şubat 2016, 22:18:15

Başlık: Command prompta çalışan programın konsola vereceği mesajları yakalama
Gönderen: z - 18 Şubat 2016, 22:18:15
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?
Başlık: Ynt: Command prompta çalışan programın konsola vereceği mesajları yakalama
Gönderen: t2 - 18 Şubat 2016, 22:34:21

Execute a DOS command and capture the output

http://delphidabbler.com/tips/61 (http://delphidabbler.com/tips/61)
Başlık: Ynt: Command prompta çalışan programın konsola vereceği mesajları yakalama
Gönderen: z - 18 Şubat 2016, 22:43:12
@t2

Sen çok yaşa.
Başlık: Ynt: Command prompta çalışan programın konsola vereceği mesajları yakalama
Gönderen: t2 - 18 Şubat 2016, 22:55:00
Sana yazilim hurdası göndereyim mi:)
Başlık: Ynt: Command prompta çalışan programın konsola vereceği mesajları yakalama
Gönderen: z - 18 Şubat 2016, 22:56:27
Varsa isterim. Kendime Delphi için wordda bir hurda hazırlamaya başlamıştım.
Başlık: Ynt: Command prompta çalışan programın konsola vereceği mesajları yakalama
Gönderen: z - 19 Şubat 2016, 06:17:47
Peki command promptta çalışan programın return değerini nasıl öğreneceğim?
Başlık: Ynt: Command prompta çalışan programın konsola vereceği mesajları yakalama
Gönderen: t2 - 19 Şubat 2016, 06:40:47
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 ...
Başlık: Ynt: Command prompta çalışan programın konsola vereceği mesajları yakalama
Gönderen: z - 19 Şubat 2016, 07:30:33
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.