Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Inno Setup i detekcija OS-a

[es] :: Pascal / Delphi / Kylix :: Inno Setup i detekcija OS-a

[ Pregleda: 4332 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ALGHEN
Beograd / Zlatibor

Član broj: 65866
Poruke: 33
213.244.208.*

Sajt: www.ghc.rs


Profil

icon Inno Setup i detekcija OS-a31.03.2006. u 21:36 - pre 219 meseci
Imam problem sa detekcijom Windows-a u Inno Setupu.
Naime, program je napisan u C# 2005 Express i mora da se instalira .NET Framework 2.0, radi sa ACCESS bazom, pa mi za eventualno instaliranje na WIN98 ili WIN2K trebaju jos neki fajlovi poput MDAC ili Access JET 4.0...
E sad, postoji li mogucnost da se sve napravi u jednoj instalaciji, tj da se napravi skript koji ce detektovati verziju Windowsa pa u odnosu na kojoj se verziji Windowsa pokrenula instalacija da ponudi komponente za instalaciju.
Moram ovo da napravim, jer mi nije resenje da uvek nudim npr. WIN2K SP4 ili MDAC 2.81 iako je installer pokrenut na WIN XP-u, ili imam resenje da pravim tri posebne instalacije pa da korisnik bira.
Ako ima neko raspolozen da mi pomogne oko "uglavljivanja" provere windowsa u ovu dole skriptu, bio bih vrlo zahvalan.
Evo ovako mi izgleda instalacija za XP:

Code:
[Setup]
AppName=Ime programa
AppVerName=Ime programa verzija programa
AppPublisher=GHC
AppPublisherURL=http://www.ghc.co.yu
AppSupportURL=http://www.ghc.co.yu
AppUpdatesURL=http://www.ghc.co.yu
DefaultDirName={pf}\GHC\Klub 2006
DefaultGroupName=GHC\Klub 2006
AllowNoIcons=yes
InfoBeforeFile=E:\Info.txt
OutputBaseFilename=XP_Install
SetupIconFile=E:\Software.ico
Compression=Zip
SolidCompression=yes
[Languages]
Name: "srp"; MessagesFile: "compiler:Languages\Srpski.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"

[Types]
Name: "full"; Description: "Kompletno"
Name: "compact"; Description: "Minimalno"
Name: "custom"; Description: "Napredan izbor"; Flags: iscustom

[Components]
Name: "program"; Description: "Programske datoteke"; Types: full compact custom; Flags: fixed
;Name: "db"; Description: "Baza podataka";Types:full  custom
Name: "dotnet"; Description: "Microsoft .NET Framework 2.0";Types:full  custom

[Files]
Source: "E:\HATTEN.TTF"; DestDir: "{fonts}"; FontInstall: "Haettenschweiler"; Flags: onlyifdoesntexist uninsneveruninstall; Components: program
...
;fajlovi za instalaciju
...
Source: "E:\dotnetfx.exe"; DestDir: "{app}\INSTALL"; Flags: ignoreversion ; Components: dotnet
Source: "E:\WindowsInstaller-KB893803-v2-x86.exe"; DestDir: "{app}\INSTALL"; Flags: ignoreversion ; Components: dotnet

[Icons]
Name: "{group}\Klub 2006"; Filename: {app}\Klub2006.exe; Tasks: desktopicon; WorkingDir: {app}; IconIndex: 0; IconFilename: {app}\Klub2006.exe
Name: "{group}\{cm:UninstallProgram,Klub 2006}"; Filename: "{uninstallexe}" ;IconFilename: {app}\Recycle.ico
Name: {userdesktop}\Klub 2006; Filename: {app}\Klub2006.exe; Tasks: desktopicon; WorkingDir: {app}; IconIndex: 0; IconFilename: {app}\Klub2006.exe
Name: {group}\Uputstvo; Filename: {app}\help.chm; Tasks: desktopicon; WorkingDir: {app}; IconIndex: 0; IconFilename: {app}\help.chm


[Run]
Filename: "{app}\INSTALL\WindowsInstaller-KB893803-v2-x86.exe"; Components: dotnet
Filename: "{app}\INSTALL\dotnetfx.exe"; Description: "{cm:LaunchProgram,.NetFX 2.0 Framework Installer}"; Components: dotnet

[UninstallDelete]
Type: files; Name: "{app}\GHC.url" ;


Unapred zahvalan...

[Ovu poruku je menjao ALGHEN dana 01.04.2006. u 01:16 GMT+1]
 
Odgovor na temu

Bojan Kopanja
Bojan Kopanja
Senior Web Developer, ZeusSoftware
Stara Pazova

Član broj: 6155
Poruke: 507
80.93.238.*

ICQ: 346697685
Sajt: www.zeussoftware.rs


Profil

icon Re: Inno Setup i detekcija OS-a31.03.2006. u 22:21 - pre 219 meseci
A ja ipak mislim da ovo nema previse veze sa Delphijem/Pascalom :)...
 
Odgovor na temu

ALGHEN
Beograd / Zlatibor

Član broj: 65866
Poruke: 33
*.vdial.verat.net.

Sajt: www.ghc.rs


Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 00:17 - pre 219 meseci
@Strog
Citat:
A ja ipak mislim da ovo nema previse veze sa Delphijem/Pascalom :)...


Evo sklonio sam komentar oko Pascala i Delphija, nema ga vise u postu... Jel sad u redu?

Znaci, Inno Setup nema nikakve veze sa Delphi-jem, koji opet nema nikakve veze sa Pascal-om (?!?) ...
Hm, zanimljivo u kakvoj sam ja zabludi ziveo!

Lepo, sad kad nam je drug Strog lepo objasnio svu problematiku oko Delphija i Pascala, dal neko zna kako mogu da resim gore navedeni problem?

Unapred hvala!

[Ovu poruku je menjao ALGHEN dana 01.04.2006. u 01:29 GMT+1]
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
195.252.99.*

Sajt: https://avramovic.info


+46 Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 00:19 - pre 219 meseci
Sad tek nema veze sa paskalom i delphijem... ovo treba u drugi forum da ide :P
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

IvanBeograd
Kladza
Beograd

Član broj: 83376
Poruke: 379
*.adsl.sezampro.yu.

Sajt: www.dza-bu-drz-ne-daj.com


Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 11:56 - pre 219 meseci
Hahaha,pa sto si sklonio ono sto je bilo u postu ??? :)
Ovo ne ide ovde nezvao se ja Elmer,a i ne zovem se tako! :)
SERVIA NOSTRUM REGNUM!
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
81.93.74.*



Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 13:51 - pre 219 meseci
Može to imati veze sa Pascal-om,
google pa kucaj na primjer: inno setup delphi script
Potraži malo na netu, npr.
http://www.paranoia.clara.net/articles/inno_setup_review.html

Postoje i gotove skripte.

http://news.jrsoftware.org/rea...roup=jrsoftware.innosetup.code
http://www.shareup.com/Inno_Setup_Script-download-42683.html

Ajde, ako nađeš skriptu koju trebaš, postavi link...
 
Odgovor na temu

IvanBeograd
Kladza
Beograd

Član broj: 83376
Poruke: 379
*.ppp-bg.sezampro.yu.

Sajt: www.dza-bu-drz-ne-daj.com


Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 14:08 - pre 219 meseci
Ima veze,jer je Inno pisan u pascalu,ako se ne varam,ali postavljati pitanja kako se neki program
koristi nije za ovaj forum!Nebitno,nadam se da je resio problem!
Inno rules
Pozzz
SERVIA NOSTRUM REGNUM!
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
195.252.99.*

Sajt: https://avramovic.info


+46 Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 16:39 - pre 219 meseci
I ja koristim Inno al' sad imam InstallShield corporate... zauzima 1.4 gb... nisam ga jos probao... valjda valja za neshto...
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

ALGHEN
Beograd / Zlatibor

Član broj: 65866
Poruke: 33
*.vdial.verat.net.

Sajt: www.ghc.rs


Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 16:51 - pre 219 meseci
@delalt
Evo je skripta koja ce da proveri verziju Windowsa
Code:

[Setup]
AppName=WindowsVersion
AppVerName=WindowsVersion
DefaultDirName={pf}\WindowsVersion
DisableStartupPrompt=true

[Code]
function InitializeSetup: Boolean;
var
  Version: TWindowsVersion;
  S: String;
begin
  GetWindowsVersionEx(Version);

  // Disallow installation on Home edition of Windows
  if Version.SuiteMask and VER_SUITE_PERSONAL <> 0 then
  begin
    SuppressibleMsgBox('This program cannot be installed on a Home edition of Windows.',
      mbCriticalError, MB_OK, MB_OK);
    Result := False;
    Exit;
  end;

  // Disallow installation on domain controllers
  if Version.ProductType = VER_NT_DOMAIN_CONTROLLER then
  begin
    SuppressibleMsgBox('This program cannot be installed on domain controllers.',
      mbCriticalError, MB_OK, MB_OK);
    Result := False;
    Exit;
  end;

  // On Windows 2000, check for SP4
  if Version.NTPlatform and
     (Version.Major = 5) and
     (Version.Minor = 0) and
     (Version.ServicePackMajor < 4) then
  begin
    SuppressibleMsgBox('When running on Windows 2000, Service Pack 4 is required.',
      mbCriticalError, MB_OK, MB_OK);
    Result := False;
    Exit;
  end;

  // On Windows XP, check for SP2
  if Version.NTPlatform and
     (Version.Major = 5) and
     (Version.Minor = 1) and
     (Version.ServicePackMajor < 2) then
  begin
    SuppressibleMsgBox('When running on Windows XP, Service Pack 2 is required.',
      mbCriticalError, MB_OK, MB_OK);
    Result := False;
    Exit;
  end;

  Result := True;
end;


Verzije Windowsa su ovde
www.c-sharpcorner.com/FAQ/OSVersionUsingEnvClass.asp

Eto, uspeo sam da nadjem resenje za detekciju OS-a, i sad mogu da se slikam sa njom jer ne znam sintaksu ONOG JEZIKA U KOME SE PISU SKRIPTE U INNO SETUP-u (koji god to jezik bio). Treba da napisem pišljivu if()...else()... funkciju, al - NE UMEM!
Sta cu, dizem ruke, pravim tri instalacije pa nek korisnik bira koju ce da pokrene.

Hvala za pomoc!
 
Odgovor na temu

IvanBeograd
Kladza
Beograd

Član broj: 83376
Poruke: 379
*.adsl.sezampro.yu.

Sajt: www.dza-bu-drz-ne-daj.com


Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 17:08 - pre 219 meseci
Pa ja mislim da imas primere,tj dobijes ih uz Inno,nije valjda da je toliko tesko ???
If ko If
SERVIA NOSTRUM REGNUM!
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.9.eunet.yu.



+1 Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 17:36 - pre 219 meseci
Pa vidite ljudi da ima veze sa Pascal-om :)

Ovako na brzinu mislim da bih stavio okidac u kodu instalacije cekajuci neki (zadnji)
korak instalacije u kojem bih pokrenuo potrebne instalacije

Code:

procedure CurStepChanged(CurStep: TSetupStep);
begin
  // Cekamo na promenu koraka u instalaciji, cekamo trenutak kopiranja fajlova
  // i tada vrsimo proveru i instalaciju 
  // pogledaj dokumentaciju kako bi video koji korak ti je najzgodniji za
  // proveru i instalaciju prateceg materijala 
  if CurStep=ssInstall then
  begin
    // Ovde pozivas onaj kod za proveru instalacije
    // Samo sto umesto prozora sa porukom treba da startujes instalacije
   // potrebnih programa
  end;
end;


Sad treba pronaci kako se iz skripte startuje neki exe, ali mislim da to nije problem.
Ja sam sve probleme sa Innom resio pomocu Delphi-a :) Napravio sam par DLL-ova
u kojima imam razne funkcije sa kojima fino regulisem ono sto inno ne moze. Te
dll-ove pakujem u instalaciju i onda ih koristim. Cak sam i citave forme stavio u
njih preko kojih se mogu korisniku dati prakticno neogranicene mogucnosti.

Sad, tebi je verovatno problem da koristis Delphi...

Mozda da probas instaler nullsoft... kako bese, neka neko pomogne, isto je besplatan?
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
195.252.99.*

Sajt: https://avramovic.info


+46 Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 18:40 - pre 219 meseci
da, NSIS, Nullsoft Installer... i on je skripting installer ali ima addone sa kojima moze preko wizarda... i da, besplatan je!
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

ALGHEN
Beograd / Zlatibor

Član broj: 65866
Poruke: 33
213.244.197.*

Sajt: www.ghc.rs


Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 19:00 - pre 219 meseci
@morlic

Hvala.
U medjuvremenu sam upravo pokusao to sto si ti pomenuo gore, samo ne do tih detalja... :)

Iskoristim onu gore napisanu skriptu za detekciju OS-a, pa onda umesto onih poruka, izvalio sam:
Code:
 
...

//ZA XP
if Version.NTPlatform and
     (Version.Major = 5) and
     (Version.Minor = 1)
     then
  begin
ShellExec('open', 'dotnetfx2_0.exe','','',SW_SHOWNORMAL,ewWaitUntilTerminated,ErrorCode);
end;

...

Sad me nervira sto nece da pokrene instalaciju iz nekog foldera (npr. da stavim instalacije u folder "Install", elegantnije je :) ), al sad cu da vidim sta mogu da uradim sa getCurrent Directory, ako ne bude skontao da mu je to {temp}...

Postavicu ovde ili negde drugde skript kad ga zavrsim celog, moze nekome valjati.
Elem, izgleda da cu uspeti, jos samo da nadjem negde 98-icu da probam radi li detekcija kako treba. :)
HVALA NA POMOCI!
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
81.93.74.*



Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 19:31 - pre 219 meseci
Pogledaj primjer na ovoj stranici, pronađi dio vezan za update COMCTL32.DLL:

http://www.jrsoftware.org/isfaq.php

Mislim da će ti to možda najviše odgovarati.
Edit: Važna ti je funkcija Check, a kako sam pročitao ne može se koristiti if/else jer
se skripta samo izvršava odozgo_prema_dole.



[Ovu poruku je menjao delalt dana 01.04.2006. u 20:40 GMT+1]
 
Odgovor na temu

ALGHEN
Beograd / Zlatibor

Član broj: 65866
Poruke: 33
*.vdial.verat.net.

Sajt: www.ghc.rs


Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 20:13 - pre 219 meseci
Da, odlicno. Nsam znao za
Code:
 [Run]
Filename: "dotnetfx2_0.exe"; Check: ProveriJelImaDotNeta

ovu foru sa "Check: ime_funkcije".
Definitivno najprostije resenje. Sada kada mogu lako da proverim koja je verzija ovim "Check" mogu lako da odredim koji fajlovi treba da se pokrenu.
Odlicno!

Evo zavrsicu instalaciju jos malo pa cu je "okaciti" ovde, samo jos neko da mi kaze kako se "Attachuje" neki fajl za post. :)

E da, nisam siguran za proveru 98-ice.
WIN2K i WINXP mogu lako da provalim sa "Major version" i "Minor version", ali za 98-icu u helpu kaze :
Citat:
On Windows 95/98/Me and NT 4.0, SuiteMask is always zero.

jel bi to znacilo ovo
Code:
if Version.SuiteMask=0 then
      begin
         //INSTALIRAJ FAJLOVE ZA 98
      end;
 
Odgovor na temu

Trodmi

Član broj: 58036
Poruke: 193
*.dialup.neobee.net.



Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 20:31 - pre 219 meseci
Inno Setup je jedna od najboljih stvari koja moze da se desi freelanceru. Ipak, osim informativne ovaj post nema nikakve veze sa Delphi-jem i kao takav bi trebao biti uklonjen sa ovog foruma. There, I said it...
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
81.93.74.*



Profil

icon Re: Inno Setup i detekcija OS-a01.04.2006. u 20:32 - pre 219 meseci
Ovo je kraća verzija za provjeru verzije OS, pa kombinuj:
Code:
 
function GetWinVersion: String;
begin
   Result := 'Nepoznato';
   if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then
     if (Win32MajorVersion > 4) or
        ((Win32MajorVersion = 4) and
        (Win32MinorVersion > 0)) then
       Result := 'Windows98'
     else
       Result := 'Windows95'
   else
     if Win32MajorVersion <= 4 then
       Result := 'WindowsNT'
     else
       if Win32MajorVersion = 5 then
         Result := 'Windows2000XP'
end; 

Samo pazi, funkcija Check traži Boolean a ne String, pa prilagodi gornju funkciju.

Dodatak: gdje onda čovjek da pita za Pascal/Delphi kod, ako ne na ovom forumu,
problematika je složena, ali je konkretno tražen pascal kod za provjeru verzije OS


[Ovu poruku je menjao delalt dana 01.04.2006. u 21:46 GMT+1]
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Inno Setup i detekcija OS-a

[ Pregleda: 4332 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.