Coder

26 Şubat 2013

Mac adresini öğrenme

C# veya VB.net projelerimizden kullanmak için bilgisayarınızın mac adresini öğrenmek isteyebiliriz. Örneğin lisanslama, tekil kullanım vs. ihtiyaçlar için mac adresi ile işlemler yapmak isteyebiliriz. Hikayeyi fazla uzatmadan bilgisayarın mac adresini nasıl öğreniriz, basit bir uygulama ile öğrenelim.

mac-adres-ogrenme

Resimdeki gibi form ekranına bir buton ekleyip kod kısmına geçebiliriz. Mac adresini bulabilmek için Management nesnesine ihtiyacımız olacak. Projemize eklemek için projeye sağ tuş tıklayıp Add Referance e tıklayıp System.Management resimdeki gibi ekleyin.

mac-adresi-system-managament

Referansı ekledikten sonra kod kısmında using System.Management; ekleyin. Bunları yaptıktan sonra bilgisayarın mac adresini mesaj olarak alabilmek için butonun clik olayına tıklayarak kod kısmında devam edebiliriz.

C#

[cc lang='csharp' line_numbers='false']

private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(MAC());
}

private string MAC()
{
ManagementClass manager = new ManagementClass(“Win32_NetworkAdapterConfiguration”);
foreach (ManagementObject obj in manager.GetInstances())
{
if ((bool)obj["IPEnabled"])
{
return obj["MacAddress"].ToString();
}
}
return String.Empty;
}

[/cc]

Mac adresini gösterebilmek MessageBox içerisine MAC metodundan dönen sonucu gösterdik. İşlem bu kadar.

VB.net

[cc lang='vbnet' line_numbers='false']
Private Sub button1_Click(sender As Object, e As EventArgs)
MessageBox.Show(MAC())
End Sub

Private Function MAC() As String
Dim manager As New ManagementClass(“Win32_NetworkAdapterConfiguration”)
For Each obj As ManagementObject In manager.GetInstances()
If CBool(obj(“IPEnabled”)) Then
Return obj(“MacAddress”).ToString()
End If
Next
Return [String].Empty
End Function
[/cc]

[wpdm_file id=4]

Yapılan uygulamayı yukarıdaki buton yardımıyla indirebilirsiniz.

17 Şubat 2013

Listviewdeki veriyi excel e aktarma

Database veya herhangi bir veri kaynağından listview e aktardığınız verileri Listview den Excel’e veri aktarıp Excel dosyasında kayıt edebilirsiniz. Daha çok raporlama projelerinde Excel ile ilişkilendirerek kullanabileceğiniz bu uygulamayı nasıl yaparız basit bir örnek ile öğrenelim.

listview-excel-aktar

Resimdeki gibi boş bir forma listview kontrolü ve bir buton ekleyerek kod tarafına geçebiliriz. Buradaki örnekte listview i daha önceden bir şekilde doldurmuştum, konumuz aktarım olduğu için listview veri girilmesi gibi konulara girip de kod kısmını karıştırmamak istiyorum. Burada amacımız listviewdeki veriyi Excel dosyasına aktarmak.

csharp-excel-veri-aktarimi

Kod kısmına geçmeden projeye Microsoft Excel 15 Object Library referans olarak eklemeniz gerekir. Bunu Referance Manager içindeki COM kütüphanesi içinde bulabilirsiniz. Bu referansı eklemeden Excel dosyası oluşturma kodları hata verir. Ayrıca using Microsoft.Office.Interop.Excel; de kod tarafında using tarafında eklemeniz gerekir.

Gerekli ayarlamaları yaptıktan sonra kodlamaya artık geçebiliriz.

[cc lang='csharp' line_numbers='false']

private void btnExcel_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
app.Visible = true;
Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Add(1);
Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1];
//Kolon başlıkları sabit olduğu için listviewdeki veri aktarılmadan önce sabit verileri excel e giriyoruz.
object hucre;
Range rr;
string str;

hucre = ws.Cells[1, 1];
rr = ws.get_Range(hucre, hucre);
str = “İD”;
rr.Value2 = str;
rr.Font.Bold = true;
rr.Font.Size = 12;

hucre = ws.Cells[1, 2];
rr = ws.get_Range(hucre, hucre);
str = “Adı”;
rr.Value2 = str;
rr.Font.Bold = true;
rr.Font.Size = 12;

hucre = ws.Cells[1, 3];
rr = ws.get_Range(hucre, hucre);
str = “Soyadı”;
rr.Value2 = str;
rr.Font.Bold = true;
rr.Font.Size = 12;
//toplam üç kolon girdik. Stilini değiştirdik.

int dikey = 2;
int yatay = 2;
foreach (ListViewItem lvi in listView1.Items)
{

dikey = 1;
foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems)
{
ws.Cells[yatay, dikey] = lvs.Text;
dikey++;
//Excel kolon genişliğini buradan aayarlıyoruz.
ws.Columns.ColumnWidth = 12;
}
yatay++;
}
}

[/cc]

Gerekli kod açıklamaları kod içinde mevcut. Fakat birkaç şey söylemeden yazımı sonlandırmak istemiyorum. Burada kod içinde Excel dosyasını oluşturduktan sonra ilk önce kolon başlıklarını girmemiz gerekiyor. Bunları girmezsek kolon başlıkları haliyle excel e aktarılmaz. Foreach döngülerini kullanarak Excel dosyamıza yazdırdık.

ws.Columns.ColumnWidth döngü içine eklememizin sebebi, normalde Excel’in standart kolon genişliğine göre yazdıracak kolon içindeki uzun veriler Excel içinde genişletmeden gözükmeyecektir. Yada ws.Columns.AutoFit(); ile kolon içindeki verinin genişliğine göre otomatik Excel kolonunu genişletebilirsiniz.

Yaptığımız örneğin kodlarını buradan indirebilirsiniz.
[wpdm_file id=3]

Powered by WordPress