Вопрос № 104692: Здравствуйте уважаемые эксперты,
Возникла необходимость доработать чужую программу,
цель: создание внешнего API.
метод: Внедрение DLL с помощью удаленных потоков (by Richter)
Проблема в том что все примеры написаны на C++
Возмож...Вопрос № 104709: Уважаемые эксперты
Как узнать длину текста в пикселах который записан в Caption у Lable ?...Вопрос № 104777: Здравствуйте, я тут делаю чат, нужно, чтобы сообщения отправлялись по нажатию кнопки ентер.
Подскажите пожалуйста как сделать это...
Вопрос № 104.692
Здравствуйте уважаемые эксперты,
Возникла необходимость доработать чужую программу,
цель: создание внешнего API.
метод: Внедрение DLL с помощью удаленных потоков (by Richter)
Проблема в том что все примеры написаны на C++
Возможно ли осуществить данную задачу на Делфи?
Если возможно, приведите примеры кода внедрения или подскажите где
посмотреть.
Спасибо.
Отправлен: 08.10.2007, 14:53
Вопрос задал: DinGior (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: PavelGM
Здравствуйте, DinGior!
Насчет доработки - это зависит от количества информации, которая есть по чужой программе.
По Рихтеру: Да можно, но для внедрения нужно точно знать параметры вызова перехватываемой функции. В приложении вырезка из работающей программы на примере перехвата BitBlt (код DLL RDSPY, затем юнит InjectU из головной программы).
Из программы подключаем ее через InjectU. Надо только знать PID процесса, в который внедряться (а об этом уже в других темах много говорилось).
Приложение:
Ответ отправил: PavelGM (статус: 10-ый класс)
Ответ отправлен: 08.10.2007, 19:06 Оценка за ответ: 5 Комментарий оценки: Не совсем понятно где заканчивается код dll, но все равно информативно. Спасибо,буду разбираться.
Вопрос № 104.709
Уважаемые эксперты
Как узнать длину текста в пикселах который записан в Caption у Lable ?
Отправлен: 08.10.2007, 16:22
Вопрос задал: Кэр Лаэда (статус: Практикант)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 9)
Отвечает: din
Здравствуйте, Кэр Лаэда!
Довольно просто, Canvas.TextWidth(Label1.Caption) вернет длину в пикселях.
Удачи!
--------- Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: din (статус: Специалист)
Ответ отправлен: 08.10.2007, 18:00 Оценка за ответ: 4 Комментарий оценки: да спасибо, я сам уже до этого дошел ))
Отвечает: Гальцов Андрей Михаилович !!! Здравствуйте, Кэр Лаэда!
Я конечно возможно не правильно понял, но помоему это не сложно len:=Canvas.TextWidth(TLabel1.Caption);
--------- Да здравтствует С++!!!...;)
Ответ отправил: Гальцов Андрей Михаилович (статус: 3-ий класс)
Ответ отправлен: 08.10.2007, 20:12 Оценка за ответ: 4 Комментарий оценки: вообще то вы правильно поняли, тока ответ был уже дан притом один раз мной в минифоруме.
Вопрос № 104.777
Здравствуйте, я тут делаю чат, нужно, чтобы сообщения отправлялись по нажатию кнопки ентер.
Подскажите пожалуйста как сделать это
Ответ отправил: Gladiator (статус: Студент)
Ответ отправлен: 09.10.2007, 08:09 Оценка за ответ: 5
Отвечает: Delph
Здравствуйте, Исаак Моисеевич!
Компоненты, предполагающие ввод данных с клавиатуры, предоставлят доступ к обработчику события с названием OnKeyPress. Выберите компонент, где происходит редактирование текста перед передачей. В редакторе объектов на вкладке Events сделайте двойной щелчок по указанному событию, и в проявившейся процедуре обработки напишите:
if Key = #13 then
begin
<Ваши_Действия_по_отправке>
end;
Вариант, предложенный Gladiator'ом, отличается от моего тем, что у меня клавиша <Enter> перехватывается одним компонентом (и то при условии, что фокус активности на нём), а у него <Enter> активирует <Ваши_Действия_по_отправке> независимо от того, на каком компоненте или даже просто на форме будет фокус ввода. Что для Вас удобнее - выбирайте по своим соображениям.
--------- Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: 10-ый класс)
Ответ отправлен: 09.10.2007, 08:19 Оценка за ответ: 5
Отвечает: PM_pilot
Здравствуйте, Исаак Моисеевич!
Здравствуйте, Исаак Моисеевич!
Нужно проверять клавишу через событие OnKeyPress если клавиша == VK_RETURN то отправляете иначе нет.
Вот может пригодиться: http://delphi.about.com/od/objectpascalide/l/blvkc.htm
Ответ отправил: PM_pilot (статус: 1-ый класс)
Ответ отправлен: 09.10.2007, 18:05 Оценка за ответ: 5