Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi tarafından çağrılan programın süresini bulma
#1
İyi günler.

Kendi şirketimizde kullanmak için bir program yazmamız gerekiyor.
Müşterilerimize uzak destek veriyoruz. Ammy.exe ve Alpemix.exe kullanıyoruz.
Verilen destek süresini almak istiyorum.
aşağıdaki kodu örnek olarak yazdım ihtiyacımız delphi den  bir exe çalıştırıp işi bitip
kapatınca aradaki süreyi bulmak istiyorum.
Öğrenmek istediğim  delphi den exe kapatıldığını yakalayabilir miyim.
yada bu konuda tecrübeli olan arkadaşlar izlemem gereken yol hakkında öneride buluna bilir mi ?
Not : Aynı anda aynı bilgisayardan birden fazla Ammy veya alpemix açıyoruz.

Killtask adlı bir fonksiyon ile program içerisinden exe dosyayı sonlandırabiliyorum.
ama aynı exe birden fazla olunca hangi exe hangi müşteride bağlı bulamıyorum.


procedure Tip_form.Button3Click(Sender: TObject);
begin
 if fileexists(cal_yol + '\ammyy.exe') then 
 begin
   winexec('ammyy.exe', SW_MAXIMIZE);
   exit;
 end;

 if fileexists(cal_yol + '\Alpemix.exe') then
 begin
   winexec('Alpemix.exe', SW_MAXIMIZE);
   exit;
 end;
 Application.MessageBox('Uzak bağlantı dosyaları bulunamadı.', 'Uyarı', MB_OK + MB_ICONWARNING);
end;
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#2
(03-01-2018, Saat: 13:06)cinarbil Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.delphi den  bir exe çalıştırıp işi bitip kapatınca aradaki süreyi bulmak istiyorum.

CreateProcess yada ShellExecuteEx ile bunu yapabilirsiniz.
There's no place like 127.0.0.1
WWW
Cevapla
#3
var
 Form1: TForm1;

implementation

uses ShellApi, System.Diagnostics, System.TimeSpan;

{$R *.dfm}

Function ElapsedTimeExe(ExeFilePath: string): Double;
var
 SEInfo: TShellExecuteInfo;
 ExitCode: DWORD;
 ExecuteFile: string;
 Stopwatch: TStopwatch;
 Elapsed: TTimeSpan;
 Seconds: Double;
begin
 ElapsedTimeExe:=0;
 ExecuteFile := ExeFilePath;//'C:\Windows\System32\Calc.exe';
 Stopwatch := TStopwatch.StartNew; // İşlem başlatıldı başlangıç süresi alındı
 FillChar(SEInfo, SizeOf(SEInfo), 0);
 SEInfo.cbSize := SizeOf(TShellExecuteInfo);
 with SEInfo do
 begin
   fMask := SEE_MASK_NOCLOSEPROCESS;
   Wnd := Application.Handle;
   lpFile := PChar(ExecuteFile);
   nShow := SW_SHOWNORMAL;
 end;
 if ShellExecuteEx(@SEInfo) then
 begin
   repeat
     Application.ProcessMessages;
     GetExitCodeProcess(SEInfo.hProcess, ExitCode);
   until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
   Elapsed := Stopwatch.Elapsed;
   Seconds := Elapsed.TotalSeconds;
   ElapsedTimeExe:=Seconds;//Saniye olarak geriye döndürüldü
 end
 else
   ShowMessage('Program Çalıştırılamadı !');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(FloatToStr(ElapsedTimeExe('C:\Windows\System32\Calc.exe')));
end;

end.

İstediğin bu olsa gerek Smile

Gerisi sana kalmış Dönen değeri veritabanına işlemi yapan kullanıcı ile kaydedebilirsin
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#4
Eline sağlık müsait olunca üzerinde çalışacağım.
İstediğim bu 
Teşekkür ederim
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#5
Selamlar

@narkotik'in verdiği örnek kodu test ettiğimde kod sadece açılıncaya kadar geçen sürenin bilgisini veriyor
uygulama kapatılmış yada kapatılmamış dikkate almıyor
yada ben bir şeyleri test sırasında gözden kaçırdım test sonuçlarını başka paylaşan olursa memnun olurum.

Teşekkürler
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#6
(04-01-2018, Saat: 19:02)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Selamlar

@narkotik'in verdiği örnek kodu test ettiğimde kod sadece açılıncaya kadar geçen sürenin bilgisini veriyor
uygulama kapatılmış yada kapatılmamış dikkate almıyor
yada ben bir şeyleri test sırasında gözden kaçırdım test sonuçlarını başka paylaşan olursa memnun olurum.

Teşekkürler

   
   
Benim denemelerimde sorun yok, doğru çalışıyor.Mesaj programı kapatınca çıkıyor ve süre de kapatıldığı andaki farkı gösteriyor.
Herhangi bir basit problem, hakkında yeterince toplantı yapılarak, çözümsüz hale getirilebilir.

Cevapla
#7
(04-01-2018, Saat: 19:02)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Selamlar

@narkotik'in verdiği örnek kodu test ettiğimde kod sadece açılıncaya kadar geçen sürenin bilgisini veriyor
uygulama kapatılmış yada kapatılmamış dikkate almıyor
yada ben bir şeyleri test sırasında gözden kaçırdım test sonuçlarını başka paylaşan olursa memnun olurum.

Teşekkürler

Testini yaptım ve attım sorunsuz çalışmaktadır.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#8
(04-01-2018, Saat: 22:18)narkotik Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(04-01-2018, Saat: 19:02)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Selamlar

@narkotik'in verdiği örnek kodu test ettiğimde kod sadece açılıncaya kadar geçen sürenin bilgisini veriyor
uygulama kapatılmış yada kapatılmamış dikkate almıyor
yada ben bir şeyleri test sırasında gözden kaçırdım test sonuçlarını başka paylaşan olursa memnun olurum.

Teşekkürler

Testini yaptım ve attım sorunsuz çalışmaktadır.

Dışardan bir uygulamayı çalıştırınca bende hala çalışmıyor "Calc.Exe"
ben 10.1 berlin kullanıyorum
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#9
(04-01-2018, Saat: 23:19)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(04-01-2018, Saat: 22:18)narkotik Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Testini yaptım ve attım sorunsuz çalışmaktadır.

Dışardan bir uygulamayı çalıştırınca bende hala çalışmıyor "Calc.Exe"
ben 10.1 berlin kullanıyorum

Calc.Exe Dosya yolunu kontrol edip deneyiniz
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#10
Calc.exe çalışıyor
çalışır çalışmaz Showmessage devreye giriyor
Calc.Exe'yi kapatıncada herhangi birşey olmuyor
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi Rest Api yhackup 20 3.517 01-10-2019, Saat: 18:30
Son Yorum: Mert_37
  Delphi'den SP ile kayıt Aktolgali 4 202 30-09-2019, Saat: 23:05
Son Yorum: Aktolgali
  Delphi & C# & Java Tuğrul HELVACI 25 1.241 30-09-2019, Saat: 10:36
Son Yorum: Tuğrul HELVACI
  Delphi Yeni Sürümlerde Fonksiyon Tanımlama Hayati 4 163 30-09-2019, Saat: 10:05
Son Yorum: Fesih ARSLAN
  Delphi Örnek Login Ekranı mehmetalpgozbasi 9 1.352 18-09-2019, Saat: 12:55
Son Yorum: wiseman



Konuyu Okuyanlar: 1 Ziyaretçi