Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++ mfc]applicazione con dialoghi

    Ciao.
    Devo realizzare una custom action per un installazione.
    Il programma deve fare apparire dei dialoghi in fila uno dopo l'altro.
    Che progetto devo scegliere da vs 2003?
    Se scelgo applicazione mfc non trovo il main e ho le classi view e document che mi servono.
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Devo creare una custom action per un progetto di installazione che deve fare apparire un dialogo personalizzato.
    Ho scelto la strada della dll perchè in questo modo posso settare e leggere le proprietà dell'msi da codice.

    ho usato questo codice,stampa "entrato" ma mi da errore quando lancio il dialogo:
    UINT __stdcall install(MSIHANDLE paraname)
    {

    AfxMessageBox("entrato")
    Esempi* dlg=new Esempi();
    dlg->DoModal();

    return 1;
    }
    oppure:
    UINT __stdcall install(MSIHANDLE paraname)
    {
    idem questo:
    AfxMessageBox("entrato")
    Esempi dlg;
    dlg.DoModal();

    return 1;
    }


    e nella custom action ho settato l'entry point su install.
    La dll lancia il messagebox ma poi da errore

    è possibile lanciare un dialogo da una dll mfc?
    se fosse possibile
    1)faccio un registry search nel registro di sistema per trovare dove è installato autocad e setto una variabile con il percorso
    2)lancerei il dialogo che propone il percorso dela variabile del punto 1(letta con un MsiGetProperty e permette di scegliere un altro percorso
    2)l'utente sceglie dove installare e setta e setto una variabile nell'msi con il metodo MsiSetProperty con il percorso scelto
    4)ritorno al msi e leggo la variabile se è andato tutto ok e copio i files nella directory finale
    data dalla variabile di msi
    grazie

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ok , sono riuscito a visualizzare il dialogo nella custom action.
    Adesso vorrei sapere come si crea un immediate custom action , per andare a settare una proprietà con msisetproperty.
    Ho provato ad utilizzare questa custom action ma non funziona:
    UINT __stdcall SetEsempi(MSIHANDLE paraname)
    {
    LONG lResult;
    lResult =MsiSetProperty(paraname, "CustomActionData", "1");
    if(lResult==ERROR_INVALID_HANDLE)
    {
    ::MessageBox(NULL, "Msi invalid handle","Error",MB_OK);

    }
    else
    if (lResult != ERROR_SUCCESS)
    {
    ::MessageBox(NULL, "MsiSetProperty(ProductID) failed.", "Error", MB_OK);
    //return ERROR_INSTALL_FAILURE;
    }
    }
    mi ritorna sempre msi invalid handle .
    grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.