ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 3252|ตอบกลับ: 0

[VB6] แสดงรายชื่อเครื่องพิมพ์ทั้งหมด และเลือกกำหนดให้เป็น Default Printer

[คัดลอกลิงก์]

311

กระทู้

502

โพสต์

6050

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
6050




บทความตอนนี้ก็จะเป็นการแสดงรายชื่อเครื่องพิมพ์ที่ต่ออยู่ในเครื่องคอมฯออกมาทั้งหมด จากนั้นก็ทำการเลือกให้ตัวใดตัวหนึ่งเป็น Default Printer ซึ่งจะต้องใช้ Win32 API (Application Programming Interface) เข้าช่วย โดยประโยชน์อย่างอื่นก็สามารถนำไปใช้กำหนดการส่งออกไปพิมพ์ยังเครื่องพิมพ์ที่เราระบุ เช่น ระบบร้านอาหาร กำหนดให้เอกสารนี้ส่งไปครัว งานนี้ส่งออกไปเครื่องแคชเชียร์ หรือภายในสำนักงานที่มีเครื่องพิมพ์อยู่เป็นจำนวนมาก ก็นำไปประยุกต์ใช้งานเอาตามที่สะดวกกันน่ะครับ ...


มาดูโค้ดกันเถอะ ...
  1. ' / --------------------------------------------------------------------------
  2. ' / Developer : Mr.Surapon Yodsanga (Thongkorn Tubtimkrob)
  3. ' / eMail : thongkorn@hotmail.com
  4. ' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
  5. ' / Facebook: https://www.facebook.com/g2gnet (For Thailand)
  6. ' / Facebook: https://www.facebook.com/commonindy (Worldwide)
  7. ' / MORE: http://www.g2gnet.com/webboard
  8. ' /
  9. ' / Purpose: get all printers and set default printer.
  10. ' / Microsoft Visual Basic 6.0 (SP6)
  11. ' /
  12. ' / This is open source code under @CopyLeft by Thongkorn/Common Tubtimkrob.
  13. ' / You can modify and/or distribute without to inform the developer.
  14. ' / --------------------------------------------------------------------------

  15. Option Explicit

  16. Private Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" ( _
  17.     ByVal lpszSection As String, _
  18.     ByVal lpszKeyName As String, _
  19.     ByVal lpszString As String _
  20.     ) As Long
  21. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
  22.     ByVal hwnd As Long, _
  23.     ByVal wMsg As Long, _
  24.     ByVal wParam As Long, _
  25.     lParam As Any _
  26.     ) As Long
  27. Private Const HWND_BROADCAST = &HFFFF&
  28. Private Const WM_WININICHANGE = &H1A

  29. Private Sub Form_Load()
  30.     '// list all printers.
  31.     Call ListPrinters(lstPrinters)
  32. End Sub

  33. Private Sub cmdSetDefault_Click()
  34.     Dim DeviceName As String
  35.     DeviceName = lstPrinters.List(lstPrinters.ListIndex)
  36.     If Trim(DeviceName) <> "" Then
  37.         '// Set Default Printer
  38.         Call SetPrinter(DeviceName)
  39.         MsgBox DeviceName & " has finish to be set as the default printer.", vbOKOnly + vbInformation, "Report Status"
  40.     End If
  41. End Sub

  42. '// Set Default Printer
  43. Private Sub SetPrinter(PrnName As String)
  44.     Dim x As Long, sztemp As String
  45.     Dim prn As VB.Printer
  46.     If Printers.Count > 0 Then
  47.         For Each prn In VB.Printers
  48.             If prn.DeviceName = PrnName Then
  49.                 '// Set Default Printer with API
  50.                 sztemp = prn.DeviceName & "," & prn.DriverName & "," & prn.Port
  51.                 x = WriteProfileString("windows", "device", sztemp)
  52.                 x = SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0&, "windows")
  53.                 Exit For
  54.             End If
  55.         Next prn
  56.     End If
  57. End Sub

  58. '// List all Printers
  59. Private Sub ListPrinters(ListControl As Object)
  60.     On Error GoTo ErrHandler:
  61.     Dim l As Integer
  62.     Dim lCount As Integer
  63.     ListControl.Clear
  64.    
  65.     lCount = Printers.Count
  66.    
  67.     If lCount = 0 Then
  68.         ListControl.AddItem "(No Printer Installed)"
  69.     Else
  70.         For l = 0 To lCount - 1
  71.             ListControl.AddItem Printers(l).DeviceName
  72.         Next
  73.     End If
  74.     Exit Sub
  75.    
  76. ErrHandler:
  77.     MsgBox "Error: " & Err.Number & vbCrLf & Err.Description
  78.     Exit Sub
  79. End Sub
คัดลอกไปที่คลิปบอร์ด


ดาวน์โหลดโค้ดต้นฉบับ VB6 ได้ที่นี่ ...




ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-4-25 14:45 , Processed in 0.296475 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้