Получаем ссылку из браузера
Здравствуйте, в этой статье я хотел бы рассказать как можно получить ссылку с браузера, который Вы укажите, или можно сделать, который у Вас открыт в текущий момент, в Интернете полно таких исподников, но они довольно сильно громосткие, а мы еще и получим заголовок страницы, то есть название окна браузера (название страницы, которая в данный момент открыта во вкладке или в окне). Мы будем использовать очень хороший компонента, нет мы даже не будем его качать откуда-то, а просто воспользуемся стандартным компонентов и все, у нас готова наша почти программа для получения этих url из браузера, одно отделяет нас – это 3 строчки кода =). Данный компонент называется
* DdeClientConv
Который находится на вкладке
* System
Мы просто устанавливаем данный компонент на форму нашу и все, конечно можно создать его и программно, но пока что не будем насчет этого заморачиваться.
Теперь давайте на OnClick кнопки напишем код, который будет получать url с браузера и его заголовок.
Исходный код
procedure TForm1.Button1Click(Sender: TObject);
var
Temp:WideString;
begin
DdeClientConv1.SetLink('opera','WWW_GetWindowInfo');
Temp:=DdeClientConv1.RequestData('sUrl');
ShowMessage(Temp);
end; |
С помощью SetLink мы устанавливаем браузер, с которого мы будем получать информацию, а также какую информацию, а затем в переменную Temp мы записываем это и через запятую в переменной у нас будет в двойных кавычках url и заголовок браузера. Теперь мы можем пропарсить это все и получить например только url
Исходный код
procedure TForm1.Button1Click(Sender: TObject);
var
Temp,url:WideString;
begin
DdeClientConv1.SetLink('opera','WWW_GetWindowInfo');
Temp:=DdeClientConv1.RequestData('sUrl');
delete(Temp,1,pos('"',temp));
url:=copy(temp,1,pos('"',temp)-1);
ShowMessage(Url);
end; |
Можно написать подобную функцию и использовать ее
Исходный код
function GetUrlBrowser(NameBrowser:WideString):WideString;
var
Temp:WideString;
begin
Result:='';
Form1.DdeClientConv1.SetLink(NameBrowser,'WWW_GetWindowInfo');
Temp:=Form1.DdeClientConv1.RequestData('surl');
Delete(temp,1,pos('"',temp));
delete(temp,pos('"',temp),length(temp));
result:=temp;
end; |
А использовать ее можно так
Исходный код
procedure TForm1.Button2Click(Sender: TObject);
begin
Caption:=GetUrlBrowser('opera');
end;
|
Данный код компилировался в Delphi 7, и был протестирован на следующих браузерах
* FireFox
* Opera
* IEplorer
Пробовал Google Chrome, но почему-то не захотел