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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2013, 12:55   #1
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию Запрет по url (WebbRowser Delphi)

Всем привет!

Есть Webbrowser в нем есть ссылка www.mail.ru к примеру она, если я кликаю по ней то у меня выскакивает родной браузер IE и открывает эту ссылку, можно ли как то взять и запретить это действие?? очень нужно...
пробовал так но не выходит

Код:
if url<>'http://www.mail.ru' then cancel:=true
;
ссылку открывает IE

или вот еще, например есть memo1 и там примерно так
www.mail.ru
www.vk.com
www.sute.com

Теперь, webbrowser я сижу в нем, и там на каком нибудь сайте я нашел ссылку www.mail.ru или www.vc.com как сделать так чтоб программа сначала проверила есть ли ссылка такая в memo1 если есть то запретить а если нету ее в списке из мемо то уже я сделаю шелл=)
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 19.12.2013, 18:48   #2
Halogen
Пользователь
 
Аватар для Halogen
 
Регистрация: 23.11.2013
Сообщений: 46
По умолчанию

Цитата:
Сообщение от Fahman Посмотреть сообщение
Всем привет!

Есть Webbrowser в нем есть ссылка www.mail.ru к примеру она, если я кликаю по ней то у меня выскакивает родной браузер IE и открывает эту ссылку, можно ли как то взять и запретить это действие?? очень нужно...
пробовал так но не выходит

Код:
if url<>'http://www.mail.ru' then cancel:=true
;
ссылку открывает IE
Если я вас правильно понял то
Код:
Cancel := (URL <> FCurrURL);
if Cancel then
  ShellExecute(0, 'open', PChar(VarToStr(URL)), '', '.', SW_SHOW);
Цитата:
Сообщение от Fahman Посмотреть сообщение
или вот еще, например есть memo1 и там примерно так
www.mail.ru
www.vk.com
www.sute.com

Теперь, webbrowser я сижу в нем, и там на каком нибудь сайте я нашел ссылку www.mail.ru или www.vc.com как сделать так чтоб программа сначала проверила есть ли ссылка такая в memo1 если есть то запретить а если нету ее в списке из мемо то уже я сделаю шелл=)
Код:
cancel:=true
как раз и нужен в данном случае
Halogen вне форума Ответить с цитированием
Старый 19.12.2013, 19:29   #3
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Halogen Посмотреть сообщение
Если я вас правильно понял то
Код:
Cancel := (URL <> FCurrURL);
if Cancel then
  ShellExecute(0, 'open', PChar(VarToStr(URL)), '', '.', SW_SHOW);


Код:
cancel:=true
как раз и нужен в данном случае
Извините но чет я не пойму куда этот код? можно полный код? (ТОлько проснулся не понимаю еще)

Может можно вообще запретить ? не у меня же открывается IE а можно вообще запретить открытие IE?
99% ошибок компьютера сидит в полуметре от монитора.

Последний раз редактировалось Fahman; 19.12.2013 в 19:34.
Fahman вне форума Ответить с цитированием
Старый 20.12.2013, 09:41   #4
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Цитата:
Есть Webbrowser в нем есть ссылка www.mail.ru к примеру она, если я кликаю по ней то у меня выскакивает родной браузер IE и открывает эту ссылку, можно ли как то взять и запретить это действие?? очень нужно...
Код:
procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
begin
  ppDisp:=WebBrowser1.ControlInterface;
end;
Открывает в этом же окне ссылки.
-=Virus=- вне форума Ответить с цитированием
Старый 20.12.2013, 15:52   #5
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от -=Virus=- Посмотреть сообщение
Код:
procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
begin
  ppDisp:=WebBrowser1.ControlInterface;
end;
Открывает в этом же окне ссылки.
Прекрасно!
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 01.01.2014, 13:17   #6
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Друзья) у меня проблемка) Вот смотрите. на сайте лежит только 1 <iframe> и у меня в программе только 1 веббраузер, моя задача, отображать только одну страничку но и тут то началось) не получается 1 код....
вот пример:

Код:
begin
cancel:=true;
   if (url<>'мой сайт где <iframe>') or (url='Сайт который я зафреймил') then cancel:=false;

end;
Но почему то при нажатии на кнопку у меня страница выходит пустая... в чем дела?
может есть другой способ? моя задача запрет клика в webbrowser запрет клика не только правой кнопки но левой кнопки мыши, (запрет правой кнопки я решил) просто у меня в браузере одна таблица есть и я бы хотел чтоб ее просто просматривали а не кликали по ней... заранее спасибо)
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 03.01.2014, 22:04   #7
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Отключить правую клавишу в WebBrowser:

Код:
...
private
...
procedure WMMouseActivate(var Msg: TMessage); message WM_MOUSEACTIVATE;
end;
...

Ставим обработчик для сообщения WM_MOUSEACTIVATE на уровне головной формы приложения.
Потом пишем процедуру: 


procedure TMainForm.WMMouseActivate(var Msg: TMessage);
begin
  try
    inherited;
    //Анализируем, какая кнопка мыши нажата
    if Msg.LParamHi = 516 then // если правая
      // показываем свое меню
      PopupMenu1.Popup(Mouse.CursorPos.x, Mouse.CursorPos.y);
    Msg.Result := 0;
  except
  end;
end;
Читнуть можно тут http://delphiworld.narod.ru/base/men...b_browser.html
Причём так же можно запретить и левую клавишу.
-=Virus=- вне форума Ответить с цитированием
Старый 04.01.2014, 10:40   #8
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от -=Virus=- Посмотреть сообщение
Отключить правую клавишу в WebBrowser:

Код:
...
private
...
procedure WMMouseActivate(var Msg: TMessage); message WM_MOUSEACTIVATE;
end;
...

Ставим обработчик для сообщения WM_MOUSEACTIVATE на уровне головной формы приложения.
Потом пишем процедуру: 


procedure TMainForm.WMMouseActivate(var Msg: TMessage);
begin
  try
    inherited;
    //Анализируем, какая кнопка мыши нажата
    if Msg.LParamHi = 516 then // если правая
      // показываем свое меню
      PopupMenu1.Popup(Mouse.CursorPos.x, Mouse.CursorPos.y);
    Msg.Result := 0;
  except
  end;
end;
Читнуть можно тут http://delphiworld.narod.ru/base/men...b_browser.html
Причём так же можно запретить и левую клавишу.
Спасибо, но мне левая нужна была) чет я перепутал)))) правую кнопку я отключил, ну меню мне там не надо.... Пробовал ставить прозрачную картинку по верх браузера говорили что поможет. Не помогло картинка всегда находится сзади но не по верху webbrowser...
Кстати вот еще вопрос как раз в тему, например есть webbrowser и внутри браузера есть ссылки, почему то не все открывают внутри этого браузера, почему? при клике выходит браузер IE хотелось бы запретить этот стандартный браузер и открывать в браузере по умолчанию... (код з знаю) а вот как запретить открытия ссылки в IE хз=)

Есть еще 1 момент, в браузере я убираю Scroll,
Код:
var d:olevariant;
begin
d := WebBrowser1.OleObject.document;
d.body.setAttribute('scroll', 'no');
end;
этот код я ставлю на
Код:
procedure TForm1.WebBrowser4NavigateComplete2(ASender: TObject;
  const pDisp: IDispatch; const URL: OleVariant);
но когда идет обновления страницы то у меня после обновления не убираются это скролы, ну понятно, я же ставил код на навигейт коплит, а как сделать чтоб после обновления страницы тоже работало все?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 04.01.2014, 14:59   #9
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Цитата:
Сообщение от Fahman Посмотреть сообщение
Спасибо, но мне левая нужна была) чет я перепутал)))) правую кнопку я отключил, ну меню мне там не надо....
Читать статью надо было выше.
Цитата:
Значение Msg.LparamHi показывает, какая кнопка нажата. 513 - нажата левая, 516 – нажата правая.

Цитата:
Кстати вот еще вопрос как раз в тему, например есть webbrowser и внутри браузера есть ссылки, почему то не все открывают внутри этого браузера, почему? при клике выходит браузер IE хотелось бы запретить этот стандартный браузер и открывать в браузере по умолчанию... (код з знаю) а вот как запретить открытия ссылки в IE хз=)
Я же выше писал про это.

Код:
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);

begin
  ppDisp := Webbrowser1.DefaultDispatch;
end;
-=Virus=- вне форума Ответить с цитированием
Старый 04.01.2014, 15:18   #10
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Цитата:
Сообщение от Fahman Посмотреть сообщение
Есть еще 1 момент, в браузере я убираю Scroll,
Код:
var d:olevariant;
begin
d := WebBrowser1.OleObject.document;
d.body.setAttribute('scroll', 'no');
end;
этот код я ставлю на
Код:
procedure TForm1.WebBrowser4NavigateComplete2(ASender: TObject;
  const pDisp: IDispatch; const URL: OleVariant);
но когда идет обновления страницы то у меня после обновления не убираются это скролы, ну понятно, я же ставил код на навигейт коплит, а как сделать чтоб после обновления страницы тоже работало все?
По моему DocumentComplete
-=Virus=- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текущий url webbrowser... goofc Общие вопросы Delphi 13 18.12.2011 13:48
Как узнать URL при открытии нового окна в webbrowser tovarz Компоненты Delphi 0 14.02.2011 15:08
Как запретить переход на определенный URL в Webbrowser? Marsel737 Общие вопросы Delphi 23 15.11.2009 19:19
как прописать url в webbrowser в с# hl_PrapoR HTML и CSS 1 12.04.2009 18:18
Запрет процессам при загрузке WebBrowser SibBear Общие вопросы Delphi 5 17.03.2009 12:30