Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Параметры и свойства компонента ТIdTCPServer в Indy10, неясно гд


Pcrepair ©   (2011-06-18 16:15:00) 

Добрый день
Есть следующая процедура с Использованием ИНДИ9

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
 z: string;
 fstream:TFileStream;
 X,Y:integer;

 K:TPoint;
begin
 with AThread.Connection do
 begin
  //Читаем что прислало нам клиентское приложение
  z := ReadLn;
  //Если это скриншот экрана, то отправляем
  if SameText(Copy(z, 1, 11), 'get_screen ') then
  begin
   Log('Запрошен скриншот');
   //Вызываем процедуру снятия скриншота
   GET_SCREEN;
   //Создаем поток
   fStream := TFileStream.Create(ExtractFilePath(Application.ExeName)+'\'+'s.png',
                                 fmOpenRead + fmShareDenyNone);
   //ПЕРЕДАЕМ файл клиентскому приложению
   OpenWriteBuffer;
   Log('Передаем файл s.png');
   WriteStream(fStream);
   Log('Файл передан');
   CloseWriteBuffer;

   //Уничтожаем поток
   FreeAndNil(fStream);
  end;

  //Если перемещение мыши, то
  if SameText(Copy(z, 1, 11), 'mouse_move ') then
  begin
   //Читаем координату X
   z := ReadLn;
   if SameText(Copy(z, 1, 8), 'mouse_x ') then
   //от 9 и до конца строки читаем координату X
   X:=StrToInt(Copy(z,9,4));

   //Читаем координату Y
   z := ReadLn;
   if SameText(Copy(z, 1, 8), 'mouse_y ') then
   //от 9 и до конца строки читаем координату   y
   Y:=StrToInt(Copy(z,9,4));

   Log('Перемещение мыши');
   //Перемещаем курсор мыши
   SetCursorPos(X,Y);
 end;

 //Если нажата левая кнопка мыши
 if SameText(Copy(z, 1, 11), 'mouse_left ') then
  begin
   GetCursorPos(K);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN,K.X,K.Y,0,0);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP,K.X,K.Y,0,0);
   Log('Нажатие левой кнопки мыши');
  end;

  //Если нажата правая кнопка мыши
  if SameText(Copy(z, 1, 12), 'mouse_right ') then
  begin
   GetCursorPos(K);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTDOWN,K.X,K.Y,0,0);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTUP,K.X,K.Y,0,0);
   Log('Нажатие правой кнопки мыши');
  end;

 //Рвем соединение с клиентом
 AThread.Connection.Disconnect;
end;
end;



Здесь частично переписанный аналог процедуры для ИНДИ10
Компиллятор выставляет ошибки компилляции

procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
 z: string;
 fstream:TFileStream;
 X,Y:integer;

 K:TPoint;
begin
 with AContext.Connection do
 begin
  //Читаем что прислало нам клиентское приложение
  z := AContext.Connection.IOHandler.ReadLn;
  //Если это скриншот экрана, то отправляем
  if SameText(Copy(z, 1, 11), 'get_screen ') then
  begin
   Log('Запрошен скриншот');
   //Вызываем процедуру снятия скриншота
   GET_SCREEN;
   //Создаем поток
   fStream := TFileStream.Create(ExtractFilePath(Application.ExeName)+'\'+'s.png',
                                 fmOpenRead + fmShareDenyNone);
   //ПЕРЕДАЕМ файл клиентскому приложению
   AContext.Connection.IOHandler.Write(fStream,fStream.Size,true);
   Log('Передаем файл s.png');
   AContext.Connection.WriteStream(fStream); ВОТ ТУТ ОШИБКА!!!
   Log('Файл передан');
   AContext.Connection.Close; ВОТ ТУТ ОШИБКА!!!

   //Уничтожаем поток
   FreeAndNil(fStream);
  end;

  //Если перемещение мыши, то
  if SameText(Copy(z, 1, 11), 'mouse_move ') then
  begin
   //Читаем координату X
   z := ReadLn; ВОТ ТУТ ОШИБКА!!
   if SameText(Copy(z, 1, 8), 'mouse_x ') then
   //от 9 и до конца строки читаем координату X
   X:=StrToInt(Copy(z,9,4));

   //Читаем координату Y
   z := ReadLn; ВОТ ТУТ ОШИБКА!!
   if SameText(Copy(z, 1, 8), 'mouse_y ') then
   //от 9 и до конца строки читаем координату   y
   Y:=StrToInt(Copy(z,9,4));

   Log('Перемещение мыши');
   //Перемещаем курсор мыши
   SetCursorPos(X,Y);
 end;

 //Если нажата левая кнопка мыши
 if SameText(Copy(z, 1, 11), 'mouse_left ') then
  begin
   GetCursorPos(K);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN,K.X,K.Y,0,0);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP,K.X,K.Y,0,0);
   Log('Нажатие левой кнопки мыши');
  end;

  //Если нажата правая кнопка мыши
  if SameText(Copy(z, 1, 12), 'mouse_right ') then
  begin
   GetCursorPos(K);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTDOWN,K.X,K.Y,0,0);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTUP,K.X,K.Y,0,0);
   Log('Нажатие правой кнопки мыши');
  end;

 //Рвем соединение с клиентом
 AContext.Connection.Disconnect;
end;
end;



В общем не ясно, что тут надо переделать чтоб компиляция хотя бы прошла без ошибок. Если кто знает ИНДИ10, укажите на ошибки


Pcrepair   (2011-06-19 12:11:00) [1]

по существу вопроса кто то что знает?
или тут одни гумористы?


Palladin   (2011-06-18 21:58:00) [2]

компиляция не поллюция... читай ошибки и думай...


sniknik   (2011-06-18 18:23:00) [3]

а ты ошибки читать не пробовал? они же не просто факт, они информацию содержат...


Pcrepair   (2011-06-18 16:21:00) [4]

выделенный список ошибок компилляции, чтоб проще читалось

AContext.Connection.WriteStream(fStream);
AContext.Connection.Close;
//Читаем координату X
   z := ReadLn;
//Читаем координату Y
   z := ReadLn;

что то в синтаксисе не так, но что?


Pcrepair   (2011-06-18 16:19:00) [5]

выделенный вписок ошибок компилляции, чтоб проще читалось

AContext.Connection.WriteStream(fStream);
AContext.Connection.Close;
//Читаем координату X
   z := ReadLn;
//Читаем координату Y
   z := ReadLn;

что то в синтаксисе не так, но что?


Наверх

Титульная страница Поиск, карта сайта Написать письмо