Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2014, 22:21   #1
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию Удаленный просмотр рабочего стола

Есть код я тестировал на виртуалке все робит все гуд) код может не идеал но делал строго по уроку и вообще впервый раз связываюсь с этим компонентам так вот и у меня сразу такой вопрос возник чтоб подключится к виртуалке мне не составило труда взял ip адрес ввел и уаля) а тут вопрос если я запущу у себя клиент а сервер возьму к себе на работу то как мне подключится от туда ко мне? как мне взять свой ип адрес не программно? короче цель подключится с одного пк на другой вот код что сделал...

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, StdCtrls, sSkinManager;

type
  TForm1 = class(TForm)
    IdTCPClient1: TIdTCPClient;
    img1: TImage;
    mm1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    tmr1: TTimer;
    grp1: TGroupBox;
    btn1: TButton;
    edt1: TEdit;
    lbl1: TLabel;
    lbl2: TLabel;
    edt2: TEdit;
    lbl3: TLabel;
    edt3: TEdit;
    btn2: TButton;
    sknmngr1: TsSkinManager;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure tmr1Timer(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure IdTCPClient1Disconnected(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
IdTCPClient1.Host:=edt1.Text;  // ип адрес
IdTCPClient1.Connect;
tmr1.Enabled:=True;
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
tmr1.Interval:=StrToInt(edt3.Text);
end;

procedure TForm1.tmr1Timer(Sender: TObject);
var
  st:TMemoryStream;
begin
 IdTCPClient1.WriteLn('jpg');
 st:=TMemoryStream.Create;
 IdTCPClient1.ReadStream(st);
 st.Position:=0;
 img1.Picture.Bitmap.LoadFromStream(st);
 st.Clear;
 st.Free;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
tmr1.Enabled:=False;
end;

procedure TForm1.IdTCPClient1Disconnected(Sender: TObject);
begin
tmr1.Enabled:=false;
end;

end.
вот еще

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPServer, IdIdentServer;

type
  TForm1 = class(TForm)
    IdTCPServer1: TIdTCPServer;
    IdIdentServer1: TIdIdentServer;
    procedure IdTCPServer1Execute(AThread: TIdPeerThread);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure jpg (connection: TIdTCPServerConnection);
var
 steam:TMemoryStream;
 desktopconvas : Tcanvas;
 Bitmap: TBitmap;
 begin
   desktopconvas:=TCanvas.Create;
   desktopconvas.Handle:=GetDC(HWND_DESKTOP);
   Bitmap:=TBitmap.Create;
   Bitmap.Width:=Screen.Width;
   Bitmap.Height:=screen.height;
   Bitmap.Canvas.CopyRect(Bitmap.Canvas.ClipRect, desktopconvas, desktopconvas.ClipRect);
   if not DrawIcon(Bitmap.Canvas.Handle,Mouse.CursorPos.X, Mouse.CursorPos.Y, GetCursor) then
   begin
     steam:=TMemoryStream.Create;
     Bitmap.SaveToStream(steam);
     connection.WriteStream(steam, True, True);
     steam.Clear;
     steam.Free;
     Bitmap.free;
   end;
 end;  

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var a:string;
begin
  a:=AThread.Connection.ReadLn;
  if a='jpg' then
  begin
    jpg(AThread.Connection);
  end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
// скрытие формы Application.ShowMainForm:=False;
end;

end.
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 18.07.2014, 23:10   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
а тут вопрос если я запущу у себя клиент а сервер возьму к себе на работу то как мне подключится от туда ко мне?
Купить для дома выделенный IP-адрес у провайдера. Тогда тебя будет видно в интернете как отдельный ПК.

2 вопроса:
1. Почему вместо RDP вы предпочли извращение со скриншотами?
2. Почему нельзя взять полнофункциональный TeamViewer(проблемы с IP тут вообще по барабану)?
Человек_Борща вне форума Ответить с цитированием
Старый 19.07.2014, 03:31   #3
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Почему нельзя взять полнофункциональный TeamViewer(проблемы с IP тут вообще по барабану)?
И не только TeamViewer. В настоящее время полно программ для "удалёнки", как говорится, "на любой вкус и цвет". Зачем заново изобретать велосипед?
Streletz вне форума Ответить с цитированием
Старый 19.07.2014, 05:22   #4
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Заново лучше для меня) ну чтоб дома ни кто не узнал ) а почему тим виевер по барабану какой у меня ип? можно сделать так же?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 19.07.2014, 08:41   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а почему тим виевер по барабану какой у меня ип?
Потому что Тимка пользуется VPN технологией. Он подключается не напрямую, а через свой сервер в главном оффисе фирмы. Ты регистрируешь свой акк на этом серваке, сервак теперь знает твой IP (вернее при старте тимка постоянно обновляет твой текущий IP и видимо открывает подключение, по которому другие тимки и подключаются к тебе) поэтому удаленное подключение возможно даже при динамических IP.
Цитата:
можно сделать так же?
Ну можно конечно ) Сервак нужен внешний с белым IP.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.07.2014, 11:51   #6
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 247
По умолчанию

Еще можно использовать какой-то сервис с родни no-ip
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!
DarkEvil вне форума Ответить с цитированием
Старый 19.07.2014, 14:01   #7
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Потому что Тимка пользуется VPN технологией. Он подключается не напрямую, а через свой сервер в главном оффисе фирмы. Ты регистрируешь свой акк на этом серваке, сервак теперь знает твой IP (вернее при старте тимка постоянно обновляет твой текущий IP и видимо открывает подключение, по которому другие тимки и подключаются к тебе) поэтому удаленное подключение возможно даже при динамических IP.

Ну можно конечно ) Сервак нужен внешний с белым IP.
Сервак есть а точнее будет на днях)

Цитата:
Сообщение от DarkEvil Посмотреть сообщение
Еще можно использовать какой-то сервис с родни no-ip
это как?
99% ошибок компьютера сидит в полуметре от монитора.

Последний раз редактировалось Stilet; 19.07.2014 в 14:22.
Fahman вне форума Ответить с цитированием
Старый 19.07.2014, 14:23   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Сервак есть а точнее будет на днях)
Тогда найми профессионала, пусть замутит тебе схему а-ля тимвьювер )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.07.2014, 15:02   #9
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 247
По умолчанию

Цитата:
Сообщение от Fahman Посмотреть сообщение
это как?
Регаешся на вот этом сервисе придумываешь доменное имя а-ля moyserv.no-ip.org
ставишь клиент сервиса себе на комп и радуешься :-)
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!
DarkEvil вне форума Ответить с цитированием
Старый 19.07.2014, 15:39   #10
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

тоже что и TEamViewer
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаленный просмотр экрана kostya67 Работа с сетью в Delphi 5 29.08.2013 09:19
обновление рабочего стола... Androi Помощь студентам 4 05.01.2011 12:09
Создание рабочего стола Miller-1981 Win Api 3 27.10.2010 21:49
Скриншот рабочего стола C# alxd Общие вопросы .NET 5 08.02.2010 19:38
скриншоты рабочего стола Alar Общие вопросы Delphi 0 29.10.2006 10:59