Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Правая кнопка мыши Добавлено: 23.09.05 13:16  

Автор вопроса:  AnDReW | ICQ: 967300 
Я создал форму и вней поместил окно браузера, ну и прописал там нужный адрес.....
Как сделать чтоб не работала правая кнопка в окне браузера средствами VB ?

Ответить

  Ответы Всего ответов: 19  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 23.09.05 15:34
Проще средствами JS

Ответить

Номер ответа: 2
Автор ответа:
 AnDReW



ICQ: 967300 

Вопросов: 4
Ответов: 8
 Профиль | | #2 Добавлено: 23.09.05 15:41
знаю что проще .... но нужно VB

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 23.09.05 16:43
что мешает программно к твоей странице, в конец добавить небольшой <script>...</script> ?

Ответить

Номер ответа: 4
Автор ответа:
 AnDReW



ICQ: 967300 

Вопросов: 4
Ответов: 8
 Профиль | | #4 Добавлено: 23.09.05 16:48
как?

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 23.09.05 22:11
ну адрес открываемой странице известен, далее...



file$ = "C:\1.htm"

txt$ = "<script LANGUAGE=" & Chr$(34) & "JavaScript" & Chr$(34) & ">" & vbCrLf
txt$ = txt$ & " function right(e){" & vbCrLf
txt$ = txt$ & "  if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2)){" & vbCrLf
txt$ = txt$ & "   alert(" & Chr$(34) & "Ещё раз нажмёшь - оторвёт палец!" & Chr$(34) & ";);" & vbCrLf
txt$ = txt$ & "   return false;" & vbCrLf
txt$ = txt$ & "  }else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button" & vbCrLf
txt$ = txt$ & " == 3)){" & vbCrLf
txt$ = txt$ & "   alert(" & Chr$(34) & "Ещё раз нажмёшь - оторвёт палец!" & Chr$(34) & ";);" & vbCrLf
txt$ = txt$ & "   return false;" & vbCrLf
txt$ = txt$ & "  }return true;}" & vbCrLf
txt$ = txt$ & "document.onmousedown=right;" & vbCrLf
txt$ = txt$ & "if (document.layers) window.captureEvents(Event.MOUSEDOWN);" & vbCrLf
txt$ = txt$ & "window.onmousedown=right;" & vbCrLf
txt$ = txt$ & "</script>"

n = FreeFile
Open file$ for Append as #n
print #n, txt$
Close #1


и только потом уже
WebBrowser1.Navigate file$

Ответить

Номер ответа: 6
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #6 Добавлено: 23.09.05 22:12
Close #n !

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 23.09.05 23:52
Оторвет палец - это сильно :)) Можно еще попробовать сабклассинг с WM_RMOUSEDOWN

Ответить

Номер ответа: 8
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 24.09.05 00:27
нелюблю я чё то сабклассинг, даже не потому что плохо разбираюсь в нём. Сабклассинг это как правило много кода, много глюков, бока с отладкой в IDE итп... Всегда стараюсь искать альтернативу.

Ответить

Номер ответа: 9
Автор ответа:
 AnDReW



ICQ: 967300 

Вопросов: 4
Ответов: 8
 Профиль | | #9 Добавлено: 24.09.05 10:58
браузер будет грузить интернет страничку ..... а не открывать из файла .... т.е. например http://yandex.ru

Ответить

Номер ответа: 10
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #10 Добавлено: 24.09.05 14:30
тогда чуть сложнее, после загрузки страницы в браузер, грузим в переменную html текст страницы, добавляем к переменной наш JS скрипт, и пихаем обратно получившися html код в браузер. Теперь о реализации:

WebBrowser1.Document.Write txt$
(txt$ - HTML код)
Загружает страницу не из файла а из переменной
-----------------
WebBrowser1.Document.documentelement.innerhtml
или WebBrowser1.Document.Body.innerhtml

возвращает в переменную html код загруженной страницы
------------------
WebBrowser1.Status
возвращает что браузер делает в данный момент
------------------
Извиняйте если где-то ошибся в синтаксисе, писал по памяти...

ВАРИАНТ 2
Суть: Мы можем отслеживать хендел над которым сейчас мышь, можем определять какая кнопка мыши нажата, всё это даже вне нашего приложение. Соответственно, таймером ждём нажатия правой кнопки мыши, при нажатии сравниваем хендел под которым сейчас мышь и хендел нашего WebBrowser, если они равны значит кликнули правой мышью по нашему WebBrowser и вылезло меню, тогда мы программно нажмём (Esc) и меню залезит обратно :)

Ответить

Номер ответа: 11
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #11
Добавлено: 24.09.05 19:57
таймером ждём нажатия правой кнопки мыши
Только не это! :)

Ответить

Номер ответа: 12
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #12 Добавлено: 24.09.05 21:44
ну тада хук...

Ответить

Номер ответа: 13
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #13
Добавлено: 24.09.05 22:13
Х@#$ю вы какую-то несёте, господа! Просто должен же быть способ попроще! Как вызвать Popup в TextBox? И разве что-то похожее нельзя в IE? Чушь!

Ответить

Номер ответа: 14
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #14
Добавлено: 24.09.05 22:48
Вроде не попап нужен, а его убрать нужно

Ответить

Номер ответа: 15
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #15
Добавлено: 25.09.05 12:33
:) Sorry.. Тогда сабклассинг с WM_RMOUSEDOWN...

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам