Makale Özeti

Bu makalemde Microsoft RDP Client Control ile kendi yazdığımız Windows uygulamalarında uzak masaüstü bağlantıları (Remote Desktop Connection) oluşturma ve bu bağlantıları yönetme hakkında bilgi vereceğim.

Makale

    Merhabalar,

    Bilindiği üzere uzak masaüstü bağlantısı oluşturma bize başka bir bilgisayara kendi bilgisayarımız üzerinden ulaşabilme imkanı verir. Kendi belirlediğimiz birtakım özellikleri önceden ayarlayarak (bağlantı esnasında diskleri paylaştırma, bağlanacağımız bilgisayara hangi ekran çözünürlüğüyle bağlanacağımız gibi) uzaktan bağlanabilme izni verilmiş bir bilgisayarda kendi bilgisayarımızdaymış gibi çalışabiliriz. Windows'un default olarak Accessories - Communications menüsü altında bulunan Remote Desktop Connection tool'u ile biraz önce bahsettiğim ayarları yapıp bağlantı oluşturmak oldukça basittir. Ancak bu tool'un sundukları ile yetinmiyorsak, kendi remote bağlantılarımızı oluşturup, bu bağlantıları saklayıp yönetebileceğimiz bir uygulama yazmak da .Net ile bize sunulan component'ler içinde bulunan Microsoft RDP Client Control  ile mümkündür. Ben bu makalemde Microsoft RDP Client Control ile kendi yazdığımız Windows uygulamalarında uzak masaüstü bağlantıları (Remote Desktop Connection) oluşturma ve bu bağlantıları yönetme hakkında bilgi vereceğim.

    İlk olarak kontrolü bir Windows uygulamasında nasıl kullanmaya başlayabileceğimizi görelim. Bir Windows uygulaması oluşturalım ve Toolbox'a sağ tıklayıp Choose Items...'a tıklayalım:



    Ardından açılan pencerede COM Components sekmesine tıklayalım ve listeden Microsoft RDP Client Control'u seçelim:



    OK'e basıp pencereyi kapadıktan sonra Toolbox'a Microsoft RDP Client Control eklenmiş olacaktır:



    Kontrolü Toolbox'dan sürükleyip formumuza bırakarak kullanmaya başlayabiliriz.

    Şimdi küçük bir uygulamada bu kontrolün belli başlı property ve metodlarını kullanarak remote bir bağlantı oluşturalım. Windows formuna toolbox'dan Microsoft RDP Client Control'u sürükleyip bırakalım ve Dock property'sini Fill olarak set edelim:



    Şimdi de formun Load'ında remote bağlantıyı açmamızı sağlayacak olan aşağıdaki kodu yazalım:

private void Form1_Load(object sender, EventArgs e)
{
    rdpc.Server = "isil";
    rdpc.UserName = "io";
    rdpc.Domain = "BILGEADAM";
    rdpc.AdvancedSettings5.ClearTextPassword = "***";
    rdpc.AdvancedSettings5.RedirectDrives = true;
    rdpc.AdvancedSettings5.RedirectPorts = false;
    rdpc.AdvancedSettings5.RedirectPrinters = true;
    rdpc.AdvancedSettings5.RedirectSmartCards = false;
    rdpc.DesktopHeight = 950;
    rdpc.DesktopWidth = 1580;
   

   

    rdpc.Connect();     
}

    Uygulamayı çalıştırdığımızda remote bağlantımız oluşturulacaktır:



    Kodda kontrolün bağlanacağı makinanın adı, kullanıcı adı, şifre, domain bilgisi gibi temel bilgileri set ettik. Ardından da remote bilgisayara bağlanıldığında disk sürücüsü, port, printer ve smart card gibi bileşenlerden erişebilmek istediklerimizi set ettik. Kontrolün görüntüleyeceği makinanın masaüstü genişlik ve yükseklik ayarlarını da set ettikten sonra Connect metodu ile bağlanmasını sağladık.

    Bu örnekten sonra şimdi de uygulamamıza yeni bir form ekleyelim ve form üstündeki butona tıkladığımızda açılan formdaki alanları doldurarak remote bağlantı açalım. Eklediğimiz formu aşağıdaki gibi dizayn edelim:



    Form üstündeki Yeni Bağlantı butonuna tıkladığımızda da açılacak olan ekranı aşağıdaki gibi tasarlayalım:



    Ardından ana formdaki butona tıkladığımızda çalışacak olan kodu yazalım:
 
public string makinaAdi = "";
public
string kullaniciAdi = "";
public
string domainAdi = "";
public
string sifre = "";

private
void btnYeniBaglanti_Click(object sender, EventArgs e)
{
    frmYeniBaglanti
insFrmYeniBaglanti = new frmYeniBaglanti();
    insFrmYeniBaglanti.Owner = this;
    insFrmYeniBaglanti.ShowDialog();
    axMsRdpClient41.Server = makinaAdi;
    axMsRdpClient41.UserName = kullaniciAdi;
    axMsRdpClient41.Domain = domainAdi;
    axMsRdpClient41.AdvancedSettings5.ClearTextPassword = sifre;
    axMsRdpClient41.Connect();   
}

    Ardından da Yeni Bağlantı formundaki Bağlan butonuna bastığımızda çalışacak olan kodu yazalım:

private void btnBaglan_Click(object sender, EventArgs e)
{
    ((frmBaglan)this.Owner).makinaAdi = txtMakinaAdi.Text;
    ((frmBaglan)this.Owner).kullaniciAdi = txtKullaniciAdi.Text;
    ((frmBaglan)this.Owner).domainAdi = txtDomainAdi.Text;
    ((frmBaglan)this.Owner).sifre = txtSifre.Text;
    this
.Close();
}

    Yazdığımız bu kod bloklarında ilk olarak Yeni Bağlantı formunun bir instance'ını aldık ve Owner property'sine ana formu atadık. Ardından ShowDialog ile bağlantı özelliklerini gireceğimiz formu açtık ve ana formda class level tanımladığımız değişkenleri RDP Client Control nesnesinin ilgili property'lerine atadık. Yeni bağlantı formunda bulunan Bağlan butonunun click event'inde ise ana formumuzda tanımladığımız class level değişkenlere form üstündeki kontrollerin değerlerini atadık.

    Artık kodu derleyip çalıştırdığımızda ve ilgili alanları doldurduğumuzda remote bağlantı oluşturabiliriz. Siz de sürekli remote bağlantılarla çalışıyorsanız yaptığımız örneği daha da genişleterek sık kullandığınız remote bağlantıları tuttuğunuz, yeni bağlantı oluşturup kaydettiğiniz veya sildiğiniz bir uygulama yazabilirsiniz.

    RDP Client Control kullanarak benim yazmış olduğun bir uzak masaüstü bağlantı yönetme uygulamasına ve kodlarına www.isilorhanel.net/palantir adresinden ulaşabilirsiniz.

    Makalemin faydalı olması dileğiyle.

    Işıl Orhanel

 

 



 

Örnek kodları buradan indirebilirsiniz.