EMRAH ÜSTÜN

internet güzel bir şeydir

VC++ ile Matris oluşturalım

KötüFena değilİyi (oy yok)
Loading ... Loading ...

.NET’te şöyle kolay bir şekilde herhangi “birşey” matrisi oluşturabiliriz. “birşey” diyorum çünkü VC++’da herşey nesne olduğu için, nesne matrisi oluşturmayı öğrendiğimizde istediğimiz şeyin matrisini oluşturabiliriz. (int matrisi, String matrisi, yada 100 tane imge bulunduran 10×10 luk imgeler matrisi, düğmeler matrisi, … gibi)

Kullanacağımız eleman dizi (Array) elemanı. Mantık olarak da dizi barındıran dizi oluşturduğumuzda matris oluşturmuş oluyoruz. Hatta dizi barındıran diziyi barındıran dizi oluşturursak 3 boyutlu matris olmuş olur mesela :mrgreen:

1 boyutlu String dizisi oluşturalım önce;
array <String^>^ Dizi=gcnew array<String^> (10);

String nesnesi barındıran Array nesnesi oluşturuyoruz böylece. Dizi[0]="abcdefg"; şeklinde de erişebiliyoruz.

Bu oluşturduğumuz diziyi başka bir dizi içinde 10 tane oluşturalım;

array <array <String^>^>^ Mat=gcnew array <array <String^>^>(10);
Şimdi de alt dizilerin içine 20şer tane yeni String dizisi dolduralım, 10*20 lik String matrisi elde etmiş olalım;
Devamını oku »

C# ile klayve kısayol (global hotkey) takibi

KötüFena değilİyi (oy yok)
Loading ... Loading ...

Bu işi yapan bir C# sınıfı buldum, şöyle paylaşayım;

globalKeyboardHook.cs

Kullanımı çok basit;

  • Projeye ekleyin
  • using Utilities; ekleyin
  • globalKeyboardHook gkh = new globalKeyboardHook(); nesneyi oluşturun
  • Takip edilecek tuşu ekleyin: gkh.HookedKeys.Add(Keys.Enter);
  • Tuşa basılma ve çekilme olaylarını bağlayın:
    • gkh.KeyDown += new KeyEventHandler(gkh_KeyDown);
    • gkh.KeyUp += new KeyEventHandler(gkh_KeyUp);
  • Olay fonksiyonu içinden e.KeyCode ile basılan tuşu okuyun.

C# ile bir .exe’nin 1′den fazla açılmasını engellemek

KötüFena değilİyi (oy yok)
Loading ... Loading ...

Hazırladığımız projenin exe’sinden sadece 1 tane çalışmasını şöyle sağlayabiliriz;

Project1.exe’den bahsediyor olalım;

Program.cs’deki main’imizi şöyle düzenleyebiliriz;
Devamını oku »

C# ile US Robotics modemi bilgisayar üzerinden yeniden başlatma (restart)

KötüFena değilİyi (oy yok)
Loading ... Loading ...

Bilgisayarım evde sürekli açıktır ve dışarıdan erişirim. Bazen TTNet’teki bazı problemlerden dolayı bağlantı kopuyor. Modemi kapatıp açmak gerekiyor. Evde olmadığım zaman otomatik olarak modeme restart atacak bir program yazdım. Hem bana hem size yarasın.

Ayrıca modem menüsünden falan uğraşmamak için de iyi bir yol, direk exe’yi çalıştır modemi yeniden başlatsın.

US Robotics modemin arayüzünü inceleyip hangi adrese ne POST etmemiz gerektiğini buldum.

Ve de şuradan aldığım HTTP POST fonksiyonunu biraz düzenledim.

Sonuç olarak modemi yeniden başlatan C# kodu şu şekildedir;

Devamını oku »

C# ile Byte[] array ve String dönüşümleri

KötüFena değilİyi (oy yok)
Loading ... Loading ...

Soket işlemlerinde String komut gönderme ve alma vb… için şu iki fonksiyon kullanılabilir;

private byte[] StringToByte(string Komut)
{
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
return encoding.GetBytes(Komut);
}

private String ByteToString(byte[] Veri)
{
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
return enc.GetString(Veri);
}

C# ile en basit Multithreading yöntemi

KötüFena değilİyi (oy yok)
Loading ... Loading ...

Multithreading nedir: Bir kod akarken arka planda başka bir kod parçacığını çalıştırmaktır. Yani programa aynı anda birçok iş yaptırmaktır.

Örneğin: Program bir yandan 1 milyon tane sayıyı çarpsın, aynı anda bir dosya kopyalasın, bunları yaparken de kullanıcı beklemesin, program arayüzü kitlenmesin, bir ilerleme çubuğu durumu göstersin… gibi gibi. İşte bunlar Thread oluşturularak yapılıyor.

Visual çalışıyorsak, toolbox’taki BackGroundWorker ile bu işi yapabiliriz. Ama ben en basit yöntem diyorum ki, şöyledir;

using System.Threading ekleyelim

private void bişey()
{
ThreadStart ArkaİşBaşlatıcı=new ThreadStart(ArkaPlandaÇalışacakOlanFonksiyon);
Thread Arkaİş=new Thread(ArkaİşBaşlatıcı);
Arkaİş.Başlat();
}
private void ArkaPlandaÇalışacakOlanFonksiyon()
{
//işler burada
}

———————-

Alternatif olarak, işin bittiğini de event fırlatarak şöyle yakalayabiliriz;  (Event ile ilgili ayrıntılı bilgi şurada var.)

Devamını oku »

Access veritabanına SQL ile tarih sorguları yaptırmak

KötüFena değilİyi (1 oy,3 üzerinden ortalama:3,00)
Loading ... Loading ...

ADOX ve OLE DB ile .NET üzerinden Access veritabanına SQL sorguları uygulatabiliyoruz.

Bakalım tarih sorgularını nasıl yapabiliyormuşuz;

Devamını oku »

C# uygulaması: Threat ve Timer ile sayaç

KötüFena değilİyi (oy yok)
Loading ... Loading ...

Karmaşık birkaç işi iç içe bulunduran bir kronometre örneği hazırladım;

  • Form1 üzerinden Thread ile Form2 oluşturuyoruz.
  • Form1′deki başlat düğmesi ile Form2′nin bir metoduna erişiyoruz.
  • Form2′nin başlat metodu Timer başlatıp 100 milisaniyede bir sayacı artırıyor.
  • Thread içinde olduğumuz için sayaç değerini güncelleme işini Invoke ile yapıyoruz.
  • Ve Form1′in durdur düğmesiyle Form2′deki Timer’ı durduruyoruz. (Tekrar başlatınca kaldığı yerden devam ediyor)

c# thread

Devamını oku »

C# ile başka bir programı çalıştırmak

KötüFena değilİyi (oy yok)
Loading ... Loading ...

Kendi exe’mizden başka bir exe’yi çalıştırabiliriz.

Bunun için;

System.Diagnostics.Process.Start(@"C:\Program Files\Notepad++\notepad++.exe");

komutu yeterlidir.

Ya da notepad ile bir dosyayı açmak istiyorsak;

System.Diagnostics.Process.Start(@"C:\Program Files\Notepad++\notepad++.exe", @"D:\yedek\yazi.txt");

şeklinde açtığımız exe’ye parametre gönderebiliriz.

C#’ta Event (Olay) üretip yakalamak

KötüFena değilİyi (oy yok)
Loading ... Loading ...

Event’lerin ne olduğu bilindiğini varsayarak;

Event’leri işletim sistemi tetikler. Bir Namespace içinde farklı sınıflar arasında Event yakalamak için direk Namespace içinde bir delegate EventHandlar tanımlıyoruz.

namespace Bilmemne
{
delegate void İşlemTamamlandıEventHandler();
}

Daha sonra sınıf içinde bu Handler tipinden bir Event tanımlıyoruz;
Devamını oku »