Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.10.09;
Скачать: [xml.tar.bz2];

Вниз

Параметры и свойства компонента Т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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
15-1308505658
Leon-Z
2011-06-19 21:47
2011.10.09
Иконка *.bmp на кнопке меню.


4-1251278625
NeonSimfi
2009-08-26 13:23
2011.10.09
Проблема с получением comctl32.dll на Win Vista/7 ...


2-1308515045
Geo
2011-06-20 00:24
2011.10.09
Видимость комонентов приналожении


2-1308469792
talim
2011-06-19 11:49
2011.10.09
Ошибка "Access violation" после импортирования кода.


1-1267824799
Архип
2010-03-06 00:33
2011.10.09
плагин для Оперы (dll)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский