اخواني الكرام
اريد معرفة حالة الطابعه الافتراضيه اذا كانت متصله بالجهاز او انها غير متصله
او هل هي تعمل ام معطله
وذلك قبل البدء بعملية الطباعه
وشكرا لكم
اخواني الكرام
اريد معرفة حالة الطابعه الافتراضيه اذا كانت متصله بالجهاز او انها غير متصله
او هل هي تعمل ام معطله
وذلك قبل البدء بعملية الطباعه
وشكرا لكم
لايأس مع الحياة ولاحياة مع اليأس
السلام عليكم ورحمه الله وبركاته
اخي جرب الدالة التالية لمعرفة حالة الطابعة
Private Function CheckPrinter(ByVal printerName As String) As Boolean
Try
Dim printDocument As PrintDocument = New PrintDocument
printDocument.PrinterSettings.PrinterName = printerName
Return printDocument.PrinterSettings.IsValid
Catch ex As System.Exception
Return False
End Try
End Function.:: Wish to become better and better ::.
وعليكم السلام ورحمه الله وبركاته
الف شكر ومحبه وتقدير لك يا اخي VB Helper
لايأس مع الحياة ولاحياة مع اليأس
اخي VB Helper
بعد تجربة المثال وجدت انه فقط يتأكد من وجود اسم الطابعه ضمن مجموعة الطابعات على الجهاز ولا يكشف عن حالة الطابعه وبعد البحث وجدت هذا المثال وهو فعلا يعطيك حالة الطابعه بشكل دقيق
وللفائده احببت ان اضعه هنا
اولا اذهب الى Project ثم Add Reference ومن خلال تبويب .NET اضف System.Management الى تطبيقك
ثانيا ضع هذا الكود في موديول او بداخل كلاس الفورم
Private Sub checkprinter(ByVal myprinter As String)
Dim searcher As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_Printer")
For Each printer As System.Management.ManagementObject In searcher.[Get]()
If myprinter = printer("Name") Then
If printer("WorkOffline").ToString().ToLower().Equals("true") Then
MsgBox("printer : " + printer("Name") + " is not connected.")
Else
MsgBox("printer : " + printer("Name") + " is connected.")
End If
End If
Next
End Subولتجربته ضع زر وهذا هو الحدث
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
checkprinter("HP LaserJet 1018")
End Subورمضان كريم وكل عام وانتم بخير
لايأس مع الحياة ولاحياة مع اليأس
السلام عليكم ورحمه الله وبركاته
اخي لقد مر علي هذا المثال وهو باستخدام الـ MQL, اما مثالي السابق يقوم بنفس الوظيفة, قم بتمرير اسم الطابعة ويرجع لك قيمة منطقية True/False
.:: Wish to become better and better ::.
حسنا سوف احاول مرة اخرى
اثناء بحثي وجدت مثال اروع واجمل من السابق ولا يحتاج الى اضافة اي مرجع الى تطبيقك ومختصر جدا
Function IsPrnOffLine(ByVal myprn As String) As Boolean
IsPrnOffLine = GetObject("winmgmts:\\.\root\CIMV2").Get("Win32_Printer='" & myprn & "'").WorkOffline
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If IsPrnOffLine("HP LaserJet 1018") Then
MsgBox("الطابعه خارج الخدمه")
Else
MsgBox("الطابعه تعمل بشكل سليم")
End If
End Subتحياتي
تم تعديل هذه المشاركة بواسطة الشرق الاوسط في 12 أغسطس 2011 في 17:43
لايأس مع الحياة ولاحياة مع اليأس