Конференция "Начинающим" » Параметры и свойства компонента ТIdTCPServer в Indy10, неясно гд
 
  • Pcrepair © (18.06.11 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 © (18.06.11 16:19) [1]
    выделенный вписок ошибок компилляции, чтоб проще читалось

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


    что то в синтаксисе не так, но что?
  • Pcrepair © (18.06.11 16:21) [2]
    выделенный список ошибок компилляции, чтоб проще читалось

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


    что то в синтаксисе не так, но что?
  • sniknik © (18.06.11 18:23) [3]
    а ты ошибки читать не пробовал? они же не просто факт, они информацию содержат...
  • Palladin © (18.06.11 21:58) [4]
    компиляция не поллюция... читай ошибки и думай...
  • Pcrepair © (19.06.11 12:11) [5]
    по существу вопроса кто то что знает?
    или тут одни гумористы?
 
Конференция "Начинающим" » Параметры и свойства компонента ТIdTCPServer в Indy10, неясно гд
Есть новые Нет новых   [134436   +23][b:0][p:0.003]