Wie der Druck dilaog zeigen, um die Option auszuwählen, wenn auf „Druck“ aus dem Lizenzvertrag Installationsbildschirm mit NSIS geklickt drucken

stimmen
0

Wie der Druckdialog zeigen, um die Option auszuwählen, wenn auf „Druck“ aus dem Lizenzvertrag Installationsbildschirm mit NSIS geklickt zu drucken.

Ich möchte den folgenden Bildschirm anzuzeigen, wenn auf „Drucken“ aus dem Lizenzvertrag Bildschirm angeklickt.

Wenn ich den folgenden Befehl verwenden, wird das Drucken direkt auf die Seite, ohne den Druckdialog Aufspringen.

ExecShell print $INSTDIR\license.rtf 0

Geben

Veröffentlicht am 19/12/2018 um 14:11
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Es gibt keine eingebaute Unterstützung , aber Sie können diese Anzeige gemeinsamen Dialog mit dem System - Plug-in:

!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
Beantwortet am 20/12/2018 um 23:16
quelle vom benutzer

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