Çözüldü Bilgisayara yazıcı bağlı olup olmadığı nasıl kontrol edilir?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

bbb1

Decapat
Katılım
15 Ocak 2022
Mesajlar
823
Çözümler
21
C# nesne yönelimli bir program yapıyorum istediğim şey şu, program bilgisayara yazıcı bağlı olup olmadığına bakacak buna göre Label'ın Text'ini değiştirecek.
 
Çözüm
İngilizce bir kaynak, bu makale ile yazıcının bağlı olup olmadığını C# ile çekebilirsiniz.


WMI kullanmanız gerekiyor.
Kod:
using System;
using System.Drawing.Printing;

class PrinterCheck {
    static void Main(string[] args) {
        // Bilgisayara bağlı olan yazıcıları listele
        foreach (string printer in PrinterSettings.InstalledPrinters) {
            Console.WriteLine(printer);
        }
      
        // Belirli bir yazıcıya erişmek isterseniz, yazıcı adını kullanabilirsiniz
        // PrinterSettings printerSettings = new PrinterSettings();
        // printerSettings.PrinterName = "yazıcı adı";
      
        // Varsayılan yazıcı ayarlarını kullanarak bir yazıcı oluşturun
        PrinterSettings printerSettings = new PrinterSettings();
      
        // Yazıcı bağlı mı kontrol edin
        if (printerSettings.IsValid) {
            Console.WriteLine("Yazıcı bağlı.");
        } else {
            Console.WriteLine("Yazıcı bağlı değil.");
        }
    }
}






using System.Windows.Forms;

class Form1 : Form {
    Label label1;
    TextBox textBox1;
  
    public Form1() {
        // Label kontrolü oluştur
        label1 = new Label();
        label1.Text = "Label metni";
        label1.Location = new System.Drawing.Point(50, 50);
        label1.AutoSize = true;
      
        // TextBox kontrolü oluştur
        textBox1 = new TextBox();
        textBox1.Location = new System.Drawing.Point(50, 80);
      
        // Form'a kontrolü ekle
        Controls.Add(label1);
        Controls.Add(textBox1);
    }
}

Chat Cptden örnektir. Ben pek anlamıyorum doğrumu yanlış mı şansımı denedim.
Adsız.png

Bu hatayı veriyor ve ben Form uygulaması için istiyorum bu konsol için.
 
System.Management kullarak yapabilirsin. Örnek;
Kod:
using System;

using System.Management;

namespace zedilabs.com

{

 class PrinterOffline

 {

  [STAThread]

  static void Main(string[] args)

  {

   // Set management scope

   ManagementScope scope = new ManagementScope(@"\root\cimv2");

   scope.Connect();



   // Select Printers from WMI Object Collections

   ManagementObjectSearcher searcher = new

    ManagementObjectSearcher("SELECT * FROM Win32_Printer");



   string printerName = "";

   foreach (ManagementObject printer in searcher.Get())

   {

    printerName = printer["Name"].ToString().ToLower();

    if (printerName.Equals(@"hp deskjet 930c"))

    {

     Console.WriteLine("Printer = " + printer["Name"]);

     if (printer["WorkOffline"].ToString().ToLower().Equals("true"))

     {

      // printer is offline by user

      Console.WriteLine("Your Plug-N-Play printer is not connected.");

     }

     else

     {

      // printer is not offline

       Console.WriteLine("Your Plug-N-Play printer is connected.");

     }

    }

   }

  }

 }

}
 
Bu kaynak işinize yarayabilir mi?

Maalesef işime yaramadı.

System.Management kullarak yapabilirsin. Örnek;
Kod:
using System;

using System.Management;

namespace zedilabs.com

{

 class PrinterOffline

 {

  [STAThread]

  static void Main(string[] args)

  {

   // Set management scope

   ManagementScope scope = new ManagementScope(@"\root\cimv2");

   scope.Connect();



   // Select Printers from WMI Object Collections

   ManagementObjectSearcher searcher = new

    ManagementObjectSearcher("SELECT * FROM Win32_Printer");



   string printerName = "";

   foreach (ManagementObject printer in searcher.Get())

   {

    printerName = printer["Name"].ToString().ToLower();

    if (printerName.Equals(@"hp deskjet 930c"))

    {

     Console.WriteLine("Printer = " + printer["Name"]);

     if (printer["WorkOffline"].ToString().ToLower().Equals("true"))

     {

      // printer is offline by user

      Console.WriteLine("Your Plug-N-Play printer is not connected.");

     }

     else

     {

      // printer is not offline

       Console.WriteLine("Your Plug-N-Play printer is connected.");

     }

    }

   }

  }

 }

}
İlk bu hatayı verdi
Adsız.png


3 tane küme parantezi koydum ve bu hatayı verdi
2.png
 
@Eray T hocamızın yeni hazırladığı rehberi kullanarak, C# üzerinden CMD'ye komut göndererek sorununuzu çözebilirsiniz. İnternette CMD'den printer sorgulamayı gösteren birçok kaynak mevcut.

 
@Eray T hocamızın yeni hazırladığı rehberi kullanarak, C# üzerinden CMD'ye komut göndererek sorununuzu çözebilirsiniz. İnternette CMD'den printer sorgulamayı gösteren birçok kaynak mevcut.

Yazıcıyı hangi komut ile sorgulayacağım kaynakta bulamadım.
 

Yeni konular

Geri
Yukarı