Program açıkkken parametre göndermek.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Program açıkkken parametre göndermek.
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.???
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.???
Re: Program açıkkken parametre göndermek.
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.
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.
Re: Program açıkkken parametre göndermek.
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şimrmarman yazdı:Birlikte aç için üçüncü başka bir programı.......
Re: Program açıkkken parametre göndermek.
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.
Re: Program açıkkken parametre göndermek.
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.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.
Re: Program açıkkken parametre göndermek.
Bunu yazan kişi Delphi'yi yeterince bilmiyor demektir!erkan1525 yazdı:Visual basicde rutin olarak çok kolay yapılabilen birçok işlem delphide iğneyle kuyu kazmaya benziyor.
There's no place like 127.0.0.1
Re: Program açıkkken parametre göndermek.
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.SimaWB yazdı:Bunu yazan kişi Delphi'yi yeterince bilmiyor demektir!erkan1525 yazdı:Visual basicde rutin olarak çok kolay yapılabilen birçok işlem delphide iğneyle kuyu kazmaya benziyor.
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
Re: Program açıkkken parametre göndermek.
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...erkan1525 yazdı:AMa delphide bunu nasıl yapacağımı hala bulamadım.
Başlangıç formunu gizlemek için Delphi'de
Kod: Tümünü seç
Application.ShowMainForm := False;
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
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

There's no place like 127.0.0.1
Re: Program açıkkken parametre göndermek.
Hocam şu açık programa mesaj göndermeye de bir el atsaydın ya... Onu niye bıraktınSimaWB yazdı:Başlangıçta bunu deseydiniz belki itirazım olmazdı am...............erkan1525 yazdı:AMa delphide bunu nasıl yapacağımı hala bulamadım.
