منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ارجو مساعدتي بالاجابة عن سؤال
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
[attachment=1860]
السلام عليكم اخوتي
ارجو المساعدة
لدي طابعتين على كومبيوتري كل واحدة اطبع فيها على حدا . فعندما احتاج الطابعة الاولى اقوم
بالنقر عليها كلك ايمن واضغط set default printer كما موضح بالصورة A . وعندما احتاج الطباعة
على الطابعة الثانية افعل نفس الشيء للطابعة الثانية .
احتاج الى برنامج بسيط يتكون كما موضح من button عدد 2 كما موضح بالصورة B . فعند الضغط
على button الطابعة رقم 1 يقوم بجعل الطابعة الاولى هي الطابعة الdefault و عند الضغط
على button الطابعة رقم 2 يقوم بجعل الطابعة الثانية هي الطابعة الdefault

وجزاكم الله خيرا

http://im54.gulfup.com/myIFKB.jpg

http://im54.gulfup.com/ofrMU9.jpg
اهلا اخي Smile
جرب هذا الكود , و ضع بدل كلمة Printer اسم الطابعة
كود :
Shell("RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n ""printer""")
مثلا :
كود :
Shell("RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n ""HP Deskjet F2100 series""")
و للامانة فان امر الـ CMD منقول .. Wink

تحياتي :")
تفضل أخي Smile

كود :
'كود جلب أسماء كل الطابعات المثبتة على الجهاز
Public Sub LoadAllPrinters()
    For Each Name As String In Printing.PrinterSettings.InstalledPrinters
        ComboBox1.Items.Add(Name)
    Next

    Dim PrintDoc As New Printing.PrintDocument()
    ComboBox1.Text = PrintDoc.PrinterSettings.PrinterName
End Sub

'كود تعيين الطابعة الافتراضية
Public Function SetDefaultPrinter(ByVal Name As String) As Boolean
    Dim PrintDoc As New Printing.PrintDocument()
    Dim WshNetwork As Object = Nothing
    Dim OldPrinterName As String = String.Empty

    Try
        OldPrinterName = PrintDoc.PrinterSettings.PrinterName
        WshNetwork = Microsoft.VisualBasic.CreateObject("WScript.Network")
        WshNetwork.SetDefaultPrinter(Name)
        PrintDoc.PrinterSettings.PrinterName = Name

        If PrintDoc.PrinterSettings.IsValid Then
            Return True
        Else
            WshNetwork.SetDefaultPrinter(OldPrinterName)
            Return False
        End If

    Catch ex As Exception
        If WshNetwork IsNot Nothing Then
            WshNetwork.SetDefaultPrinter(OldPrinterName)
        End If

    Finally
        PrintDoc = Nothing
        WshNetwork = Nothing
    End Try

    Return False
End Function

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    LoadAllPrinters()
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    If SetDefaultPrinter(ComboBox1.Text) Then
        MessageBox.Show(String.Format("الطابعة ""{0}"" أصبحت هي الطابعة الافتراضية", ComboBox1.Text),
                        "الطابعة", MessageBoxButtons.OK, MessageBoxIcon.Information,
                        MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading)
    End If
End Sub

المرجع: Setting Windows default printer