GetPrintDefault() lento en RDP

GetPrintDefault() lento en RDP

Postby hmpaquito » Wed Apr 07, 2021 10:37 am

Hola a todos.

Uso Terminal Server. Detecté que GetPrintDefault() es muy lento en TS. Así que asumí que todas las impresoras están "preparadas". Quizá el problema es que TS "se trae" muchas impresoras, pero lo cierto es que es muy lento.

Desde entonces he tenido un par de GPF (hb_out.log) como los copiados abajo y están detectado en PrnPortrait() pero diria que el problema, si lo evitara ahi, apareceria en otro sitio.

El problema parece que es GetPrintDefault(). ¿ Alguna alernativa a esa funcion ?


Application Internal Error - Q:\Programas\App.exe
Terminated at: 2021-03-24 17:04:15
Unrecoverable error 6005: Exception error:

Exception Code:C0000005 ACCESS_VIOLATION
Exception Address:004CF69C
EAX:00000000 EBX:01A17E78 ECX:384987F1 EDX:00000000
ESI:00000000 EDI:015C7056 EBP:0018B384
CS:EIP:0023:004CF69C SS:ESP:002B:0018B384
DS:002B ES:002B FS:0053 GS:002B
Flags:00010246
Exception Parameters: 00000001 0000002C
CS:EIP: 66 C7 40 2C 01 00 FF 35 FC A2 A1 01 E8 71 0A 16
SS:ESP: 0018B3A0 0044EB34 00000180 00000004 003AC09C 00000000 00000000 0018B4B4 004488BB 00000000 015BDED7 00000000 015B7880 01A17E78 0018B4C4 004DACFA

C stack:
EIP: EBP: Frame: OldEBP, RetAddr, Params...
004CF69C 0018B384 0018B3A0 0044EB34 00000180 00000004 003AC09C 00000000 00000000
0044EB34 0018B3A0 0018B4B4 004488BB 00000000 015BDED7 00000000 015B7880 01A17E78 0018B4C4 004DACFA 05302D24
004488BB 0018B4B4 0018B4E0 0048BC60 015C6FD3 015B6280 0044ECF1 01A17E78 00000173 00000004 003AC09C 01C00055
0048BC60 0018B4E0 0018B5F4 004489FC 00000000 015BD138 00000000 015B7320 01A17E78 015BCDBC 06285874 06285874
004489FC 0018B5F4 0018B620 0048B6AC 015BD15E 015B6280 0044ECF1 01A17E78 0000016C 00000003 00000000 018D0055
0048B6AC 0018B620 0018B734 004489FC 00000001 015BBEAB 00000000 015B6AB0 00000000 00000000 00000000 00000000
004489FC 0018B734 0018B760 0048B698 015BCDB2 015B6280 0044ECF1 01A17E78 00000167 00000003 00000000 018C0055
0048B698 0018B760 0018B874 004489FC 00000000 015BBBE1 00000000 015B6920 00000000 01A17E78 00000130 096CDE2C
004489FC 0018B874 0018B8A0 0048B5A8 015BBBF7 015B6280 0044ECF1 01A17E78 00000165 00000003 00000000 01830055
0048B5A8 0018B8A0 0018B9B4 004489FC 00000000 008E1F9C 00000000 008E0640 01A17E78 0633C2F4 01A181E4 00000005
004489FC 0018B9B4 0018B9E0 0048B594 015BBBC2 015B6280 0044ECF1 01A17E78 0000015D 00000003 00000000 01820055
0048B594 0018B9E0 0018BAF4 004489FC 00000000 008E1912 00000000 01A17E78 00000028 008E18EE 0632882C 0632882C
004489FC 0018BAF4 0018BB1C 0040C070 008E1B29 008E0050 0044EB34 00000155 00000003 00000000 00000000 0000012B
0040C070 0018BB1C 0018BC30 0044893E 00000002 008FBF6A 00000000 01A17E78 00000028 008FBF4B 096F70C4 096F70C4
0044893E 0018BC30 0018BC58 0040C048 008E18D4 008E0050 0044EB34 0000014C 00000002 00000000 00000000 0000002F
0040C048 0018BC58 0018BD6C 004488BB 00000001 008FBE43 00000000 01A17E78 0039EC9C 0018BC80 004699A1 0635C364
004488BB 0018BD6C 0018BD94 0040C66C 008FBE5C 008F5524 0044EB34 00000147 00000002 00000000 00000000 000002FF
0040C66C 0018BD94 0018BEA8 004488BB 00000003 008F8999 00000000 01A17E78 00000085 0413A5D8 0000000C 0018BDD0
004488BB 0018BEA8 0018BED0 0040C658 008FBE34 008F5524 0044EB34 0000013B 00000002 00000000 00000000 00000290
0040C658 0018BED0 0018BFE4 0044893E 00000003 01A17E78 FFFFFFF5 0039EC3C 01544E87 00000000 0153859C 01A17E78


Modules:
00400000 016D2000 Q:\Programas\App.exe
776D0000 0016F000 C:\Windows\SYSTEM32\ntdll.dll
76AF0000 00140000 C:\Windows\SYSTEM32\KERNEL32.DLL
77070000 000D7000 C:\Windows\SYSTEM32\KERNELBASE.dll
71AF0000 00017000 C:\Windows\SYSTEM32\tsappcmp.dll
76D50000 000C3000 C:\Windows\SYSTEM32\msvcrt.dll
76800000 0017C000 C:\Windows\SYSTEM32\combase.dll
76A10000 000BA000 C:\Windows\SYSTEM32\RPCRT4.dll
75190000 00154000 C:\Windows\SYSTEM32\USER32.dll
76C30000 0007C000 C:\Windows\SYSTEM32\ADVAPI32.dll
75170000 0001E000 C:\Windows\SYSTEM32\SspiCli.dll
75310000 0010E000 C:\Windows\SYSTEM32\GDI32.dll
771F0000 00041000 C:\Windows\SYSTEM32\sechost.dll
74EA0000 0000A000 C:\Windows\SYSTEM32\CRYPTBASE.dll
74E40000 00054000 C:\Windows\SYSTEM32\bcryptPrimitives.dll
75140000 00027000 C:\Windows\system32\IMM32.DLL
75420000 00112000 C:\Windows\SYSTEM32\MSCTF.dll
749C0000 00008000 C:\Windows\SYSTEM32\VERSION.DLL
724A0000 00065000 C:\Windows\SYSTEM32\WINSPOOL.DRV
71550000 00207000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9600.19394_none_a9f59c4f01325ed5\COMCTL32.DLL
76CB0000 0009B000 C:\Windows\SYSTEM32\COMDLG32.DLL
71AC0000 00006000 C:\Windows\SYSTEM32\MSIMG32.DLL
75540000 012BE000 C:\Windows\SYSTEM32\SHELL32.DLL
726D0000 00023000 C:\Windows\SYSTEM32\WINMM.DLL
75000000 00129000 C:\Windows\SYSTEM32\OLE32.DLL
74EB0000 00097000 C:\Windows\SYSTEM32\OLEAUT32.DLL
71530000 0001E000 C:\Windows\SYSTEM32\OLEDLG.DLL
713B0000 00171000 C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.9600.19913_none_dad8a2d45bcbf630\GDIPLUS.DLL
74F50000 0004F000 C:\Windows\SYSTEM32\WS2_32.DLL
74A90000 00020000 C:\Windows\SYSTEM32\IPHLPAPI.DLL
74990000 0000F000 C:\Windows\SYSTEM32\WTSAPI32.DLL
62900000 002CA000 Q:\pwm\rol\gro\LIBMYSQL.DLL
76980000 00045000 C:\Windows\SYSTEM32\SHLWAPI.dll
72470000 00023000 C:\Windows\SYSTEM32\WINMMBASE.dll
75130000 00007000 C:\Windows\SYSTEM32\NSI.dll
74980000 00008000 C:\Windows\SYSTEM32\WINNSI.DLL
77150000 0003C000 C:\Windows\SYSTEM32\cfgmgr32.dll
71DC0000 00021000 C:\Windows\SYSTEM32\DEVOBJ.dll
74890000 0008C000 C:\Windows\SYSTEM32\SHCORE.DLL
72700000 000ED000 C:\Windows\system32\uxtheme.dll
70D70000 00045000 C:\Windows\SYSTEM32\WINSTA.dll
72B00000 00008000 C:\Windows\System32\rasadhlp.dll
72670000 0001A000 C:\Windows\system32\dwmapi.dll
74E30000 00009000 C:\Windows\SYSTEM32\kernel.appcore.dll
76E20000 0008D000 C:\Windows\SYSTEM32\clbcatq.dll
747E0000 00019000 C:\Windows\SYSTEM32\CRYPTSP.dll
747B0000 00030000 C:\Windows\system32\rsaenh.dll
74790000 0001E000 C:\Windows\SYSTEM32\bcrypt.dll

Called from PRNPORTRAIT(0)
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: GetPrintDefault() lento en RDP

Postby karinha » Wed Apr 07, 2021 1:04 pm

Intenta asi:

Code: Select all  Expand view  RUN

FUNCTION DefaultPrinter()

   LOCAL nPrn, nRet

   // Abre a tela para a seleção da impressora
   /*
   GetPrintDC( GetActiveWindow() )

   // Coloca a impressora selecionada como Default do Windows
   SetDefaultPrinter( PRNGETNAME() )
   */


   nRet := PrinterSetUp()

   nPrn := PrnGetName()

   IF( nRet # 0 )

      SetDefaultPrinter( PRNGETNAME() ) // MUDA O DEFAULT DA IMPRESSORA

      MsgInfo( OemToAnsi( "Aten‡Æo Usu rio:                        " )+CRLF+ ;
               OemToAnsi( "Sua Impressora DEFAULT(PadrÆo) ‚:       " )+CRLF+ ;
                        ( "-> " + nPrn                               ),      ;
               OemToAnsi( "Sua Impressora DEFAULT(PadrÆo) ‚...     " ) )

      sGetDefaultPrinter := GetDefaultPrinter()

      // ? PrnStatus( sGetDefaultPrinter )

      IF PrnStatus( sGetDefaultPrinter ) = 4096

         // Verifica se SPOOLER esta desligado e tenta liga-lo
         MsgRun( sGetDefaultPrinter +": "+isprint( GetDefaultPrinter() ) + ;
                         " ou Spooler Desligado.", "Status da Impressora", ;
                 {|| WinExec( "NET START SPOOLER", 7 ) } )

      ENDIF

   ELSE

      MsgInfo( OemToAnsi( "ATEN€ÇO USUµRIO:                         " )+CRLF+ ;
               OemToAnsi( "VERIFIQUE SUA IMPRESSORA SE ESTµ LIGADA. " )+CRLF+ ;
               OemToAnsi( "OU SE ESTµ INSTALADA CORRETAMENTE...     " )+CRLF+ ;
               OemToAnsi( "TEM ALGUMA COISA ERRADA COM A IMPRESSORA?" )+CRLF+ ;
               OemToAnsi( "TECLE <ENTER> PARA CONTINUAR...          " ),      ;
               OemToAnsi( "VERIFIQUE SUA IMPRESSORA SE ESTµ LIGADA. " ) )

      RETURN( .F. )

   ENDIF

RETURN NIL
 


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: GetPrintDefault() lento en RDP

Postby hmpaquito » Wed Apr 07, 2021 1:48 pm

Gracias Karinha, pero no me vale.

Precisamente mi insterés es buscar una alternativa a GetPrintDefault() que en RDP va muy lento
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: GetPrintDefault() lento en RDP

Postby Antonio Linares » Wed Apr 07, 2021 4:01 pm

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42118
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 54 guests