TMsRdpClient2 Hakkında (RDP Bağlantısı)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

TMsRdpClient2 Hakkında (RDP Bağlantısı)

Mesaj gönderen G.Arkas »

Merhabalar;

Daha önce Delphi içerisinden RDP bağlantısı kullanan oldu mu? Ben TMsRdpClient2 kullanarak bağlantı sağlamaya çalışıyorum ancak bir türlü gerçekleştiremedim. Hiçbir hata yada log dönmüyor.

Aşağıda ki ekran geliyor "Bağlan" diyorum ve öylece kalıyor. Tüm ayarlar doğru. Kullanıcı adı ve domain bilgileri herşey doğru. Ama bağlantı yok!

http://s1.postimg.org/n6981p5sf/main.png

Daha önce tecrübe etmiş arkadaşlarım varsa inşallah yardımcı olabilirler.

İyi çalışmalar...

Kod: Tümünü seç

rdp1.Server := Edit1.Text; 
rdp1.UserName := Edit2.Text;
rdp1.AdvancedSettings2.ClearTextPassword := Edit3.Text; 
//rdp1.DesktopHeight := 600;
//rdp1.DesktopWidth := 800; 
rdp1.Domain :='EMIN.LOCAL';
rdp1.Connect();
Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: TMsRdpClient2 Hakkında (RDP Bağlantısı)

Mesaj gönderen mrmarman »

Merhaba.

Unututuğunuz tek şey aşağıdaki kısım yani ekranda göstermek için hedef göstermemişsiniz.

Kod: Tümünü seç

  rdp1.Parent   := Self; // bizim formun üzerinde pencere açar...
  rdp1.Left     := 10; // Form üzerindeki yerimiz..
  rdp1.Top      := 10;
  rdp1.Width    := 400;// Form üzerindeki boyutumuz..
  rdp1.Height   := 400;
  rdp1.DesktopHeight := 600; // Server Pencere Büyüklüğü
  rdp1.DesktopWidth  := 800; // Bizim ekrandan büyük ise ScrollBarlar çıkar...
Resim
Resim ....Resim
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: TMsRdpClient2 Hakkında (RDP Bağlantısı)

Mesaj gönderen G.Arkas »

Merhaba Muharrem Abi;

Cevap için çok teşekkür ederim. Yalnız problem bundan kaynaklı değil sanırım çünkü bu ayarları yapmıştım. Problem sanki bağlantı esnasında sertifika sorunu gibi geliyor. Çünkü bir süre sonra ya da hemen Disconnect oluyor. Ya da başka bir ekran geliyor ve bana gösterilmediği için ben problemi göremiyorum. Denediğim makinalar WIN 8.1

Kod: Tümünü seç

rdp1.Server := Edit1.Text; //Set Remote Server
rdp1.UserName := Edit2.Text; //Set UserName
rdp1.AdvancedSettings2.ClearTextPassword := Edit3.Text; //Set Password as a Basic String
rdp1.DesktopHeight := 600; //Set Your Height
rdp1.DesktopWidth := 800; //Set Your Width
rdp1.Domain :='EMIN.LOCAL';
rdp1.Parent   := Self; // bizim formun üzerinde pencere açar...
rdp1.Left     := 10; // Form üzerindeki yerimiz..
rdp1.Top      := 10;
rdp1.Width    := 400;// Form üzerindeki boyutumuz..
rdp1.Height   := 400;
rdp1.Connect(); //Connect Client


Eğer müsaitsen ya da müsait olduğunda bu kodları kendi makinanda deneyebilir misin abi? Teşekkür ederim.
Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: TMsRdpClient2 Hakkında (RDP Bağlantısı)

Mesaj gönderen mrmarman »

Yazmadan önce denemiştim.

Eğer TLB dosyası eski ise (units klasöründe bulunduruyorsan) onu silip yeniden import etmeyi bir dene istersen. Versiyon farklılıkları bazı mesajları algılamayıp bağlantıyı sonlandırıyor olabilir.
Resim
Resim ....Resim
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: TMsRdpClient2 Hakkında (RDP Bağlantısı)

Mesaj gönderen G.Arkas »

Bugün ilk defa import ettim abi daha önce hiç kullanmamıştım. Delphi 2007 kullanıyorum. TLB dosyasını ekledim. Hangi windows sürümünde test etti acaba abicim?
Dosya ekleri
MSTSCLib_TLB.rar
(27.4 KiB) 140 kere indirildi
Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: TMsRdpClient2 Hakkında (RDP Bağlantısı)

Mesaj gönderen mrmarman »

W7 Enterprise (TRT kurumsal lisanslı) TRT domaininde VPN altından kurumdaki kendi serverime bağlandım ama 5 dakika falan denedim. Bugün İstanbul seyahatim var evde kısa kalıcam, fırsat bulursam daha uzun denerim.
Resim
Resim ....Resim
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: TMsRdpClient2 Hakkında (RDP Bağlantısı)

Mesaj gönderen G.Arkas »

Çok sağol abicim kolay gelsin. Abi bu arada Client2 demi? 9 a kadar gidiyor ben 2'de denedim. bunu?
Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: TMsRdpClient2 Hakkında (RDP Bağlantısı)

Mesaj gönderen mrmarman »

Uzunca test ettim. Sorun çıkarmadan bağlantı devam etti ve oldukça karmaşık işlerimi sorunsuz yerine getirdi. Kaynak kod aşağıdaki gibi. Başlığı okuyan / merak eden herkes deneyebilir. ( Login bilgileri farazidir :D )

- Forma iki adet Button ile bir adet TPanel koyup panelin boyutlarını Anchors yardımı ile sağa/sola/yukarı/aşağı demirleyin.
- OnConnect olayında Caption'a Bağantı sağlandı yazar,
- OnDisconnect olayında Captiona Bağlantı Kapatıldı yazar ve nesne FREE edilir.

Kod: Tümünü seç

Const
  strID           = 'RDPArman';
  strServer       = '172.30.28.49';
  strDomain       = 'TRT';
  strUser         = 'muharrem.arman';
  strPass         = 'parola';

Var
  xRDPClient : TmsRDPclient2;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if NOT Assigned( xRDPClient )
    then xRDPClient := TmsRDPclient2.Create(self);

    xRDPclient.OnConnecting   := RDPconnect;
    xRDPclient.OnDisConnected := RDPdisconnect;
    xRDPclient.AdvancedSettings.Compress         := 1;
    xRDPclient.AdvancedSettings.BitmapPeristence := 1;
    xRDPclient.Name   := strID;

    xRDPclient.Parent := Panel1;
    xRDPclient.Server := strServer;
    if strDomain <> '' then
      xRDPclient.Domain   := strDomain;
    if strUser <> '' then
      xRDPclient.UserName := strUser;
    If strPass <> '' then
      xRDPclient.AdvancedSettings2.Set_ClearTextPassword( strPass );

    xRDPclient.Left   := 20;
    xRDPclient.Top    := 40;
  //xRDPclient.Width  := 400;
  //xRDPclient.Height := 400;
    xRDPclient.DesktopWidth  := 1280;
    xRDPclient.DesktopHeight :=  800;
    xRDPclient.Align  := alClient;
    xRDPclient.Connect;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  xRDPClient.Disconnect;
end;

procedure TForm1.RDPConnect(Sender: TObject);
begin
  Caption := 'Bağlantı Sağlandı...';
end;

procedure TForm1.RDPDisConnect(ASender: TObject; discReason: Integer);
begin
  Caption := 'Bağlantı Kapatıldı...';
  xRDPClient.Free;
  xRDPClient := Nil;
end;
Resim
Resim ....Resim
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: TMsRdpClient2 Hakkında (RDP Bağlantısı)

Mesaj gönderen G.Arkas »

Merhaba Muharrem abicim.

Paylaşımın için çok teşekkür ederim. Kodları test ettim yine bağlantı sağlayamadım. Hemen bağlantı kapatılıyor. Demek ki problem domain de yada bilgisayarlarda. Ama direk bağlantı kurabiliyorum (Msts.exe) sadece Activex çalışmıyor. Senden son bir ricam olacak bana kendi kullandığın TBL'yi yollar mısın? yani sorunun bundan kaynaklı olduğunu düşünmüyorum ama arkama baktığım da denemeyi unuttuğum bir şey kalmasını istemiyorum. :idea:

Kolay gelsin

Edit// Kendi makinamdan başka şehirde ki bir bilgisayara bağlandım ve hiçbir sorun çıkmadı. Bağlandığım makina Win7 Ultimate. Bunun hakkında fikri olan varsa paylaşabilirler.
Resim
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: TMsRdpClient2 Hakkında (RDP Bağlantısı)

Mesaj gönderen vkamadan »

Merhabalar ,
bu konuda benim de bir sorunum var ,
eğer bağlanılacak makinada uzak masaüstü ayarlarında "Herhangi bir Uzak Masaüstü sürümünü çalıştıran bilgisayarlardan yapılan bağlantılara izin ver (az güvenli)" seçeneği seçilmiş ise sayın @mrmarman ın örneği çaılşıyor , fakat
"Yanlızca Uzak Masaüstü'nü Ağ Düzeyinde Kimlik Doğrulama ile çalıştıran bilgisayarlardan yapılan bağlantılara izin ver (daha güvenli)" seçilirse konuyu açan arkadaşın dediği gibi bir hata da vermeden öylece beyaz ekran bekliyor. bu ayarın tercih edildiği bilgisayarlara bağlantı için yapılması gereken ekstra ayarlar nelerdir ? ilgili ana bilgisayarda az güvenli seçeneğin seçilmesi uygun bulunmuyor.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: TMsRdpClient2 Hakkında (RDP Bağlantısı)

Mesaj gönderen vkamadan »

Merhaba Çözüme ulaştım ,

TMsRdpClient2 yerine aynı unit içinde yer alan TMsRdpClient7NotSafeForScripting sınıfını kullandım , ilave olarak ilgili sınıfın AdvancedSettings8 property 'si altında yer alan aşağıdaki tanımlamaları yaptım.

Kod: Tümünü seç

..
...
  Myrdp.AdvancedSettings8.AuthenticationLevel:=2;
  Myrdp.AdvancedSettings8.EnableCredSspSupport:=true;
  Myrdp.AdvancedSettings8.NegotiateSecurityLayer:=false;
...
..
bilginize iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla