Ex_treme Posted July 25, 2013 Share Posted July 25, 2013 (edited) Amsde Yapılan Uygulamanın Birden Fazla Çalışmasını Engellemeyi Nasıl Yapabilirim? Edited July 25, 2013 by Ex_treme Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted July 25, 2013 Share Posted July 25, 2013 (edited) Acilan = 0 tProc = System.EnumerateProcesses(); for i,v in pairs (tProc) do Split = String.SplitPath(v); if Split.Filename..Split.Extension == _SourceFilename then Acilan = Acilan + 1 end end if Acilan > 1 then -- ikinci acilista Dialog.Message("Hata", "Program zaten açık !", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1); os.exit() -- programi kapat end Bu kodları Actions > On Startup kısmına yazarsan programın birden fazla kopyası çalışamaz. Açık olan programa ne gibi bir komut göndermek istiyorsunuz ? Edited July 25, 2013 by DivaneTR Quote Link to comment Share on other sites More sharing options...
reyiz Posted July 25, 2013 Share Posted July 25, 2013 instances_of_file = 0; file_to_check_for = _SourceFilename; processes = Window.EnumerateProcesses(); for j, file_path in pairs(processes) do file = String.SplitPath(file_path); if (String.Lower(file.Filename..file.Extension)) == file_to_check_for then instances_of_file = instances_of_file + 1; end end if instances_of_file > 0 then Application.Exit(0); end Quote Link to comment Share on other sites More sharing options...
Ex_treme Posted July 31, 2013 Author Share Posted July 31, 2013 Acilan = 0 tProc = System.EnumerateProcesses(); for i,v in pairs (tProc) do Split = String.SplitPath(v); if Split.Filename..Split.Extension == _SourceFilename then Acilan = Acilan + 1 end end if Acilan > 1 then -- ikinci acilista Dialog.Message("Hata", "Program zaten açık !", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1); os.exit() -- programi kapat end Bu kodları Actions > On Startup kısmına yazarsan programın birden fazla kopyası çalışamaz. Açık olan programa ne gibi bir komut göndermek istiyorsunuz ? Mesela Bir Dosya Yolunu Göndericem Nasıl Gönderebilirim? Gönderdigimde _CommandLineArgs a Gitmiş Olacak Bende Oradaki Veriyi Alıp İşlemimi Yapıcam ????? Quote Link to comment Share on other sites More sharing options...
reyiz Posted July 31, 2013 Share Posted July 31, 2013 Yani parametre ile işlem yaptığınızda çift açılmasına izin vermek mi istiyorsunuz? Quote Link to comment Share on other sites More sharing options...
Ex_treme Posted July 31, 2013 Author Share Posted July 31, 2013 Yani parametre ile işlem yaptığınızda çift açılmasına izin vermek mi istiyorsunuz? hayır Öyle Degil,Birden Fazla Çalışmasını Engellicem ve Açılmasını İstedenen Dosyanın Yolunu 1İlk Çalışan Uygulamaya Gönderip Çalışana Açtırıcam .. Quote Link to comment Share on other sites More sharing options...
reyiz Posted July 31, 2013 Share Posted July 31, 2013 http://www.tnctr.com/topic/180167- http://www.tnctr.com/topic/176365- http://www.tnctr.com/topic/138127- http://www.tnctr.com/topic/187376- Quote Link to comment Share on other sites More sharing options...
Ex_treme Posted July 31, 2013 Author Share Posted July 31, 2013 (edited) http://www.tnctr.com/topic/180167- http://www.tnctr.com/topic/176365- http://www.tnctr.com/topic/138127- http://www.tnctr.com/topic/187376- Ustam Bunlara Baktım Ama İstedigim Bundan Fazlası,Buradaki Konularda SAdece Dosya Biçimiyle İlişkilendiriyor Ben Bunu Zaten yapıyorum ama İlişkilendirdigim Dosyayı Açıyoruz ve 2.Bir Dosyayıda Açında Programı 2.kere Çalıştırıyor Bu Yöntemlerde Ben Bunu Engellemek İçin 2 kez çalışması Engelleyip Çalışan Uygulkamaya Komut Göndermek İstiyorum. Edited July 31, 2013 by Ex_treme Quote Link to comment Share on other sites More sharing options...
reyiz Posted July 31, 2013 Share Posted July 31, 2013 Benim verdiğim kodu dener misiniz? Quote Link to comment Share on other sites More sharing options...
Ex_treme Posted August 1, 2013 Author Share Posted August 1, 2013 (edited) instances_of_file = 0; file_to_check_for = _SourceFilename; processes = Window.EnumerateProcesses(); for j, file_path in pairs(processes) do file = String.SplitPath(file_path); if (String.Lower(file.Filename..file.Extension)) == file_to_check_for then instances_of_file = instances_of_file + 1; end end if instances_of_file > 0 then Application.Exit(0); end Bu Kod Çalışmadı Actions on startup a koydum olmadı on preload da denedim oradada olmadı ???? Uygulama 2 kere çalışıyor :( Üstadım Divanenin Verdigi Kod Çalıştı 2 kere açılmasını Engelliyor.Ben Uygulama Çalışırken Başka Bir Programdan Veri Göndermek İstiyorum Bunu Nasıl Yapabilirim ? Edited August 1, 2013 by Ex_treme Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted August 1, 2013 Share Posted August 1, 2013 (edited) Not defterine benzer basit bir örnek yaptım. Sayfanın On Preload kısmına ; if (_CommandLineArgs) then for index,file in pairs(_CommandLineArgs) do Split = String.SplitPath(file); if Split.Extension == ".txt" then sText = TextFile.ReadToString(file); Input.SetText("Input1", sText); end end end On Actions kısmına da ; Acilan = 0 tProc = System.EnumerateProcesses(); for i,v in pairs (tProc) do Split = String.SplitPath(v); if Split.Filename..Split.Extension == _SourceFilename then Acilan = Acilan + 1 end end if Acilan > 1 then -- ikinci acilista Dialog.Message("Hata", "Program zaten açık !", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1); os.exit() -- programi kapat end yazıp deneyin. Edited August 1, 2013 by DivaneTR Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted August 2, 2013 Share Posted August 2, 2013 Tam olarak istediğiniz örnek burada ; http://www.tnctr.com/topic/228078-komut-satyry-ile-programa-mudahale/ Quote Link to comment Share on other sites More sharing options...
Ex_treme Posted August 8, 2013 Author Share Posted August 8, 2013 (edited) Denicem Hepsini Yardımlarınız İçin Şimdiden Teşşekkürler :) Not defterine benzer basit bir örnek yaptım. Sayfanın On Preload kısmına ; if (_CommandLineArgs) then for index,file in pairs(_CommandLineArgs) do Split = String.SplitPath(file); if Split.Extension == ".txt" then sText = TextFile.ReadToString(file); Input.SetText("Input1", sText); end end endOn Actions kısmına da ; Acilan = 0 tProc = System.EnumerateProcesses(); for i,v in pairs (tProc) do Split = String.SplitPath(v); if Split.Filename..Split.Extension == _SourceFilename then Acilan = Acilan + 1 end end if Acilan > 1 then -- ikinci acilista Dialog.Message("Hata", "Program zaten açık !", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1); os.exit() -- programi kapat endyazıp deneyin. Bu Komutlarınız Dedigim Gibi Çalışmıyor,Sadece 2 Kere Çalışmasını Engelliyor... Tam olarak istediğiniz örnek burada ; http://www.tnctr.com/topic/228078-komut-satyry-ile-programa-mudahale/ Teşekkürler Divane Nihayet Çözebildik Olayı :D :D Edited August 8, 2013 by Ex_treme Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.