• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Помогите

  • Автор темы Автор темы BadBalance
  • Дата начала Дата начала
B

BadBalance

Используя ниже указанный код дома на компе, все печатает как надо, а этот же код на работе, то печатает пустой лист.
что мне делать? Sad
Заранее спасибо!


Код:

Public Declare Function StretchBlt Lib "gdi32" _
(ByVal hDC As Long, ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, _
ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, _
ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

Private Sub Print_Me()
Printer.Orientation = 2
Printer.ScaleMode = vbPixels
FrmMain.ScaleMode = vbPixels
Printer.Print
Call StretchBlt(Printer.hDC, 0, 0, Printer.ScaleWidth, Printer.ScaleHeight, _
FrmMain.hDC, 0, 0, FrmMain.ScaleWidth, FrmMain.ScaleHeight, vbSrcCopy)
Printer.EndDoc
Exit Sub

Он не реагирует на "Call StretchBlt..." (мне так кажется) Есть другая API функция?

Люди помогите отыскать какой нибудь Контрол для печати, пожалуйста!!! Sad((
 
вместо StretchBlt можно использовать вбэшную функцию:

Printer.PaintPicture FrmMain, 0, 0, Printer.ScaleWidth, Printer.ScaleHeight, _
0, 0, FrmMain.ScaleWidth, FrmMain.ScaleHeight, vbSrcCopy

может поможет?
 
вместо StretchBlt можно использовать вбэшную функцию:

Printer.PaintPicture FrmMain, 0, 0, Printer.ScaleWidth, Printer.ScaleHeight, _
0, 0, FrmMain.ScaleWidth, FrmMain.ScaleHeight, vbSrcCopy

может поможет?

я пробовал, он пишет "не соответствие типов"...
а когда к делаю:
Код:
Dim tmp as Long
tmp = StretchBlt(Printer.hDC, 0, 0, Printer.ScaleWidth, Printer.ScaleHeight, _
FrmMain.hDC, 0, 0, FrmMain.ScaleWidth, FrmMain.ScaleHeight, vbSrcCopy)
' tmp Return 0!!!??

P.S. Не знаю имеет ли это какое то значение, но на работе принтер находится в сети (LAN). Но другие программы печатают нормально
 
изменил код на:
Код:
	Printer.ScaleMode = vbPixels
FrmMain.ScaleMode = vbPixels
cmdLoad.CancelError = True
cmdLoad.ShowPrinter
For X = 0 To cmdLoad.Copies - 1
Printer.Orientation = 2
Call SetStretchBltMode(FrmMain.hDC, 3)
Call StretchBlt(Printer.hDC, 100, 100, Printer.ScaleWidth, Printer.ScaleHeight, _
FrmMain.hDC, 100, 100, FrmMain.ScaleWidth, FrmMain.ScaleHeight, vbSrcCopy)
FrmMain.Refresh
FrmMain.PrintForm
Next
вроде заработало, но проблема в том что, он попрежнему не хочет реагировать на АПИ функцию "Call StretchBlt..." и код выполняется как:
Код:
	cmdLoad.CancelError = True
cmdLoad.ShowPrinter
For X = 0 To cmdLoad.Copies - 1
Printer.Orientation = 2
FrmMain.Refresh
FrmMain.PrintForm
Next
Неужели никто не знает почему?!?
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab