+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: InnoSetup: Controllare presenza programma sia 32 sia 64 bit

  1. #1
    L'avatar di BLUES
    BLUES non è in linea Scribacchino
    Luogo
    ROMA
    Post
    1,308

    InnoSetup: Controllare presenza programma sia 32 sia 64 bit

    Ciao a tutti,

    prima di scrivere codici su InnoSetup vorrei i vostri consigli su come fare per creare DVD di installazione per Windows,
    praticamente ho creato un programmino con VB.NET contenente Database di ACCESS che funziona da 32bit (86) tutto funzionante ma se un altro computer l'OFFICE di ACCESS è stato installato a 64 bit poi il mio programma non funziona.

    Dunque ho bisogno di scrivere su script di InnoSetup la verifica di ACCESS sia da 32 sia da 64 bit e se "vede" che è installato a 64 allora il mio programma di VB.NET deve installare direttamente a 64.

    spero di aver spiegato bene la mia situazione.

    questi sono i codici che verifica la presenza di Access ma mi serve dettagliatamente se è a 32 o 64

    codice:
    function VerificaPresenzaAccess: Boolean;
      Begin
        Result := RegKeyExists(HKEY_LOCAL_MACHINE,'Software\Microsoft\Office\13.0\Access')
        Or RegKeyExists(HKEY_LOCAL_MACHINE,'Software\Microsoft\Office\14.0\Access')
        Or RegKeyExists(HKEY_LOCAL_MACHINE,'Software\Microsoft\Office\15.0\Access');
      End;
    Grazie.
    BLUES

  2. #2
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,093
    Può bastarti verificare il PATH in cui è installato Office?

    codice:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Common\InstallRoot
    in cui la chiave "Path" restituisce il percorso di installazione.
    Se ad esempio è:

    C:\Program Files (x86)\Microsoft Office\Office15\

    significa che è a 32 bit

  3. #3
    L'avatar di BLUES
    BLUES non è in linea Scribacchino
    Luogo
    ROMA
    Post
    1,308
    Quote Originariamente inviato da gibra Visualizza il messaggio
    Può bastarti verificare il PATH in cui è installato Office?

    codice:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Common\InstallRoot
    in cui la chiave "Path" restituisce il percorso di installazione.
    Se ad esempio è:

    C:\Program Files (x86)\Microsoft Office\Office15\

    significa che è a 32 bit
    Si è perfetto e la chiave giusta sarebbe:

    codice:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Access\InstallRoot
    solo un'ultima cosa come devo scrivere nel codice riguardo al Nome Valore "Path" e Dati Valore "C:\Program Files (x86)\Microsoft Office\Office15\" perché possa scrivere con un "if..." o c'è qualcosa di meglio?

    io sto imparando e conosco InnoSetup ma solo quest'ultimo ho ancora qualcosa da imparare.
    BLUES

  4. #4
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,856
    In generale, per un programma che utilizza una database "di Access" non è necessaria la presenza di Access (inteso come programma).
    Il regolamento del forum: la prima cosa da leggere.

  5. #5
    L'avatar di BLUES
    BLUES non è in linea Scribacchino
    Luogo
    ROMA
    Post
    1,308
    Quote Originariamente inviato da Brontolo Visualizza il messaggio
    In generale, per un programma che utilizza una database "di Access" non è necessaria la presenza di Access (inteso come programma).
    Ho una domanda: con VB.NET ho programmato per Program(86) e nella form contiene un Database di Access, dunque se qualcuno ha Access installato nel PC da 64, funzionerebbe lo stesso?

    Per me non ci sono problemi se il mio programma creato da VB.NET installi nella directory da 86 o 64 ma l'unico neo è OFFICE dove è stato installato ed è qui che devo far si che installi nella directory dove si trova ACCESS installato.
    BLUES

  6. #6
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,093
    Quote Originariamente inviato da BLUES Visualizza il messaggio
    Ho una domanda: con VB.NET ho programmato per Program(86)
    Quindi a 32 bit...

    Quote Originariamente inviato da BLUES Visualizza il messaggio
    e nella form contiene un Database di Access,
    Impossibile.
    Un form NON può contenere un database.

    Quote Originariamente inviato da BLUES Visualizza il messaggio
    dunque se qualcuno ha Access installato nel PC da 64, funzionerebbe lo stesso?
    Certo. Perché mai non dovrebbe?

    Quote Originariamente inviato da BLUES Visualizza il messaggio
    Per me non ci sono problemi se il mio programma creato da VB.NET installi nella directory da 86 o 64 ma l'unico neo è OFFICE dove è stato installato ed è qui che devo far si che installi nella directory dove si trova ACCESS installato.
    Questo è assolutamente sbagliato, a prescindere.
    Perché non vi è alcun motivo, né logico né pratico per farlo.
    Tu devi installare la tua applicazione nella tua cartella. Punto.

    Non capisco per quale motivo vuoi farlo...


  7. #7
    L'avatar di BLUES
    BLUES non è in linea Scribacchino
    Luogo
    ROMA
    Post
    1,308
    Quote Originariamente inviato da gibra Visualizza il messaggio
    Impossibile.
    Un form NON può contenere un database..
    Forse mi sono spiegato male, nella mia form ho associato un database di Access con "DataSet", "BindingSource", "TableAdapter" usando dal menu PROGETTO --> AGGIUNGI NUOVA ORIGINE DATI

    Certo. Perché mai non dovrebbe?
    a qualcuno non ha però funzionato ma un dubbio mi viene che nel suo PC ha solo 64bit e dopo variate prove ho fatto sostituire i file da 32 a 64bit e ha funzionato, infatti non so se era ACCESS Runtime Mancante o i file sostituiti.
    cmq avresti ragione a riguardo...

    Questo è assolutamente sbagliato, a prescindere.
    Perché non vi è alcun motivo, né logico né pratico per farlo.
    Tu devi installare la tua applicazione nella tua cartella. Punto.

    Non capisco per quale motivo vuoi farlo...

    come detto prima non ho giustificazione e se era davvero questione del Sistema Operativo a 32 o 64

    grazie di tutto
    BLUES

  8. #8
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,856
    Quote Originariamente inviato da BLUES Visualizza il messaggio
    ... devo far si che installi nella directory dove si trova ACCESS installato.
    Hai citato e ignorato la mia risposta. Forse non era abbastanza chiara. Provo a dirlo in un altro modo: un programma può utilizzare un database cosiddetto "di Access" (cioè un database MS-Jet) senza bisogno che nella stessa macchina ci sia Access. Quindi non è un problema di versione (32 o 64 bit) del programma o di Access, né tanto meno di directory di installazione.
    Il regolamento del forum: la prima cosa da leggere.

  9. #9
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,093
    Quote Originariamente inviato da BLUES Visualizza il messaggio
    a qualcuno non ha però funzionato ma un dubbio mi viene che nel suo PC ha solo 64bit e dopo variate prove ho fatto sostituire i file da 32 a 64bit e ha funzionato, infatti non so se era ACCESS Runtime Mancante o i file sostituiti.
    Ma perché mai il tuo programma fatto in VB.NET dovrebbe avere bisogno del Runtime di Access??
    Non ha senso...

    A meno che non sia stato TU ad 'istruire' il tuo programma in tal senso.
    L'hai fatto?

    Quale driver/provider usi ?

  10. #10
    L'avatar di BLUES
    BLUES non è in linea Scribacchino
    Luogo
    ROMA
    Post
    1,308
    Quote Originariamente inviato da Brontolo Visualizza il messaggio
    Hai citato e ignorato la mia risposta. Forse non era abbastanza chiara. Provo a dirlo in un altro modo: un programma può utilizzare un database cosiddetto "di Access" (cioè un database MS-Jet) senza bisogno che nella stessa macchina ci sia Access. Quindi non è un problema di versione (32 o 64 bit) del programma o di Access, né tanto meno di directory di installazione.
    Ah si? in questo caso sto solo perdendo tempo e che quasi sicuramente era soltanto questione del sistema operativo da 32 e 64bit e che Access non centrava niente.

    grazie ancora Brontolo, ero convinto che era obbligatoria ma in realtà si può farne a meno.

    Alla prossima.
    BLUES

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi