![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Параметры и свойства компонента Т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;
что то в синтаксисе не так, но что?