الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن معرفة حالة الطابعه

بدأه الشرق الاوسط في 12 أغسطس 2011 · 5 رد · 533 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الكرام

اريد معرفة حالة الطابعه الافتراضيه اذا كانت متصله بالجهاز او انها غير متصله

او هل هي تعمل ام معطله

وذلك قبل البدء بعملية الطباعه

وشكرا لكم

لايأس مع الحياة ولاحياة مع اليأس

#2

السلام عليكم ورحمه الله وبركاته

اخي جرب الدالة التالية لمعرفة حالة الطابعة

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 ::.

#3

وعليكم السلام ورحمه الله وبركاته

الف شكر ومحبه وتقدير لك يا اخي VB Helper

لايأس مع الحياة ولاحياة مع اليأس

#4

اخي 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

ورمضان كريم وكل عام وانتم بخير

لايأس مع الحياة ولاحياة مع اليأس

#5

السلام عليكم ورحمه الله وبركاته

اخي لقد مر علي هذا المثال وهو باستخدام الـ MQL, اما مثالي السابق يقوم بنفس الوظيفة, قم بتمرير اسم الطابعة ويرجع لك قيمة منطقية True/False

.:: Wish to become better and better ::.

#6

حسنا سوف احاول مرة اخرى

اثناء بحثي وجدت مثال اروع واجمل من السابق ولا يحتاج الى اضافة اي مرجع الى تطبيقك ومختصر جدا

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

لايأس مع الحياة ولاحياة مع اليأس

مواضيع مشابهة