Форум: "Начинающим";
Текущий архив: 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