Страница: 1 | 2 |
Вопрос: Правая кнопка мыши
Добавлено: 23.09.05 13:16
Автор вопроса: AnDReW | ICQ: 967300
Я создал форму и вней поместил окно браузера, ну и прописал там нужный адрес.....
Как сделать чтоб не работала правая кнопка в окне браузера средствами VB ?
Ответы
Всего ответов: 19
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #13
Добавлено: 24.09.05 22:13
Х@#$ю вы какую-то несёте, господа! Просто должен же быть способ попроще! Как вызвать Popup в TextBox? И разве что-то похожее нельзя в IE? Чушь!
Номер ответа: 14
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #14
Добавлено: 24.09.05 22:48
Вроде не попап нужен, а его убрать нужно
Номер ответа: 15
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #15
Добавлено: 25.09.05 12:33
Sorry.. Тогда сабклассинг с WM_RMOUSEDOWN...