Forum

Bir Programla başka...
 
Bildirimler
Hepsini Temizle

Bir Programla başka programı çalıştırıp veri işleme

12 Yazılar
4 Üyeler
0 Reactions
3,827 Görüntüleme
(@EnesHarun)
Gönderiler: 37
Trusted Member
Konu başlatıcı
 

Merhabalar,

Bir program yapacağım ve bu program XML oluşturup bir başka EXE çalıştıracak ve o exeye kullanıcı adı şifre girip ilgili ekrandan XML dosyasını çekip gönder butonuna basacak. ve bunu günün belli saatinde benim tanımladığım saatte yapacak. Programı Delphi XE'de yazıyorum. Konu hakkında fikri ve yardımcı olabilecek olan var mı acaba?

 

İyi günler.

 
Gönderildi : 08/01/2016 17:34

(@enginkulac)
Gönderiler: 118
Estimable Member
 

Merhaba,

İkinci program sürekli aktif mi kalacak. Görevini tamamladıktan sonra kendini kapatacak mı peki?

 
Gönderildi : 08/01/2016 19:33

(@EnesHarun)
Gönderiler: 37
Trusted Member
Konu başlatıcı
 

Görevi bittikten sonra kapanacak, aktif de kalabilir sorun değil.

 
Gönderildi : 08/01/2016 19:55

(@enginkulac)
Gönderiler: 118
Estimable Member
 

Peki bu işlemler sırasında takıldığınız konu nedir? Mantıksal olarak işleyişinin nasıl olacağı konusunda mı fikir edinmek istiyorsunuz yoksa kodlama konusunda mı?

 
Gönderildi : 08/01/2016 20:20

(@EnesHarun)
Gönderiler: 37
Trusted Member
Konu başlatıcı
 

Mantıksal olarak nasıl bir yol izlemem gerekir ve delphi xe de hangi component'i kullanmalıyım yada ekstra bir program mı kullanmalıyım. Piyasada bunu yapan bir firma buldum şu şekilde çalışıyor: Program istenilen saatte klavye ve mouse'u kilitliyor oynatamıyorsun hiç birşekilde veçalışması istenen exe kendi açılıyor ve mouse kendi hareket ederek butonlara tıklıyor ve xml dosyayı seçip gönder butonuna basıyor. gönderim işlemi tamamlandıktan sonra klavye ve mouse tekrar çalışır duruma geliyor. 

 

İlginize teşekkürler.

 
Gönderildi : 11/01/2016 14:23

(@enginkulac)
Gönderiler: 118
Estimable Member
 

Burada yapılacak olan cok teferruatlı birşey yok benim anladığım ve sizin anlattığınız kadarı ile.

2.program için bahsediyorum :

1.yol

Bir ayar bölümü yaparsınız; şu saatler arasında, bu dosyayı, şu adrese gönder gibi. program arka planda çalışır saat geldiğinde dosya gönderim işlemini tamamlararka planda aktif halde bekler tekrar zamanı gelene kadar.

2. yol 

Yine ayar bölümünü yaparsınız bu defa şu dosyayı bu adrese gönder gibi, Bu defa program sadece aktif olduğunda dosya gönderimini yapar. Burada exe'yi scheduled tasks olarak tanımlamanız gerekir. Zamanı geldiğinde bilgisayar exe'yi çalıştırır, Uygulama işlemini bitirince programı sonlandırır.

 
Gönderildi : 11/01/2016 17:09

(@EnesHarun)
Gönderiler: 37
Trusted Member
Konu başlatıcı
 

otomatik açılıp kullanıcı adı ve şifre girip gönderim yapmasını istediğim program Emniyet Genel Müdürlüğünün otellere vermiş olduğu exe. www.akcam.com.tr bunu yapmış durumda. 

 
Gönderildi : 11/01/2016 17:45

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

Başka bir uygulamayı program vasıtasıyla denetleme için bir örnek çözüm geliştirdim, buradan indirebilirsiniz:

https://github.com/sabuncu/TestWinAPI

Windows 7 üzerinde test ettim.

Programı çalıştırmadan önce Hesap Makinesi'ni başlatın.  Sonra programı çalıştırın.  Program arayüzü şöyle:

"Tuşlara Tıkla" butonuna tıklayınca, program Hesap Makinesi uygulamasına yarım saniye aralarla ve sırası ile '1', '+', '2', ve '=' tuşlarını yollayacaktır:

Hesap Makinesi'nde "3" sonucu görülecektir.

Programın "Hesap Makinesini Kapat" butonuna tıklayınca Hesap Makinesi uygulaması sonlandırılacaktır.

Çözümü Visual Studio 2010 ve C# ile geliştirdim fakat Delphi'ye aktarmanın zor olmayacağını düşünüyorum, çünkü önemli olan .NET ve Win32 API çağrılarıdır.  Çözüm içindeki comment'ler Türkçe'dir.

"Program Hesap Makinesi uygulamasını neden kendi başlatmıyor?" sorusunu soracaksınız - bunu denedim, fakat sorun çıkıyor.  Bunun nedeni, .NET Process.Start() API metodunun tutarsız çalışması.  Bu bilinen bir sorun, burada açıklanıyor (makine çevirisi).  Akçam Yazılım bu sorunu nasıl halletmiş, bilemiyorum.  Ben araştırmaya devam edeceğim, çözersem burayı güncellerim.

Bahsettiğiniz kontrol edilmesi gereken program herhalde şu: AKBS300.exe ( http://www.asayis.pol.tr/Duyurular/Sayfalar/kimlikbildirmeprojesi.aspx ). 

Bu programı yukardaki çözümde olduğu gibi kontrol edebilmek için geliştirme sırasında programı çalıştırıp WinSpy++ ya da benzeri bir araç-program ile incelemeniz, butonların ve alanların Control ID kimlik bilgilerini manuel olarak not etmeniz, sonra program içinde Control ID'lere karşılık gelen window hwnd değerlerini bulmanız gerekecektir (yukardaki çözümde bunlar yapılıyor).  Söz konusu bilgileri çözümün içine gömeceğiniz için, eğer ileri bir tarihde AKBS300.exe programının yeni bir sürümü sunulursa, bu bilgilerin değişip değişmediğini teyit etmeniz gerekecektir.

Yani çok kolay bir süreç değil.  Esasında olması gereken, bu programı sunan kurumun bir library vasıtasıyla API yayınlaması ve ilgili özellikleri (kimlik doğrulama, XML dosya iletme, vb) bu API yardımıyla erişime açmasıdır.  Aksi takdirde tüm çözümler (Akçam Yazılım'ınki de dahil olmak üzere) her an sıkıntı çıkarabilir düzeyde kalacaktır.

Bunların dışında klavye ve mouse kilitlemesine henüz bakmadım.

Yukardakiler hakkında sorunuz olursa lütfen iletin.

Teşekkürler.

 
Gönderildi : 25/01/2016 03:35

(@eravse)
Gönderiler: 1753
Üye
 

murat selam başarılı bir şey olmuş yanlız gülmeden geçemedim 🙂 bunu oyunlara tuş kombinasyonu yazardık ona benzettim 🙂 süper bak gene bir şeyler yapasım geldi 🙂 eline emeğine sağlık.

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 26/01/2016 20:13

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

Erdem Bey, sizden övgü almak çok önemli, teşekkürler.  Ben ilk defa böyle bir program yazdım, yazarken de çok şey öğrendim.  Normalde bu tür işler için AutoHotKey kullanıyorum ama nasıl çalıştığına pek kafa yormamıştım.  Bir de UI Automation diye Microsoft'un bir kütüphanesi var, vakit olunca ona da bakmak istiyorum.

Yalnız Process.Start() ile başlatılan programı denetleyememek canımı sıktı.  Microsoft çok yol aldı ama bazı eski sorunlar sistemlerinin içinde halen ve olduğu gibi duruyor.

 
Gönderildi : 26/01/2016 20:25

(@eravse)
Gönderiler: 1753
Üye
 

Rica ederim 🙂 , bu arada yani belki istediğini karşılşamaz ama https://askleo.com/how_can_i_track_what_programs_come_and_go_on_my_machine/ göz at derim. bir şekilde sunucu üzerinde event viewer ile kontrol altında tutabilme ihtimali var

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 26/01/2016 20:28

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

Çok faydalı bir link, özellikle gelip geçici ve yakalaması zor Windows olayları için.  Teşekkürler.

 
Gönderildi : 26/01/2016 20:34

Paylaş: