Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Вниз

URL браузера...конкретно IE   Найти похожие ветки 

 
Ghost.   (2002-11-29 15:10) [0]

Функция указанная в ФАКе при вызове из него самого не работает..какие могут быть еще варианты..


 
Ghost.   (2002-11-30 11:29) [1]

И че вообще никто не знает? Или хотябы информацию как с браузером работать как с ОЛЕ обьектом..или еще как нибудь? Или га API заголовок окна известен..хендл тоже..какие-то варианты должны быть


 
Ihor Osov'yak   (2002-11-30 11:44) [2]

2 Ghost. © (29.11.02 15:10)

А, че(с Ghost), бля (с Кучма), влом сказать какая функция и че за фича такая "него самого" - ФАК? IE?. И шо такое не работает? На взлет не идет? Или на посадку?

Или здесь все телетапы?


 
Ghost.   (2002-12-02 09:06) [3]

Мне казалось, что я понятно обьяснил но если нет (
> Ihor Osov"yak ©
) звиняйте
В FAQ (этого сайта )есть
Как получить активный URL из браузера.

Приводимая здесь функция показывает, как Ваше приложение может извлечь из браузера (IE или Netscape) URL , как, например, это делает аська.
Совместимость: Delphi 4.x (или выше)
Не забудьте добавить DDEMan в Ваш проект!

Собственно сам исходничек функции:

uses windows, ddeman, ...... function Get_URL(Servicio: string): String; var Cliente_DDE: TDDEClientConv; temp:PChar; //<<-------------------------This is new begin Result := ""; Cliente_DDE:= TDDEClientConv.Create( nil ); with Cliente_DDE do begin SetLink( Servicio,"WWW_GetWindowInfo"); temp := RequestData("0xFFFFFFFF"); Result := StrPas(temp); StrDispose(temp); //<<-Предотвращаем утечку памяти CloseLink; end; Cliente_DDE.Free; end; procedure TForm1.Button1Click(Sender); begin showmessage(Get_URL("Netscape")); или showmessage(Get_URL("IExplore")); end;


Автор: Ruslan Abu Zant (delphi3000@opilki.net)
Источник: http://www.sources.ru/delphi/
так вот если запустить его из своей программы то все работает.., а если запустить из DLL плагина для IE (Интернет Эксплоера для Ihor Osov"yak © ) такой же дополнительной панельки типа Яндекс бар (кто невидел помочь не могу Ihor Osov"yak © ) вот эта функция возвращает пустую строку..хотелось бы найти какой нибудь способ получения содержания адресной строки IE


 
Song   (2002-12-02 09:21) [4]

WM_GETTEXT


 
Ghost.   (2002-12-02 11:46) [5]

Вот видимо это именно то что мне нужно..но я не хотел бы показаться назойливым..но с API у меня не очень дружественные отношения...
Не будет ли любезен многоуважаемый ДЖИН(читай Song © )привести какойнибудь вариант вызова этой функции..


 
Ghost.   (2002-12-02 12:12) [6]

Всем спасибо сам нашел...


 
Opuhshii   (2002-12-02 13:02) [7]

вот так тоже можно...
var
I:Integer;
SW:Variant;
begin
SW:=CoShellWindows.Create;
for I:=1 to SW.Count-1 do begin
Showmessage(SW.Item(I).LocationURL);
end;
end;


 
Song   (2002-12-02 13:12) [8]

2Ghost. © (02.12.02 11:46)
WM_GETTEXT (или сообщения CB_*) надо посылать на окно, содержащее урл в браузере. Это окно имеет класс ComboBoxEx32.

Нижеизложенная иерархия объектов справедлива для IE 5:

IEFrame
|
|-WorkerA
| |
|-ReBarWindow32
| |
|-ComboBoxEx32
|

Нужно нам окно последнее. Вот на него мы должны послать сообщение и получить строку.



 
Ghost.   (2002-12-02 13:16) [9]


> CoShellWindows

А это, что такое?
я нашел вариант..
{-------------------------------------------------------}
Function GetText(WindowHandle: hwnd):string;
var
txtLength : integer;
buffer: string;
begin

TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0);
txtlength := txtlength + 1;
setlength (buffer, txtlength);
sendmessage (WindowHandle,wm_gettext, txtlength, longint(@buffer[1]));
result := buffer;
end;

function GetURL:string;
var
ie,toolbar,combo,
comboboxex,edit,
worker,toolbarwindow:hwnd;
begin

ie := FindWindow(pchar("IEFrame"),nil);
worker := FindWindowEx(ie,0,"WorkerA",nil);
toolbar := FindWindowEx(worker,0,"rebarwindow32",nil);
comboboxex := FindWindowEx(toolbar, 0, "comboboxex32", nil);
combo := FindWindowEx(comboboxex,0,"ComboBox",nil);
edit := FindWindowEx(combo,0,"Edit",nil);
toolbarwindow := FindWindowEx(comboboxex, 0, "toolbarwindow32", nil);


result := GetText(edit);
{-------------------------------------------------------}

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(GetURL);
end;
но тоже чета не получается..


 
Opuhshii   (2002-12-02 13:34) [10]

>SW:=CoShellWindows.Create;
uses SHDOCvw
можно написать CoCreateInstance и описать нужный тебе guid(соответственно описан в SHDOCvw) и модуль не использовать,...


 
Song   (2002-12-02 14:03) [11]

special for Ghost. © (02.12.02 13:16)
пришлось потратить 10 минут драгоценного времени :)

procedure TForm1.Button1Click(Sender: TObject);
Var Wnd:HWND;
Arr:array [1..255] of Char;
begin
ShellExecute(Handle,nil,"iexplore.exe"," http://delphi.mastak.ru",nil,SW_SHOWNORMAL);
Sleep(8000); // ждём пока страница загрузится (т.е. пока адрес появится в окне ComboBoxEx32). В течении этого времени переключаться с IE нельзя, иначе GetForeGroundWindow вернёт не тот дискриптор и соответственно вся очередь чайлдов будет неправильной.
Wnd:=FindWindowEx(GetForeGroundWindow,0,"WorkerA",nil);
Wnd:=FindWindowEx(Wnd,0,"ReBarWindow32",nil);
Wnd:=FindWindowEx(Wnd,0,"ComboBoxEx32",nil);
SendMessage(Wnd,WM_GETTEXT,SizeOf(Arr),Integer(@Arr));
ShowMessage(TrimRight(Arr));
end;


 
Ghost.   (2002-12-02 14:25) [12]


> Opuhshii ©

Работает...


 
Ghost.   (2002-12-02 14:29) [13]

Спасибо всем за участие...



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.008 c
1-96812
rea
2003-01-20 16:34
2003.01.30
Inplace Edit


1-96736
soware
2003-01-22 10:10
2003.01.30
Чтение текста голосом


1-96694
URZA
2003-01-21 13:48
2003.01.30
WinRaR


3-96631
vich
2003-01-09 16:16
2003.01.30
Прошу помочь с правильным созданием таблиц


4-97109
Роман_
2002-12-14 19:47
2003.01.30
Как правильно передать параметр в thread





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский