Comment afficher la dilaog d'impression pour sélectionner l'option d'imprimer en cliquant sur « print » de l'accord de licence écran d'installation en utilisant NSIS

voix
0

Comment afficher la boîte de dialogue d'impression pour sélectionner l'option d'imprimer en cliquant sur « Imprimer » depuis l'écran d'accord de licence d'installation en utilisant NSIS.

Je veux afficher l'écran ci-dessous en cliquant sur « Imprimer » depuis l'écran d'accord de licence.

Si j'utilise la commande ci-dessous, il imprime directement la page sans apparaître la boîte de dialogue d'impression.

ExecShell print $INSTDIR\license.rtf 0

entrez

Créé 19/12/2018 à 14:11
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Il n'y a pas un support intégré , mais vous pouvez afficher cette boîte de dialogue commune avec le plug-in système:

!include LogicLib.nsh
!define /IfNDef PD_HIDEPRINTTOFILE 0x00100000
!define /IfNDef PD_NOSELECTION 0x00000004
!define /IFNDef PD_USEDEVMODECOPIESANDCOLLATE 0x00040000 ; Just one copy


Function ShowPrintDlg
System::Call '*(p0,p$hwndparent,p0,p0,p,i${PD_HIDEPRINTTOFILE}|${PD_NOSELECTION}|${PD_USEDEVMODECOPIESANDCOLLATE},&i2,&i2,&i2,&i2,&i2,p,p,p,p,p0,p0,p0,p0,&l.r0)p.r1'
System::Call '*$1(ir0)'
System::Call 'COMDLG32::PrintDlg(pr1)i.r0'
${If} $0 <> 0
    System::Call '*$1(p,p,p.r3,p.r4,t""r2)'
    System::Free $1
    System::Call 'KERNEL32::GlobalFree(pr3)'
    System::Call 'KERNEL32::GlobalLock(pr4)p.r1'
    ${If} $1 P<> 0
        System::Call '*$1(&i2,&i2.r2,&i2,&i2)'
        System::Call '*$1(&i$2,&t999.r2)'
        System::Call 'KERNEL32::GlobalUnlock(pr1)'
        System::Call 'KERNEL32::GlobalFree(pr4)'
    ${EndIf}
    MessageBox mb_ok 'User wants to print to "$2"'
${Else}
    System::Free $1
${EndIf}
FunctionEnd

Page InstFiles

Section
Call ShowPrintDlg
SectionEnd
Créé 20/12/2018 à 23:16
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more