Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > типа браузер


Автор: Zorak 20.8.2011, 18:59
Доброго времени суток. Вопрос таков: Мне надо написать программу, которую нигде не будет видно (Трей, процеси (хотя процесы куда не шло, главное трей), в поле где окошка свернутые показываются и т д.) Мало того... Эта программа должна ожидать подключения интернет-соединения и открыть определенную страницу и кликнуть на определенную ссылку (УРЛ страницы есть, УРЛ ссилки нету... известно тольео местоположение ссылки) и главное - этого ничего не должен видеть юзер. Можно ли такое организовать и в какую сторону начинать смотреть ?
Спасибо!

Автор: 14SatanA88 20.8.2011, 21:03
Цитата(Zorak @  20.8.2011,  18:59 Найти цитируемый пост)
Можно ли такое организовать и в какую сторону начинать смотреть ?

можно, но процесс все равно будет висеть.

скрыть прогу от таскбара, не показывать ее в трее... - это уже многократно обсуждалось
погугли

Автор: Zorak 20.8.2011, 21:35
Цитата
можно, но процесс все равно будет висеть.

Это пол беды. 

Цитата
скрыть прогу от таскбара, не показывать ее в трее... - это уже многократно обсуждалось
погугли

Ок, это погуглю, думаю найду.
А вот как насчет
Цитата
в какую сторону начинать смотреть ?

Гуглил.. но столько разных обьяснений что аж страшно немного стало. Это должен быть браузер или это должно быть нечто другое ?...

Автор: Данкинг 20.8.2011, 22:12
Цитата(Zorak @  20.8.2011,  22:35 Найти цитируемый пост)
Это должен быть браузер или это должно быть нечто другое ?... 

Скачай страницу, загрузи её в TStringList, в её тексте найди нужную ссылку. А открыть можно как с помощью TWebBrowser, так и браузером по умолчанию через ShellExecute; это уж как захочешь.

Автор: kami 20.8.2011, 22:18
http://yandex.ru/yandsearch?clid=9582&text=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE+%D0%BA%D0%BB%D0%B8%D0%BA%D0%BD%D1%83%D1%82%D1%8C+%D0%BD%D0%B0+%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D1%83+%D0%B2+TWebBrowser&lr=2

Автор: Poseidon 21.8.2011, 01:24
Цитата(Zorak @  20.8.2011,  18:59 Найти цитируемый пост)
известно тольео местоположение ссылки
Вот это как? Известно где ссылка в html коде и так: "там слева, сразу за картинкой, что под табличкой"?

Автор: Zorak 21.8.2011, 08:55
Цитата(Poseidon @ 21.8.2011,  01:24)
Вот это как? Известно где ссылка в html коде и так: "там слева, сразу за картинкой, что под табличкой"?

Да, типа чтото того)

Автор: Чучмек 22.8.2011, 13:35
Код

program Project1;

uses
  Forms,
  SHDocVw,
  activex,
  classes,
  MSHTML,
  windows;




var wb,wb2:twebbrowser;
var stop:boolean=false;

type
 twbtr=class(tthread)
   page_url,go_url:string;
   procedure execute;override;
   procedure DocumentComplete(Sender: TObject; const pDisp: IDispatch;var URL: OleVariant);
   procedure NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
 end;


procedure twbtr.NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp:=wb2.ControlInterface;
end;

procedure twbtr.execute;
label sud;
begin
page_url:='http://ya.ru/';
with wb do
 begin
// Left:=screen.Width+200;                           //Раскоментировать чтобы скрыть
// Top:=screen.Height+200;                           //Раскоментировать чтобы скрыть
 showwindow(Handle,SW_SHOWNORMAL{ and SW_HIDE});     //Раскоментировать чтобы скрыть
 OnDocumentComplete:=DocumentComplete;
 OnNewWindow2:=NewWindow2;
 end;
with wb2 do
 begin
 Left:={screen.Width+}200;                          //Раскоментировать чтобы скрыть
 Top:={screen.Height+}200;                          //Раскоментировать чтобы скрыть
 showwindow(Handle,SW_SHOWNORMAL{ and SW_HIDE});    //Раскоментировать чтобы скрыть
 OnNewWindow2:=NewWindow2;
 end;
sud:
wb.Navigate(page_url);
{Если надо обработать несколько страниц - ожидаем DocumentComplete; указываем новый page_url, goto sud;
+код завершения по тамауту stop:=true }
end;

procedure twbtr.DocumentComplete(Sender: TObject; const pDisp: IDispatch;var URL: OleVariant);
var s,s1:string;
begin
if TWebBrowser(sender).DefaultInterface=pDisp as IWebBrowser then
 begin
 s:=URL;
 s1:=(TWebBrowser(sender).Document as ihtmldocument2).body.innerHTML;
 //ищем в s1 искомую сылку,сохраняем ее в  go_url, wb2.Navigate(go_url);
 //или загружаем в wb скрипт, который находит сылку и открывает ее в новом окне
 messagebox(0,pchar(s1),pchar(s),0);

 end;
end;


var wbtr:twbtr;



var msg:TMsg;
begin
//
//Здесь цикл проверки-ожидания подключения 
//

coinitialize(nil);
wb :=twebbrowser.Create(nil);
wb2:=twebbrowser.Create(nil);
wbtr:=twbtr.Create(false);
while GetMessage(msg,0,0,0)and not stop do
 begin
 translatemessage(msg);
 DispatchMessage(msg);
 end;
end.


webbrowser далеко не самый лучший вариант.
Если в скрипте страницы будет alert ???
И вообще, очень нехорошо накручивать  клики на рекламу ( обманывая пользователей, создавая трояны/вирусы итп)

Автор: Akella 23.8.2011, 15:53
Zorak, программа, которую ты задумал, называется вирус. Ну если не вирус, то потенциально нежелательная или потенциально опасная. На Винграде обсуждение подобных программ не есть хорошо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)