C# comport ile ilgili yardım

hkn_blt

Üye
Katılım
31 Ağu 2009
Mesajlar
1,163
Puanları
31
Merhabalar aşağıdaki kod ile combobox'da bağlı olan comportu ekliyorum.
Kod:
foreach (string s in System.IO.Ports.SerialPort.GetPortNames()) //Bağlı olan comportları combobox'da listleler.
            {
                comboBox1.Items.Add(s);

            }

Sormak istediğim comport takılı olunca combobox'a eklemeyi yapıyor fakat comporttan bağlı cihazı çıkarınca halen combobox'da comport görünüyor. Usb girişine bağlantı yapınca comportu eklesin bağlantı kopunca ekli comportu silsin istiyorum bunu nasıl yapabilirim.
 
Hkn_blt Merhabalar;
Yaptığınız comport sorgusunu bir timer tick içinde yapın timeri formload da enable edin atıyorum time interval 1000 girdiğinizde her bir saniyede bağlantıyı kontrol eder yoksa combobox item silin böylelikle combobox ta görünmez.

Kolay Gelsin
 
Kodu timer içerisine yazdığımda combobxa sürekli aynı portu ekliyip duruyor.
 
Kodu timer içerisine yazdığımda combobxa sürekli aynı portu ekliyip duruyor.
Timer de tick de combo box item sayısını ve item name alın daha sonra port numaralarını ve sayısını sorgulayın sonra if sorgusuna sokun farklı bir port gelirse veya mevcut port kapanır ise son duruma göre combo box eklersiniz.
 
İşte sorun kapanan portu nasıl algılcam :) söyleyince kolayoluyor fakat koda dökemiyorum. Algoritmasını oluşturuyorum fakat koda nasul dökeceğim :) porta birşey takıldı ise oku ve comboboxa yaz porttan birşey çıkartıldı ise çıkanı comboboxda ekli ise sil ama kod olarak nasıl yazıcaz :)
 
Hkn Blt Merhabalar;
Timer tickine bu kodu yaz ve timer formload da enable yap ,ve timer intervali 1000 ms yaparsanız çalışır.
,kodu bu sırayla yazın clear başta olmak zorunda
comboBox1.Items.Clear();
foreach (string portlar in System.IO.Ports.SerialPort.GetPortNames())
{
comboBox1.Items.Add(portlar);
}

Kolay Gelsin
 
Merhaba,
C# kodlarını bilmiyorum ama serial portu kapattığınız evantta Combox1.text=" "
yazarsanız(VB.Net bildiğim için öyle yazdım)serial port kapanınca combobox temizlenir.
 
Bu kod blogu ile işimi hallettim
C#:
 try
            {
                ManagementObjectSearcher searcher =
                    new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_PnPEntity");

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    if (queryObj["Caption"].ToString().Contains("(COM"))
                    {
                        comboBox1.Items.Add(queryObj["Name"]);
                        comboBox1.SelectedIndex=0;
                        textBox1.Text = Convert.ToString(comboBox1.SelectedItem);
                        textBox2.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 3);
                    }

                }
            }
            catch (ManagementException )
            {
                MessageBox.Show("hata1");
            }
 

Forum istatistikleri

Konular
129,835
Mesajlar
930,600
Kullanıcılar
452,662
Son üye
Yılmaz Çetiner

Yeni konular

Çevrimiçi üyeler

Geri
Üst