Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.10.09;
Скачать: CL | DM;

Вниз

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

 
Pcrepair ©   (2011-06-18 16:15) [0]

Добрый день
Есть следующая процедура с Использованием ИНДИ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-18 16:19) [1]

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

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

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


 
Pcrepair ©   (2011-06-18 16:21) [2]

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

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

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


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

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


 
Palladin ©   (2011-06-18 21:58) [4]

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


 
Pcrepair ©   (2011-06-19 12:11) [5]

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



Страницы: 1 вся ветка

Текущий архив: 2011.10.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
15-1306204916
Andrey_lvm
2011-05-24 06:41
2011.10.09
Есть ли тут спецы по кондиционерам?


4-1251275930
TarenoKostanay
2009-08-26 12:38
2011.10.09
ОС


1-1263893750
midikey
2010-01-19 12:35
2011.10.09
Подобие написания/выполнения скрипта


2-1308799300
petvv
2011-06-23 07:21
2011.10.09
Закрытие формы при возникновении в ней исключения


15-1308342599
Юрий
2011-06-18 00:29
2011.10.09
С днем рождения ! 18 июня 2011 суббота