SpIrIt732
29.12.2012, 20:36
Всем привет! В своей программе использую компонент WebBrowser в котором имеются ссылки на компьютеры в сети и не только.
В событии BeforeNavigate2 проверяю является ли ссылка сетевым именем, например: " \\User ", если да, то канселю браузер и предаю управление другому компоненту. Проблема в том, что если компьютер на который я ссылаюсь не в сети, то программа порядочно подвисает.
Подвисание происходит до события WeberBeforeNavigate.
Подскажите как можно перехватить адрес ссылки (URL) сразу после клика и из-за чего происходит подвисание ведь мне не нужно открывать в браузере ссылку на комп находящийся не в сети.
procedure TMainForm.WeberBeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
var
s: string;
begin
s:=url;
if (s[1]='\') and (s[2]='\') then
//если ссылаемся на сетевое имя
begin
cancel:=True;
//проверяю существует ли пользователь
//передаю управление другому компоненту...
end
end;
В событии BeforeNavigate2 проверяю является ли ссылка сетевым именем, например: " \\User ", если да, то канселю браузер и предаю управление другому компоненту. Проблема в том, что если компьютер на который я ссылаюсь не в сети, то программа порядочно подвисает.
Подвисание происходит до события WeberBeforeNavigate.
Подскажите как можно перехватить адрес ссылки (URL) сразу после клика и из-за чего происходит подвисание ведь мне не нужно открывать в браузере ссылку на комп находящийся не в сети.
procedure TMainForm.WeberBeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
var
s: string;
begin
s:=url;
if (s[1]='\') and (s[2]='\') then
//если ссылаемся на сетевое имя
begin
cancel:=True;
//проверяю существует ли пользователь
//передаю управление другому компоненту...
end
end;