Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2010, 20:10   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
Счастье Грабить выделенный текст.

Ситуация:
___Появилась необходимость ограбить сайты с анекдотами и выстроить из них нечто для выдачи случайного анекдота на сайте. Формат этого нечто известен и требует лишь немного усилий в переработке стандартного текста. С этим проблем нет.

Основное задание:
___Создать программу, которая по нажатию на кнопку:
  • Сохранит в память выделенный в браузере текст
  • Обработает его под необходимый формат
  • Допишет измененный текст в файл-базу
  • Сообщит и размере конечного файла
Со 2-4 пунктами проблем нет. Проблема в первом пункте. Я никогда не занимался "грабежом" текста.

Аммуниция:
___Браузер : Fx 3.6.2
Среда разработки: Delphi 7.

Прошу помощи.

*** Конец передачи ***
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 24.03.2010, 21:33   #2
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Нашёл интересную ссылку. Возможно она вам поможет. с

http://www.rsdn.ru/forum/winapi/3695527.flat.aspx
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.
notHaker вне форума Ответить с цитированием
Старый 24.03.2010, 21:43   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Странно, но страница у меня не грузится. Застревает на "передача данных..."
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 24.03.2010, 22:03   #4
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Зачем собственно в браузере то? Ну в принципе, если узнаете ID окна в котором будет текст выделен, то EM_GETSEL, думаю, сработает.
Информацию о окне можно будет узнать посредством этой программы.


Update: похоже я ошибся, внутри браузера видимо все рисуется с нуля.

Кстати, а почему вы не хотите сделать это посредством WinSock + HTTP ?

У меня вот такой запрос работал в принципе:
Код:
get	db	"GET / HTTP/1.1",0xD,0xA
		db	"User-Agent: HTTPTest",0xD,0xA
		db	"Host: bash.org.ru",0xD,0xA
		db	0xD,0xA
"Тяжело в учении, легко в бою" - А.В. Суворов

Последний раз редактировалось Ivan_32; 25.03.2010 в 00:21.
Ivan_32 вне форума Ответить с цитированием
Старый 24.03.2010, 22:25   #5
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Ну как там написанно...

Проще всего найти окно, отдав ему фокус и эмулировать ctrl+c, а далее шерстить буфер обмена. Это самый простой вариант.

ЗЫ: Было тоже самое... Нужно просто подождать, тк у них видимо хостинг слабый.
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.

Последний раз редактировалось notHaker; 24.03.2010 в 22:29.
notHaker вне форума Ответить с цитированием
Старый 25.03.2010, 12:57   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Кстати насчет CTRL+C у меня такая идея возникла: на основе TWebBrowser написать недобраузер, и рядом одну кнопку. Зашел на сайт, выделил текст и нажал на кнопку. Хук даже вешать не надо. Тогда вопрос нереиначевается:
как получить выделенный в TWebBrowser текст в String?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 25.03.2010, 13:10   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...предложу "грабить" асечного бота - 7149342
Цитата:
-=-=-=- Бот Анекдот -=-=-=-

Развлечение:
1) !anekdot [id] - Вывод анекдота по номеру
2) !aforizm [id] - Вывод афоризма по номеру
3) !bash [id] - Вывод цитаты по номеру
4) !bash - Вывод случайной цитаты
5) 1 - Вывод случайного анекдота
6) 2 - Вывод случайного афоризма
7) 3 - Вывод случайной цитаты из 100 новых

Другие функции:
1) !bot - Полный список всех Ботов
4) !info - Информация о проекте
...всего-то консольную утилитку с компонентом Ticqclient да что-нить из indy для посылки скрипту на твоем сайте ...хотя с другой стороны, рассмотри варианты граба и самим твоим скриптом.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 25.03.2010, 13:13   #8
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Честно говоря в ICQ не работал ни разу да и времени особо нет разбираться с протоколом. Ведь, наверное, гораздо проще произвести манипуляции по схеме из п.6? Я надеюсь, все таки, получить ответ на свой вопрос.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 25.03.2010, 13:31   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

>>> тырк...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 25.03.2010, 14:04   #10
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Вот ссылка, там код для доступа к тексту

http://www.rsdn.ru/forum/delphi/65519.flat.aspx - доступ к тексту страницы

Код:
//Выделенный текст
function GetBrowserSelection(WB: TWebBrowser): string;
var
  Doc: Variant;
begin
  if assigned(WB.Document) then
  begin
    Doc := WB.Document;
    try
      Result := Doc.Selection.createRange.Text;
    finally
      Doc := Unassigned;
    end;
  end
end;
Не ругайте не тестил
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.

Последний раз редактировалось notHaker; 25.03.2010 в 14:11.
notHaker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить выделенный текст на свой в Блокноте Brother Win Api 6 13.11.2007 14:26
Выделенный текст в RichEdit Andr Компоненты Delphi 1 20.08.2007 20:53
Выделенный текст в другом приложении Nez Win Api 9 09.04.2007 01:52
найти выделенный текст в IWebBrowser kolli Компоненты Delphi 0 13.01.2007 17:53