Jump to content

Aıo'larda Birden Çok Sayfa Ile Çalışmak


KintaRo
 Share

Recommended Posts

Uzun zamandır bir çok kişiden gelen sorulara kayıtsız kalamadım ve Projedeki birden çok sayfadaki checkboxları tek kur buttonunda algılatıp kurmak için bir örnek hazırladım. Kafanız karışmasn diye nerdeyse tüm işlemler otomatikleştirilmiştir. Size sadece kodları ve nesneleri kopyalayıp yapıştırmak kalıyor. Kodlarla başlayalım:

Global Functions:

[spoiler] 
nSayi = 0;
function sec(sObject, sName)
bChecked = CheckBox.GetChecked(sObject)
	if bChecked then
	INIFile.SetValue("Autoplay\\Docs\\kurulum.ini", sName, "kur", "1")
	nSayi = nSayi+1
	Label.SetText("sayi", nSayi .. " adet program seçildi")
	else
	INIFile.DeleteSection("Autoplay\\Docs\\kurulum.ini", sName)
	nSayi = nSayi-1
	Label.SetText("sayi", nSayi .. " adet program seçildi")
	end
end

function kontrol()
Label.SetText("sayi", nSayi .. " adet program seçildi")
tSections = INIFile.GetSectionNames("AutoPlay\\Docs\\kurulum.ini")
	
	if tSections ~= nil then
		for i=1,100 do
			for y in pairs(tSections) do
				if CheckBox.GetText("CheckBox" .. i) == tSections[y] then
				CheckBox.SetChecked("CheckBox" .. i, true)
				end
			end
		end
	else
		for i=1,100 do
		CheckBox.SetChecked("CheckBox" .. i, false)
		end
	end
end

function kur()
tTablo = INIFile.GetSectionNames("AutoPlay\\Docs\\kurulum.ini")
	if tTablo ~= nil then
	Progress.SetRange("Progress1", 0, Table.Count(tTablo))
	Progress.SetCurrentPos("Progress1", 0)
		for i in pairs(tTablo) do	
			if INIFile.GetValue("AutoPlay\\Docs\\kurulum.ini", tTablo[i], "kur") == "1" then
			nPos = Progress.GetCurrentPos("Progress1")
			Progress.SetCurrentPos("Progress1", nPos+1)
			nPos=nPos+1
			Progress.SetText("Progress1", "%" .. Math.Round(100/nSayi*nPos, 0) .. " | " .. tTablo[i] .. " Kuruluyor...")
			Dialog.TimedMessage("Kurulum", tTablo[i] .. "Kuruldu!", 1000, MB_ICONINFORMATION)
			File.Run("AutoPlay\\Docs\\Programlar\\" .. tTablo[i] .. ".exe", "", "AutoPlay\\Docs\\Programlar", SW_SHOWNORMAL, true)
			end
		end
	File.Delete("AutoPlay\\Docs\\kurulum.ini", false, false, false, nil)
	Progress.SetCurrentPos("Progress1", 0)
	Label.SetText("sayi", 0 .. " adet program seçildi")
		for i=1,100 do
		CheckBox.SetChecked("CheckBox" .. i, false)
		end
	Progress.SetText("Progress1", "%0")
	Dialog.Message("Kurulum", "Seçilen " .. nSayi .. " programın kurulumu tamamlandı", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1)	
	nSayi = 0;
	else
	Dialog.TimedMessage("Hata", "Hiç bir program seçilmedi!", 1000, MB_ICONEXCLAMATION)
	end
end[/i][/i][/i][/i]
[/spoiler]

Actions>On Startup
File.Delete("AutoPlay\\Docs\\kurulum.ini", false, false, false, nil)
Tüm Sayfaların On Show evresine:
 
kontrol()
Tüm CheckBoxların On Click Evresine:
 
 
sec(CheckBox.GetProperties(this).ObjectName,CheckBox.GetText(this))
Kur Buttonu:
 
 
kur()
Programlar:

Programlar Autoplay\Docs\programlar\ klasorü içinde Checkbox ile aynı isimde olmalıdır ve uzantısı EXE olmalıdır. yani Winamp adlı bir checkbox koyduysanız onun dosyası Autoplay\Docs\programlar\winamp.exe şeklinde olmalıdır.
Bu kodları doğru şekilde yerlerine yerleştirirseniz başka birşey yapmanıza gerek kalmıyor. Projedeki her sayfaya ektsradan sayi adında bir label, ve kur buttonun olduğu sayfaya Progress1 adında bir progress yerleştirin. Aşağıdaki örnekte ne demek istediğimi anlayacaksınız zaten. Lütfen kodları değiştirmeye çalışmayın. İşinizi en kolay hale getirecek şekilde hazırladım zaten. Eğer sorun yaşarsanız kodlarla oynamadan buraya yazın çözümleriz. Fikir almak için aşağıdaki örneğe bakabilrsiniz.

qttempuh3824.png
qttempem3824.png
download.gif
http://www.mediafire.com/?ti0sskiavb3sz2o [/code]


DÜZENLEME #1

Projede progress yerine StatusDlg yani:

qttempfl3824.png
Kullanmak isteyen arkadaşlar sadece Global Functions kodlarını aşağıdaki kodlarla değiştirsinler:

[spoiler]
nSayi = 0;
function sec(sObject, sName)
bChecked = CheckBox.GetChecked(sObject)
	if bChecked then
	INIFile.SetValue("Autoplay\\Docs\\kurulum.ini", sName, "kur", "1")
	nSayi = nSayi+1
	Label.SetText("sayi", nSayi .. " adet program seçildi")
	else
	INIFile.DeleteSection("Autoplay\\Docs\\kurulum.ini", sName)
	nSayi = nSayi-1
	Label.SetText("sayi", nSayi .. " adet program seçildi")
	end
end

function kontrol()
Label.SetText("sayi", nSayi .. " adet program seçildi")
tSections = INIFile.GetSectionNames("AutoPlay\\Docs\\kurulum.ini")
	
	if tSections ~= nil then
		for i=1,100 do
			for y in pairs(tSections) do
				if CheckBox.GetText("CheckBox" .. i) == tSections[y] then
				CheckBox.SetChecked("CheckBox" .. i, true)
				end
			end
		end
	else
		for i=1,100 do
		CheckBox.SetChecked("CheckBox" .. i, false)
		end
	end
end

function kur()
tTablo = INIFile.GetSectionNames("AutoPlay\\Docs\\kurulum.ini")
	if tTablo ~= nil then
	Window.Hide(Application.GetWndHandle())
	StatusDlg.SetMeterRange(0, Table.Count(tTablo))
	StatusDlg.SetMeterPos(0)
		for i in pairs(tTablo) do	
			if INIFile.GetValue("AutoPlay\\Docs\\kurulum.ini", tTablo[i], "kur") == "1" then
			nPos = StatusDlg.GetMeterPos()
			StatusDlg.SetMeterPos(nPos+1)
			nPos=nPos+1
			StatusDlg.Show(MB_ICONINFORMATION, false);
			StatusDlg.SetTitle("Programlar kuruluyor...");
			StatusDlg.SetMessage("%" .. Math.Round(100/nSayi*nPos, 0) .. " | " .. tTablo[i] .. " Kuruluyor...")
			File.Run("AutoPlay\\Docs\\Programlar\\" .. tTablo[i] .. ".exe", "", "AutoPlay\\Docs\\Programlar", SW_SHOWNORMAL, true)
			Application.Sleep(1000)
			StatusDlg.SetMessage(tTablo[i] .. "Kuruldu!")
			end
		end
	File.Delete("AutoPlay\\Docs\\kurulum.ini", false, false, false, nil)
	StatusDlg.SetMeterPos(0)
	Label.SetText("sayi", 0 .. " adet program seçildi")
		for i=1,100 do
		CheckBox.SetChecked("CheckBox" .. i, false)
		end
	StatusDlg.Hide()	
	Dialog.Message("Kurulum", "Seçilen " .. nSayi .. " programın kurulumu tamamlandı", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1)	
	nSayi = 0;
	Window.Show(Application.GetWndHandle())
	else
	Dialog.TimedMessage("Hata", "Hiç bir program seçilmedi!", 1000, MB_ICONEXCLAMATION)
	end
end
[/code]
[/spoiler]
Link to comment
Share on other sites

  • Replies 130
  • Created
  • Last Reply

Top Posters In This Topic

  • 4 hafta sonra ...

arkadaşlar ben bu programı indirdim ve kurdum diğer buton tıklayarak olan kurulumu yapmayı gerçekleştirdim videolu olduğu için ama buna baktığımda bu daha iyi teşekkür ederim kodlar filan verilmişte mesela şöyle anlatsanız "programdan şuna tıklanır. açılan sayfadaki şu yere şu kodu yapıştırınız kaydetiniz sonra kullanacağınız programı kopyalayıp şu klasöre kopyalayınız"Gibi yani ayrıntılı bir şekilde anlatırsanız daha iyi olur yada videolu şimdiden teşekkür ederim

yha arkdaşım kodları vrmişsinde ben bu kodları yapıştıracağım yerleri bilmediğim için daha detaylı anlatırmısın yada videolu bir şekilde ayrıntılı ise programa girin şunu açın şuraya yapıştırın gibi teşekkür ederim

Link to comment
Share on other sites

  • 3 hafta sonra ...
  • 3 hafta sonra ...

[b]Kintaro yine ben :)

Biliyorum çok zahmetli bir iş olacak ama aklıma şey geldi;

CheckBoxun tıklanma bilgisiyle beraber adını da okutuyoruz ya, onunla beraber "Program Boyutu", "Tahmini Kurulum Süresi" gibi verileri de bir labela yazdırmayı düşündüm. Ve bu işten kurtulamadım.

Yani demem o ki, TimedMessahe yerine page üzerindeki labellara Program adını, tahmini kurulum süresini checkboxtan okutarak yazdırsak daha şık olmaz mı?

Ben az biraz kurcalayacağım ama uzman elinin değmesi çok daha güzel olur gibime geliyor :) Şimdiden teşekkürler.[/b]

Link to comment
Share on other sites

Dilim döndüğü kadar aktarayım ben

File.GetAttributes : Dosyanın niteliklerini alır
File.GetCRC : CRC değerni alır
File.GetDefaultViewer : Dosya uzantısındaki varsayılan programı alır
File.GetSize : Dosya boyutunu alır
File.GetVersionInfo : Dosyanın version gibi bilgilerini alır. iç ad sürüm vs. buradan alınır

Edited by egemynet
Link to comment
Share on other sites

  • 3 hafta sonra ...

hocam bu çalışmada programlar
File.Run("AutoPlay\\Docs\\Programlar\\" .. tTablo[i] .. ".exe", "", "AutoPlay\\Docs\\Programlar", SW_SHOWNORMAL, true)
bu adreste peki ben Docs Klaösründe internet-müzik-resim-klasörleri oluştursam ve oraya atsam o zaman nasıl olacak

----------------

geçen bir soru sordum anlatamadım burada uygulamalı soruyum mesela bu çalışmaya sonradan nasıl exe ico ekleyebiliriz yani atıyorum 5 program belirledik sıkıldım 5 program yeriine başka 5 program eklemek istiyorum...

Link to comment
Share on other sites

hocam diyelimki bir dvdlik arşiv hazırlayacak olsak bütün exe ler program klasöründe birbirine girecek bunlar ketegorilere ayrılarak aynı klasöre atılsa daha derli toplu olur.

yani File.Run("AutoPlay\\Docs\\Programlar\\" .. tTablo[i] .. ".exe", "", "AutoPlay\\Docs\\Programlar", SW_SHOWNORMAL, true)
değiştirme şansımız varmı

acaba benim istedğim olmuyormukide cevap alamıyorum çünkü diğer yazdıklarıma hemen cevap geliyor.
korasoglu boşuna uğraşma olmaz eyvallah

Edited by korasoglu
Link to comment
Share on other sites

  • 1 ay sonra...

evet arkadaşlar ben bu kodları sormuştum ama galiba yanlış yerde sordum ve cevabını alamadım
şimdi soruyorum
kodlar normalde sorunsuz calışıyor ama cd veya dvd yada iso formatında yazılır veya kaydedilirse hata veriyor buna bir bakarmısınız tşk

Link to comment
Share on other sites

bu kotları paylaşan arkadaıma tşk ederim benin sorunum kudlarda degil ama tüm kodları yerlerine yazdım aynen söylendigi gibi ve program autopayda güzel calışıyor ama cd dvd imaj olarak yazılınca çalışmıyor örn= vergiginiz linkteki programıda aynen dedigim şekilde yaptım calışmadı bir bakarmısınız lütfen yardım eden arkadaşlara şimdiden tşk umarın dogru yere sorunumu yazmışımdır

Link to comment
Share on other sites

  • 2 hafta sonra ...

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