تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اريد كود فتح صندوق الكاشير المحاسبي تلقائيا مجرد الضغط على Button
#4
شوف هذا الكود من StackOverFlow
كود :
Imports System.Runtime.InteropServices

Module mdlprint
  Public Class RawPrinter
     ' ----- Define the data type that supplies basic print job information to the spooler.
     <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)> _
     Public Structure DOCINFO
        <MarshalAs(UnmanagedType.LPWStr)> _
        Public pDocName As String
        <MarshalAs(UnmanagedType.LPWStr)> _
        Public pOutputFile As String
        <MarshalAs(UnmanagedType.LPWStr)> _
        Public pDataType As String
     End Structure

     ' ----- Define interfaces to the functions supplied in the DLL.
     <DllImport("winspool.drv", EntryPoint:="OpenPrinterW", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
     Public Shared Function OpenPrinter(ByVal printerName As String, ByRef hPrinter As IntPtr, ByVal printerDefaults As Integer) As Boolean
     End Function

     <DllImport("winspool.drv", EntryPoint:="ClosePrinter", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
     Public Shared Function ClosePrinter(ByVal hPrinter As IntPtr) As Boolean
     End Function

     <DllImport("winspool.drv", EntryPoint:="StartDocPrinterW", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
     Public Shared Function StartDocPrinter(ByVal hPrinter As IntPtr, ByVal level As Integer, ByRef documentInfo As DOCINFO) As Boolean
     End Function

     <DllImport("winspool.drv", EntryPoint:="EndDocPrinter", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
     Public Shared Function EndDocPrinter(ByVal hPrinter As IntPtr) As Boolean
     End Function

     <DllImport("winspool.drv", EntryPoint:="StartPagePrinter", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
     Public Shared Function StartPagePrinter(ByVal hPrinter As IntPtr) As Boolean
     End Function

     <DllImport("winspool.drv", EntryPoint:="EndPagePrinter", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
     Public Shared Function EndPagePrinter(ByVal hPrinter As IntPtr) As Boolean
     End Function

     <DllImport("winspool.drv", EntryPoint:="WritePrinter", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
     Public Shared Function WritePrinter(ByVal hPrinter As IntPtr, ByVal buffer As IntPtr, ByVal bufferLength As Integer, ByRef bytesWritten As Integer) As Boolean
     End Function

     Public Shared Function PrintRaw(ByVal printerName As String, ByVal origString As String) As Boolean
        ' ----- Send a string of  raw data to  the printer.
        Dim hPrinter As IntPtr
        Dim spoolData As New DOCINFO
        Dim dataToSend As IntPtr
        Dim dataSize As Integer
        Dim bytesWritten As Integer

        ' ----- The internal format of a .NET String is just
        '       different enough from what the printer expects
        '       that there will be a problem if we send it
        '       directly. Convert it to ANSI format before
        '       sending.
        dataSize = origString.Length()
        dataToSend = Marshal.StringToCoTaskMemAnsi(origString)

        ' ----- Prepare information for the spooler.
        spoolData.pDocName = "OpenDrawer" ' class='highlight'
        spoolData.pDataType = "RAW"

        Try
           ' ----- Open a channel to  the printer or spooler.
           Call OpenPrinter(printerName, hPrinter, 0)

           ' ----- Start a new document and Section 1.1.
           Call StartDocPrinter(hPrinter, 1, spoolData)
           Call StartPagePrinter(hPrinter)

           ' ----- Send the data to the printer.
           Call WritePrinter(hPrinter, dataToSend, _
              dataSize, bytesWritten)

           ' ----- Close everything that we opened.
           EndPagePrinter(hPrinter)
           EndDocPrinter(hPrinter)
           ClosePrinter(hPrinter)
           PrintRaw = True
        Catch ex As Exception
           MsgBox("Error occurred: " & ex.ToString)
           PrintRaw = False
        Finally
           ' ----- Get rid of the special ANSI version.
           Marshal.FreeCoTaskMem(dataToSend)
        End Try
     End Function
  End Class
End Module

Public Class Main
  Public Sub OpenCashdrawer()
     'Modify DrawerCode to your receipt printer open drawer code
     Dim DrawerCode As String = Chr(27) & Chr(112) & Chr(48) & Chr(64) & Chr(64)
     'Modify PrinterName to your receipt printer name
     Dim PrinterName As String = "Your receipt printer name"

     RawPrinter.PrintRaw(PrinterName, DrawerCode)
  End Sub
End Class
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة: mohamedgadain61 , ابراهيم ايبو


الردود في هذا الموضوع
RE: اريد كود فتح صندوق الكاشير المحاسبي تلقائيا مجرد الضغط على Button - بواسطة عبد العزيز البسكري - 26-03-20, 12:00 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] طريقة تفعيل الشاشة الصغيرة في جهاز الكاشير MOHAMMED ALZWI 0 260 25-09-25, 02:17 PM
آخر رد: MOHAMMED ALZWI
  [سؤال] اريد طباعة تقرير ريبورت فيو مباشرة فور عرض التقرير mh66 1 565 22-03-25, 09:59 AM
آخر رد: mh66
  اريد كود لو سمحتم خالد كامل1 10 1,227 15-02-25, 02:15 PM
آخر رد: خالد كامل1
  اريد كود معين اثابكم الله خالد كامل1 1 460 04-02-25, 09:28 PM
آخر رد: aliday03
  اريد كود يحذف جميع سجلات جدول بقاعدة بيانات اكسس دفعه واحده khalidalwdi 2 644 18-11-24, 01:02 AM
آخر رد: rdxdz
  اريد جلب عدد محدد من السجلات من قاعدة بيانات اكسس الى الداتا قراد فيو يوجد مثال khalidalwdi 2 672 12-11-24, 12:19 PM
آخر رد: khalidalwdi
  أريد كود عند الضغط على الصورة في PictureBox تفتح في برنامج الصور في الويندوز F.H.M 6 638 25-10-24, 01:57 PM
آخر رد: F.H.M
  عند الضغط على زر Cancel يظهر لي رسالة خطأ F.H.M 11 1,108 25-10-24, 06:39 AM
آخر رد: F.H.M
  [نقاش] اريد مسااعدة انا مبتدئة ف بحر غارق?? ..N 1 351 29-09-24, 11:16 PM
آخر رد: justforit
  [سؤال] تنفيذ عدة أوامر مختلفة في خلية DGV عند الضغط بعدة أزرار Mohamd Mercy To TheWorlds 0 273 10-09-24, 08:26 AM
آخر رد: Mohamd Mercy To TheWorlds

التنقل السريع :


يقوم بقرائة الموضوع: