Cómo mostrar la dilaog de impresión para seleccionar la opción de imprimir cuando se hace clic en "Imprimir" en la pantalla del instalador contrato de licencia de uso de NSIS

votos
0

Cómo mostrar el diálogo de impresión para seleccionar la opción de imprimir cuando se hace clic en Imprimir en la pantalla del instalador contrato de licencia de uso de NSIS.

Quiero mostrar la pantalla de abajo cuando se hace clic en Imprimir en la pantalla del acuerdo de licencia.

Si utilizo el siguiente comando que se está imprimiendo directamente la página sin aparecer el cuadro de diálogo Imprimir.

ExecShell print $INSTDIR\license.rtf 0

introducir

Publicado el 19/12/2018 a las 14:11
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

No existe soporte integrado pero se puede mostrar este diálogo común con el plug-in del sistema:

!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
Respondida el 20/12/2018 a las 23:16
fuente por usuario

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