İnnoSetup ile OS'a göre kurulum
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
İnnoSetup ile OS'a göre kurulum
Arkadaşlar yapmak istediğim şu.Programımı Program Files te bir klasöre kurduruyorum.Ama Vista da bazı sorunlar oluşuyor.OS Vista ise programımı C de bir klasöre kurdurucam.yani XP ise program Files Vista ise C sürücüsü kök dizini.
Bunu nasıl yapabiliriz bir fikri olan varmı?
cevap verecek arkadaşlara şimdişden teşekkürler.
Bunu nasıl yapabiliriz bir fikri olan varmı?
cevap verecek arkadaşlara şimdişden teşekkürler.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Bende konuyla ilgiliyim ama cevabı yeni buldum. Denemedim ama yardım dosyasında GetWindowsVersion,GetWindowsVersionEx ve GetWindowsVersionString fonksiyonları ile mevcut sistemin versiyonunu okuyabiliyorsun. GetWindowsVersionEx detaylı bir okuma yapıyor bunu inno setup çevrimiçi yardımından bulabilirsin (IsTool değil
bir çok kere inno yardımı diye yanlışlıkla burayı açmışımdır). Yapman gereken gelen bilgideki .Major değerinin vista karşılığını bulmak. WinXP için bu değer 5 olduğuna göre vista için 6 olsa gerek. İstersen bu değeri vista sistemde MsgBox(GetWindowsVersionString,mbConfirmation, MB_OK); kodunu yazarak görebilirsin. Versiyon numarası tahminim yanlış ise doğrusunu buradan yazabilirsin.

Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
@sabanakman teşekkürler sonucu buradan yazıcam....sabanakman yazdı:Bende konuyla ilgiliyim ama cevabı yeni buldum. Denemedim ama yardım dosyasında GetWindowsVersion,GetWindowsVersionEx ve GetWindowsVersionString fonksiyonları ile mevcut sistemin versiyonunu okuyabiliyorsun. GetWindowsVersionEx detaylı bir okuma yapıyor bunu inno setup çevrimiçi yardımından bulabilirsin (IsTool değilbir çok kere inno yardımı diye yanlışlıkla burayı açmışımdır). Yapman gereken gelen bilgideki .Major değerinin vista karşılığını bulmak. WinXP için bu değer 5 olduğuna göre vista için 6 olsa gerek. İstersen bu değeri vista sistemde MsgBox(GetWindowsVersionString,mbConfirmation, MB_OK); kodunu yazarak görebilirsin. Versiyon numarası tahminim yanlış ise doğrusunu buradan yazabilirsin.
@sabanakman iki kez teşekkür ederim.
1.Sorunumun çözülmesine yardımcı olduğun için.
2.Inoosetupı genelde istool ile kullandığımdan bu tarz bir kodlama mantığıyla olaya bakmamı sağladığın için.Sanırım bundan sonra farklı sorunlar için zoırlanmıycam.
Çözüm ise şöyle.
DefaultDirname bölümünde dizin vermek yerine değişken simi veriyoruz.
Sonra da;
Code bölümüne aşağıdaki kodu yazıyoruz ve derliyoruz.Xp ve Win989 de Program Files, Vista!da kök dizine kuruluyor.Tabii farklı amaçlar içinde kullanılabilir.
herkese kolay gelsin...
1.Sorunumun çözülmesine yardımcı olduğun için.
2.Inoosetupı genelde istool ile kullandığımdan bu tarz bir kodlama mantığıyla olaya bakmamı sağladığın için.Sanırım bundan sonra farklı sorunlar için zoırlanmıycam.
Çözüm ise şöyle.
DefaultDirname bölümünde dizin vermek yerine değişken simi veriyoruz.
Kod: Tümünü seç
DefaultDirName={code:ProgramDizinim}\Program Klasörümüzün Adı
Code bölümüne aşağıdaki kodu yazıyoruz ve derliyoruz.Xp ve Win989 de Program Files, Vista!da kök dizine kuruluyor.Tabii farklı amaçlar içinde kullanılabilir.
Kod: Tümünü seç
function ProgramDizinim(Param: String): String;
var
Version: TWindowsVersion;
S: String;
begin
GetWindowsVersionEx(Version);
//Windowsun Major numarasını alalım.
if (Version.Major > 5)
then
begin
//Windowsun Major numarası 5 ten büyükse Vista'dır.
//O zaman program kök dizine kurulsun.
//Ama kullanıcı değiştirirse ne yapçaz onu bilemiyom.
Result := ExpandConstant('{sd}');
end
else
begin
//Eğer Vista değilse Program Files dizinine kurulsun.
Result := ExpandConstant('{pf}');
end;
end;
Vistada programlar standart olarak "Standart user " yetkisiyle başlatılıyormuş. bu durum tam yetkili olarak başlaması gereken programımızı engelliyor. Program çalışıyor gibi görünsede işlevi yok hiç çalışmıyor.
Program kurulduktan sonra "Bilgisayar yöneticisi" olarak başlatılmasını istiyorum. gerekirse şifre sorsun. Bunu nasıl yaptırtabilirim?
"sağ tıklayıp farklı kullanıcı olarak çalıştır" diye rica etmek hoş değil. Ozaman sorun kalmıyor.
Programı bir defa tam yetki ile başlatayım o kendini registrye yazsın artık hep "Bilgisayar Yöneticisi yetkisiyle" başlatılmış gibi olsun. Bunu nasıl yaptırabilirim?
Inno setup içinde böyle bir seçenek var mı yoks ben mi göremedim bilmiyorm. Başka setup veya script , delphi kod da işimi görür. yeterki uygulamamı "administrator" olarak başlatayım. herzaman bu şekşilde başlayabilsin.
Login öncesi başlasa da olur.
Program kurulduktan sonra "Bilgisayar yöneticisi" olarak başlatılmasını istiyorum. gerekirse şifre sorsun. Bunu nasıl yaptırtabilirim?
"sağ tıklayıp farklı kullanıcı olarak çalıştır" diye rica etmek hoş değil. Ozaman sorun kalmıyor.
Programı bir defa tam yetki ile başlatayım o kendini registrye yazsın artık hep "Bilgisayar Yöneticisi yetkisiyle" başlatılmış gibi olsun. Bunu nasıl yaptırabilirim?
Inno setup içinde böyle bir seçenek var mı yoks ben mi göremedim bilmiyorm. Başka setup veya script , delphi kod da işimi görür. yeterki uygulamamı "administrator" olarak başlatayım. herzaman bu şekşilde başlayabilsin.
Login öncesi başlasa da olur.
gözünü seveyim unix in linuxun ya. bir nitelik verirsin progrma bir komutla. sadece o komut çalışsınca root yetkisinie sahip olur. araştırmak lazım bunu ama ben tahmin ediyorum sonucu
"geçici olarak root yetkisine sahip olmayı ilk kez uyguladık" diyecekler bizim analamamızı bekledikleri ise şu " geçici olarak root yetkisine sahip olmayı ilk biz keşfettik"
"geçici olarak root yetkisine sahip olmayı ilk kez uyguladık" diyecekler bizim analamamızı bekledikleri ise şu " geçici olarak root yetkisine sahip olmayı ilk biz keşfettik"
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog