Jump to content

Amsde Yapılan Uygulamanın Birden Fazla Çalışması


Ex_treme
 Share

Recommended Posts

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 by DivaneTR
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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 ?????

Link to comment
Share on other sites

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 ..

Link to comment
Share on other sites

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 by Ex_treme
Link to comment
Share on other sites

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 by Ex_treme
Link to comment
Share on other sites

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 by DivaneTR
Link to comment
Share on other sites

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
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.

 

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 by Ex_treme
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...