Добрый день
Есть следующая процедура с Использованием ИНДИ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
z := ReadLn;
if SameText(Copy(z, 1, 8), 'mouse_x ') then
X:=StrToInt(Copy(z,9,4));
z := ReadLn;
if SameText(Copy(z, 1, 8), 'mouse_y ') then
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
z := ReadLn; ВОТ ТУТ ОШИБКА!!
if SameText(Copy(z, 1, 8), 'mouse_x ') then
X:=StrToInt(Copy(z,9,4));
z := ReadLn; ВОТ ТУТ ОШИБКА!!
if SameText(Copy(z, 1, 8), 'mouse_y ') then
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, укажите на ошибки