Invio di messaggi a Windows Installer tramite MsiProcessMessage
I messaggi inviati con MsiProcessMessage sono gli stessi messaggi ricevuti dalla funzione di callback INSTALLUI_HANDLER se è stato chiamato MsiSetExternalUI. In caso contrario, Windows Installer gestisce i messaggi. Per informazioni dettagliate, vedere analisi dei messaggi di Windows Installer .
Ad esempio, per inviare un messaggio di tipo INSTALLMESSAGE_ERROR con l'icona MB_ICONWARNING e i pulsanti MB_ABORTRETRYCANCEL:
PMSIHANDLE hInstall;
PMSIHANDLE hRec;
MsiProcessMessage(hInstall, INSTALLMESSAGE(INSTALLMESSAGE_ERROR|MB_ABORTRETRYIGNORE|MB_ICONWARNING), hRec);
Dove hInstall è l'handle per l'installazione, fornito a un'azione personalizzata o all'handle hProduct da MsiOpenProduct o MsiOpenPackage, mentre hRec è il record contenente le informazioni sull'errore da formattare. Per informazioni sull'esecuzione della formattazione, vedere MsiFormatRecord.
Per impostazione predefinita, se viene inviato un messaggio di INSTALLMESSAGE_ERROR o INSTALLMESSAGE_FATALEXIT senza specificare tipi di pulsante o di icona, MB_OK, nessuna icona e MB_DEFBUTTON1 vengono utilizzati.
Windows Installer non etichetta il pulsante ABORT con la stringa "Abort" quando visualizza una MessageBox con la specifica del pulsante MB_ABORTRETRYIGNORE; invece, etichetta il pulsante con la stringa "Annulla". Tutti i messaggi di errore si astengono dall'uso della parola "Abort" e usano invece la parola "Cancel".
Il parametro hRecord della funzioneMsiProcessMessagedipende dal tipo di messaggio inviato al MsiProcessMessage. L'elenco seguente illustra in dettaglio i requisiti del record in relazione al tipo di messaggio:
INSTALLMESSAGE_FATALEXIT
MESSAGGIO DI INSTALLAZIONE_INFO
MESSAGGIOINSTALLAZIONE_DISCODUESAURITO
Campo | Descrizione |
---|---|
0 | Modello per la formattazione della stringa risultante. Per altre informazioni, vedere msiFormatRecord. Ai campi del record viene fatto riferimento usando [1] per il campo 1, [2] per il campo 2 e così via. |
da 1 a n | Tutti i campi successivi sono direttamente correlati ai campi a cui fa riferimento il modello nel campo 0. |
Se il campo 0 è Null, la stringa ricevuta dal gestore dell'interfaccia utente viene formattata come: 1: [dati dal campo 1] 2: [dati del campo 2] ovvero per ogni campo del record, la stringa contiene il numero di campo seguito dai dati archiviati nel campo.
I messaggi informativi provenienti da MsiProcessMessage vengono registrati quando MsiEnableLog, l'opzione della riga di comando '/l'o i criteri di registrazione specificano 'I' o INSTALLLOGMODE_INFO.
INSTALLMESSAGE_ERROR
INSTALLMESSAGE_WARNING
MESSAGGIO_INSTALLAZIONE_UTENTE
Per utilizzare un messaggio dalla tabella degli errori.
Campo | Descrizione |
---|---|
0 | Deve essere Null. |
1 | Numero di messaggio nella tabella errore . |
Da 2 a in | Correlato al messaggio specificato nella tabella Errore. |
Per esempio.
Campo | Digitare | Dati |
---|---|---|
0 | corda | nullo |
1 | Int | 1304 |
2 | corda | Myfile.txt |
Il messaggio risultante ricevuto dal gestore dell'interfaccia utente è:
Errore 1304. Errore durante la scrittura nel file: Myfile.txt. Verificare di avere accesso a tale directory.
Se il campo 0 non è Null, viene eseguito l'override del messaggio della tabella degli errori. Il modello di campo 0 determina invece il formato del messaggio.
Il messaggio può anche specificare i pulsanti, incluso il pulsante predefinito e l'icona da usare con il messaggio come indicato in precedenza. I tipi di pulsante e icona sono elencati in INSTALLUI_HANDLER.
INSTALLMESSAGE_COMMONDATA
Questo messaggio viene inviato per abilitare o disabilitare il pulsante annulla in una finestra di dialogo di progresso.
Campo | Descrizione |
---|---|
0 | Inutilizzato. |
1 | 2 fa riferimento al pulsante Annulla. |
2 | Il valore 1 indica che il pulsante Annulla deve essere visibile. Il valore 0 indica che il pulsante annulla deve essere invisibile. |
Ad esempio, per disabilitare o nascondere il pulsante Annulla, il record verrà visualizzato come segue.
Campo | Digitare | Dati |
---|---|---|
0 | corda | nullo |
1 | Int | 2 |
2 | Int | 0 |
INSTALLAZIONE_MESSAGGIO_AVVIOAZIONE
MESSAGGIOINSTALLAZIONE_DATIATTIVITÀ
Il record INSTALLMESSAGE_ACTIONSTART determina il formato del record ActionData.
Campo | Descrizione |
---|---|
0 | nullo |
1 | Nome dell'azione. Il nome in questo campo deve essere diverso da Null. |
2 | Descrizione dell'azione. |
3 | Modello di azione. Viene utilizzato per ActionData il cui messaggio viene formattato in base a questo modello. |
Non fare riferimento al campo 0 nel messaggio modello azione.
Il record INSTALLMESSAGE_ACTIONDATA viene formattato come segue.
Campo | Descrizione |
---|---|
0 | nullo |
da 1 a n | A seconda del campo 3 del messaggio INSTALLMESSAGE_ACTIONSTART o del modello corrispondente specificato nella tabella ActionText . |
Ad esempio, il record INSTALLMESSAGE_ACTIONSTART.
Campo | Digitare | Dati |
---|---|---|
0 | corda | nullo |
1 | corda | MyAction |
2 | corda | Questa è la descrizione di "MyAction" |
3 | corda | Modello MyAction: i dati field1 sono [1]. i dati del campo 2 sono [2]. |
Il modello per INSTALLMESSAGE_ACTIONSTART (campo 3) fa riferimento ai campi 1 e 2, il record INSTALLMESSAGE_ACTIONDATA deve contenere 2 campi contenenti i dati giustificati. I campi possono essere campi stringa o integer.
INSTALLMESSAGE_ACTIONDATA record.
Campo | Digitare | Dati |
---|---|---|
0 | corda | nullo |
1 | Int | 2 |
2 | corda | ActionData per MyAction |
MESSAGGIOINSTALLAZIONE_FILEINUSO
Il record FILESINUSE è un record di lunghezza variabile.
Campo | Descrizione |
---|---|
0 | Questo campo può essere Null. Per un'installazione tramite un'interfaccia utente di base, questo campo può specificare testo statico da visualizzare nel controllo ListBox della finestra di dialogo FilesInUse. Per un'installazione con un'interfaccia utente completa, questo campo non ha alcun effetto perché il testo viene specificato dalla creazione della finestra di dialogo FilesInUse personalizzata. |
1 | Nome del file in uso. |
2 | Questo campo identifica il processo che contiene il file in uso.Windows Installer versione 4.0: L'ID del processo (PID) del processo o il titolo della finestra per il processo. Windows Installer versione 3.1 e precedenti: Questo campo deve essere l'ID processo (PID) del processo. |
Ad esempio, per inviare un messaggio FilesInUse che mostra due file in uso, red.exe e blue.exe, il record ha quattro campi più il campo 0. Il formato del record sarà come illustrato nella tabella seguente. Questo esempio richiede Windows Installer versione 4.0.
Windows Installer versione 3.1 e precedenti: Negli esempi seguenti, i campi 2 e 4 devono contenere i PID dei processi che utilizzano red.exe e blue.exe.
Campo | Descrizione |
---|---|
0 | nullo |
1 | Red.exe |
2 | Titolo finestra rossa |
3 | Blue.exe |
4 | Titolo della finestra blu |
Nota
In Windows Installer versione 4.0, se il PID passato dal servizio non dispone di un titolo di finestra, come nel caso di un'applicazione dell'area di notifica, il file potrebbe non essere visualizzato e il log dettagliato contiene i messaggi seguenti.
File In Use: -<FileName>- Window could not be found. Process ID: <PID>
No window with title could be found for FilesInUse
INSTALLMESSAGE_RESOLVESOURCE
Il record INSTALLMESSAGE_RESOLVESOURCE ha sette campi. Affinché INSTALLMESSAGE_RESOLVESOURCE funzioni correttamente, un gestore dell'interfaccia utente esterno potrebbe non gestire il messaggio di INSTALLMESSAGE_RESOLVESOURCE. Windows Installer deve gestire il messaggio di INSTALLMESSAGE_RESOLVESOURCE. Ovvero, il gestore dell'interfaccia utente esterno restituisce 0 per indicare "nessuna azione eseguita" quando si filtra il messaggio INSTALLMESSAGE_RESOLVESOURCE. La procedura consigliata consiste nell'evitare di inviare un messaggio RESOLVESOURCE.
Campo | Descrizione |
---|---|
0 | nullo |
1 | nullo |
2 | Nome del pacchetto. |
3 | Codice prodotto. |
4 | Il percorso relativo, se noto, può essere Null. |
5 | 0 |
6 | Indica se convalidare il codice del pacchetto. Il valore '1' indica che il codice del pacchetto deve essere convalidato. Il valore '0' indica che il pacchetto non deve essere convalidato. |
7 | Disco richiesto dalla tabella dei supporti. Il valore '0' indica che qualsiasi disco è accettabile. |