Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - creare installer
Forum - C/C++ - creare installer

Avatar
genni_96 (Normal User)
Pro


Messaggi: 108
Iscritto: 04/06/2010

Segnala al moderatore
Postato alle 10:36
Domenica, 13/06/2010
Ho pensato di creare un installer per i miei programmi ed con un po di ricerche sul web ho scritto questo codice
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <windows.h>
  3. #include <shlobj.h>
  4.  
  5. int i;
  6.  
  7. int main()
  8. {
  9.     char path[MAX_PATH];
  10.     char uni[MAX_PATH];
  11.     SHGetFolderPath(NULL,CSIDL_PROGRAM_FILES,NULL,0,path);
  12.     sprintf(path,"%s\\Genni",path);
  13.     CreateDirectory(path,NULL);
  14.     sprintf(path,"%s\\NSKAPOKKIAeditor v3",path);
  15.     CreateDirectory(path,NULL);
  16.     sprintf(uni,"%s\\unistaller.bat",path);
  17.     sprintf(path,"%s\\NSKAPOKKIAeditor v3.exe",path);
  18.    
  19.     if(!CopyFile("NSKAPOKKIAeditor v3.exe",path,FALSE))
  20.     {
  21.                                    printf("Errore\n");
  22.                                    system("pause");
  23.                                    exit(1);
  24.     }
  25.    
  26.     char desktop[MAX_PATH];
  27.     SHGetFolderPath(NULL,CSIDL_DESKTOPDIRECTORY,NULL,0,desktop);
  28.     sprintf(desktop,"%s\\NSKAPOKKIAeditor v3.exe",desktop);
  29.    
  30.     if(!CopyFile("NSKAPOKKIAeditor v3.exe",desktop,FALSE))
  31.     {
  32.                                    printf("Errore\n");
  33.                                    system("pause");
  34.                                    exit(1);
  35.     }
  36.    
  37.    
  38.     FILE *f=fopen(uni,"w");
  39.     fwrite("del ",sizeof(char),4,f);
  40.     for(i=0;path[i]!='\0';i++){}
  41.     fwrite("\"",sizeof(char),1,f);
  42.     fwrite(path,sizeof(char),i,f);
  43.     fwrite("\"",sizeof(char),1,f);
  44.     fwrite("\n",sizeof(char),1,f);
  45.     fwrite("del ",sizeof(char),4,f);
  46.     for(i=0;desktop[i]!='\0';i++){}
  47.     fwrite("\"",sizeof(char),1,f);
  48.     fwrite(desktop,sizeof(char),i,f);
  49.     fwrite("\"",sizeof(char),1,f);
  50.     fwrite("\n",sizeof(char),1,f);
  51.     for(i=0;uni[i]!='\0';i++){}
  52.     fwrite("del ",sizeof(char),4,f);
  53.     fwrite("\"",sizeof(char),1,f);
  54.     fwrite(uni,sizeof(char),i,f);
  55.     fwrite("\"",sizeof(char),1,f);
  56.     fwrite("\n",sizeof(char),1,f);
  57.    
  58.     fclose(f);
  59.    
  60.     printf("Installazione completata.\n");
  61.     system("pause");
  62. }



NSKAPOKKIAeditor v3.exe è l'eseguibile del programma.

Funziona , ma ora il file è uno solo, poi quando saranno tanti non vorrei fare così, ma vorrei che l'installer estraesse i file.
Praticamente non ci devono essere i file da copiare ma deveno essere dentro l'installer, come una specie di archivio.
Penso che si possa fare perchè quasi tutti i programmi che si scaricano da internet sono così.

PM Quote
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Segnala al moderatore
Postato alle 11:40
Domenica, 13/06/2010
ci sono dei programmi che hanno come compito la creazione di installazioni di eventuali programmi. Uno di questi è INSTALLBUILDER raggiungibile al seguente indirizzo web http://installbuilder.bitrock.com/

PM Quote
Avatar
genni_96 (Normal User)
Pro


Messaggi: 108
Iscritto: 04/06/2010

Segnala al moderatore
Postato alle 12:02
Domenica, 13/06/2010
non posso farlo io tramite codice c++??

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 12:23
Domenica, 13/06/2010
Testo quotato

Postato originariamente da genni_96:

non posso farlo io tramite codice c++??



tramite C++ no, puoi usare dei resources binari o degli archivi autoestranti

PM Quote
Avatar
genni_96 (Normal User)
Pro


Messaggi: 108
Iscritto: 04/06/2010

Segnala al moderatore
Postato alle 12:25
Domenica, 13/06/2010
con gli archivi autoestraenti so farlo ma potresti spiegarmi come usare questi resurces binari??

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 13:35
Domenica, 13/06/2010

PM Quote
Avatar
BlueWay (Normal User)
Rookie


Messaggi: 49
Iscritto: 21/03/2010

Segnala al moderatore
Postato alle 10:48
Lunedì, 14/06/2010
HeDo e Pitagora ti hanno dato degli ottimi consigli. Io aggiungo che c'è un programma, Inno Setup Compiler, che ti consente di creare degli {exe} semplicemente impostando alcuni parametri (va da se che, qualora tu voglia, ti consenta anche di scrivere tu stessa l'eseguibile in un suo linguaggio). Credo che lo facciano anche altri programmi di questo tipo (NSIS, per esempio, lo fa), ma Inno risulta facilissimo da usare. Se la cosa ti interessa, scarica Inno da http://www.jrsoftware.org/isdl.php . Invece, all' indirizzo http://www.vitaminapc.it/portale/index.php?topic=304.0] trovi una mia guida al riguardo

Ultima modifica effettuata da BlueWay il 14/06/2010 alle 10:50
PM Quote
Avatar
genni_96 (Normal User)
Pro


Messaggi: 108
Iscritto: 04/06/2010

Segnala al moderatore
Postato alle 9:35
Martedì, 15/06/2010
scusa blueway ho aperto il link che mi hai dato ma il video non c'è!!

PM Quote
Avatar
BlueWay (Normal User)
Rookie


Messaggi: 49
Iscritto: 21/03/2010

Segnala al moderatore
Postato alle 14:43
Martedì, 15/06/2010
Testo quotato

Postato originariamente da genni_96:

scusa blueway ho aperto il link che mi hai dato ma il video non c'è!!



Devi registrarti, sennò i link non ti permette di vederli.

PM Quote