Konuyu Paylaş : facebook gplus twitter

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 Giriş yap veya Üye Oldelphi 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 Giriş yap veya Üye OlSelamlar

@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.
Bizi Toprağa Gömdüler Fakat Tohum Olduğumuzu Bilmiyorlardı.
Cevapla
#7
(04-01-2018, Saat: 19:02)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSelamlar

@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 Giriş yap veya Üye Ol
(04-01-2018, Saat: 19:02)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSelamlar

@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 Giriş yap veya Üye Ol
(04-01-2018, Saat: 22:18)narkotik Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlTestini 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

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Question OpenSSL .dll sorunu delphi 10.2 BY-HAYALET 5 394 12-09-2018, Saat: 17:08
Son Yorum: uparlayan
  Visual Studio Code for Delphi gjamesbond 1 106 11-09-2018, Saat: 10:19
Son Yorum: Fesih ARSLAN
  Delphi içinden ve MSSQL üzerinden storeprocedure çalıştırma Bay_Y 6 238 30-08-2018, Saat: 13:10
Son Yorum: Bay_Y
  Delphi 10.3.2 Cominity için Sui Pack ve Rave Report konusu Bafehan 9 295 09-08-2018, Saat: 20:48
Son Yorum: Bafehan
  HHBMailComponent - Kolay Mail Gönderim Bileşeni [Delphi] Halil Han Badem 23 1.300 09-08-2018, Saat: 02:20
Son Yorum: Halil Han Badem



Konuyu Okuyanlar: 1 Ziyaretçi