Program açıkkken parametre göndermek.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erkan1525
Üye
Mesajlar: 113
Kayıt: 12 Ağu 2014 01:31

Program açıkkken parametre göndermek.

Mesaj gönderen erkan1525 »

Merhaba.
Bir program resim dosyası açacak diyelim. Bir resmi tıklayınca birlikteaç tan ayarlayıp o resmin yolunu alıp açıyorum. Ama program açıkken başka bir resim daha açınca program ikinci kez açılmasın ve açık program açılmak istenen resmi açsın istiyorum. Bunu nasıl yaparım.

Aslında yapmak istediğim şey açık olan programıma başka bir yardımcı programdan bazı veriler yollamak. Bunu nasıl yaparım.???
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Program açıkkken parametre göndermek.

Mesaj gönderen G.Arkas »

- CreateMutex'i bir araştır.
Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Program açıkkken parametre göndermek.

Mesaj gönderen mrmarman »

Birlikte aç için üçüncü başka bir programı ayarlamışsan;

Windows'ta her kontrolün olduğu gibi her form penceresinin bir id'si vardır. Buna handle denir.

Birlikte aç için ayarladığın program illa ki açılan dosyanın adını form captionunda barındırıyordur. Açık Window'ları tek tek dolaşıp bu metni arayın, bulunursa yeniden açma işlemini iptal edin.

Arayacağınız anahtar kelimeler
FindWindow, FindWindowEx

Arama sonuçlarında benzer örnekleri de bulabilirsin.
Resim
Resim ....Resim
erkan1525
Üye
Mesajlar: 113
Kayıt: 12 Ağu 2014 01:31

Re: Program açıkkken parametre göndermek.

Mesaj gönderen erkan1525 »

mrmarman yazdı:Birlikte aç için üçüncü başka bir programı.......
Söylediğin şeyle alakası yok. Sen beni anlamadın dostum. Program açık diyelim. Başka bir programla açık olan bu programa bir veri gönderip okutmak istiyorum. Çözemedim şu işi
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Program açıkkken parametre göndermek.

Mesaj gönderen thelvaci »

Sizin istediğiniz şeye yazılım literatüründe IPC(Interprocess communication) diyorlar. Bunun için pek çok yol olmasına rağmen, başlıca SendMessage, PostMessage, CreateFileMapping/OpenFileMapping yöntemlerini sayabiliriz.
erkan1525
Üye
Mesajlar: 113
Kayıt: 12 Ağu 2014 01:31

Re: Program açıkkken parametre göndermek.

Mesaj gönderen erkan1525 »

thelvaci yazdı:Sizin istediğiniz şeye yazılım literatüründe IPC(Interprocess communication) diyorlar. Bunun için pek çok yol olmasına rağmen, başlıca SendMessage, PostMessage, CreateFileMapping/OpenFileMapping yöntemlerini sayabiliriz.
Visual basicde rutin olarak çok kolay yapılabilen birçok işlem delphide iğneyle kuyu kazmaya benziyor. Vazgeçip bir ini dosyasını saniyede birkez okutarak yaptım artık. Başka yol bulamadım.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Program açıkkken parametre göndermek.

Mesaj gönderen SimaWB »

erkan1525 yazdı:Visual basicde rutin olarak çok kolay yapılabilen birçok işlem delphide iğneyle kuyu kazmaya benziyor.
Bunu yazan kişi Delphi'yi yeterince bilmiyor demektir!
There's no place like 127.0.0.1
erkan1525
Üye
Mesajlar: 113
Kayıt: 12 Ağu 2014 01:31

Re: Program açıkkken parametre göndermek.

Mesaj gönderen erkan1525 »

SimaWB yazdı:
erkan1525 yazdı:Visual basicde rutin olarak çok kolay yapılabilen birçok işlem delphide iğneyle kuyu kazmaya benziyor.
Bunu yazan kişi Delphi'yi yeterince bilmiyor demektir!
Bence bununla alakası yok. Mesela vb de sadece 2 satırla programın 2. kez açılmasını engellemek mümkün ama delphide mutex le falan uğraşmak gerekiyor. Başlangıç formunu gizlemek için vb de visible özelliğini false yapmak yetiyor. AMa delphide bunu nasıl yapacağımı hala bulamadım.

Delphide birçok işi çok kısa kodlarla yapmak mümkün. Mesala veritabanlarıyla çalışmak vb den 10 kat daha pratik. ama bazı şeyleri yapmak da tam bir işkence. Üstelik bunlar basit şeyler olunca insan çıldırıyor. Birde delphide kaynak az. Birşey bulmak için arama işine oldukça fazla vakit ayırmak gerekiyor. Yani delphi de acemiyseniz işiniz çok zor
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Program açıkkken parametre göndermek.

Mesaj gönderen SimaWB »

erkan1525 yazdı:AMa delphide bunu nasıl yapacağımı hala bulamadım.
Başlangıçta bunu deseydiniz belki itirazım olmazdı ama siz "Delphide iğneyle kuyu kazmaya benziyor" dediniz. O zaman işin rengi değişti...

Başlangıç formunu gizlemek için Delphi'de

Kod: Tümünü seç

Application.ShowMainForm := False;
yazmanız yeterli. Sanırım bundan daha kısa olmazdı.

Programın 2. kez çalışmaması için size 2 tavsiyede bulunulmuş. FindWindow ve Mutex.
FindWindow :

Kod: Tümünü seç

if FindWindow('TForm1','Form1') = 0 then //Tek satır kodla Form1'den başka var mı yok mu kontrol ettiniz
Yada Mutex:

Kod: Tümünü seç

if CreateMutex(nil, True, 'BenimProgramim') = 0 then  RaiseLastOSError;
if GetLastError = ERROR_ALREADY_EXISTS then Exit; //Demekki programım çalışan bir örneği var
Not: Kodun daha kısa şekilde yazılması avantaj mıdır, değil midir ayrı bir tartışma konusu ama hiç oralara girmeyelim :wink:
There's no place like 127.0.0.1
erkan1525
Üye
Mesajlar: 113
Kayıt: 12 Ağu 2014 01:31

Re: Program açıkkken parametre göndermek.

Mesaj gönderen erkan1525 »

SimaWB yazdı:
erkan1525 yazdı:AMa delphide bunu nasıl yapacağımı hala bulamadım.
Başlangıçta bunu deseydiniz belki itirazım olmazdı am............... :wink:
Hocam şu açık programa mesaj göndermeye de bir el atsaydın ya... Onu niye bıraktın :)
Cevapla