Vb+html

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 17.07.2007 (Вт) 16:03

Хакер, если он не имеет доступа к фреймам то он и сделать там ничего не сможет
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 17.07.2007 (Вт) 16:39

не работает ни первое, ни второе.
А чем устанавливается этот доступ ко фреймам? Или его всегда нету?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.07.2007 (Вт) 17:42

Если src фрейма и src родителя одинаковы в отношении хоста, доступ не блокируется.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 18.07.2007 (Ср) 18:51

Чувствую, что истина где-то рядом, но совсем запутался.
У меня есть (VB6) файл dis.htm
Его надо по клику кнопки на форме открыть в браузере. Но я не знаю, какой браузер может быть установлен на других компьютерах (ослик, опера или лисичка....). Как обойти эту проблему?
Спасибо!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 18.07.2007 (Ср) 18:53

А зачем тебе знать? Тебе нужно показать в броузере по умолчанию? ShellExecutre поможет тебе.

Или тебе надо показать в каком-то конкретном броузере? Тогда и Shell и ShellExecute помогут тебе.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 18.07.2007 (Ср) 19:03

Хакер
Спасибо, Телепат!
Вот образец:
Shell "C:\windows\notepad.exe"

Формируя такую команду, мне все равно надо указывать имя экзешника....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 18.07.2007 (Ср) 22:17

Shell "cmd /c " + chr(34) + "start c:\boot.ini" + chr(34)
Посмори, что получится. Попробуй указать вместо c:\boot.ini путь к своей html...
label:
cli
jmp label

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 19.07.2007 (Чт) 9:44

iGrok
Спасибо, работает.
Но вот какая загогулина:


TDBGrid1.ExportToFile App.Path & "\Dis.html", False 'работает, создает файл в нужной директории

Shell "cmd /c " + Chr(34) + "start c:\Pedagog\Dis.html" + Chr(34) работает, запускает файл из той же директории, но путь - абсолютный

Shell "cmd /c " + Chr(34) + "Start App.Path & \Dis.html" + Chr(34) ' не работает, так как путь относительный.

Вероятно, я что-то не так с синтаксисом намудрил?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 19.07.2007 (Чт) 13:56

Угу. Намудрил. =)
Просто start не может понять, что это за путь такой:
"App.Path & \Dis.html"
Может, если написать его вот так, оно заработает? ,-)
Shell "cmd /c " + Chr(34) + "Start " + App.Path + "\Dis.html" + Chr(34)

Вообще, вот тебе универсальная штука (только для XP и W2k!):
Код: Выделить всё
Sub OpenFile(FilePath as String)
    Shell "cmd /c " + chr(34) + "start " + FilePath + Chr(34)
End Sub
label:
cli
jmp label

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 19.07.2007 (Чт) 15:05

iGrok
Вот тебе огромное СПАСИБО! Ты мне сэкономил кучу времени...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 19.07.2007 (Чт) 20:00

Summer.05

А чем тебя ShellExecutre не устраивает?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 19.07.2007 (Чт) 20:31

Хакер
Дружище, я совсем запутался в синтаксисе и полдня мучался. Так и не разобрался. А iGrok дал мне такой синтаксис, который сразу заработал. Вот я и решил остановиться пока....
Тебе спасибо за внимание!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 19.07.2007 (Чт) 21:48

На будущее - ты ShellExecute все-таки поизучай..
ShellExecute, конечно, правильнее. =)

З.Ы. И чего тут сложного?
Чутка переделанный пример из API-Guide...
Код: Выделить всё
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Const SW_SHOWNORMAL = 1
Sub ShellStart(FileName As String, Optional Path As String = "c:\")
    ShellExecute 0, vbNullString, FileName, vbNullString, Path, SW_SHOWNORMAL
End Sub
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 19.07.2007 (Чт) 23:20

Summer.05
Игрок дал тебе квази-универсальный способ. Если универсальностью считается работа только под XP и Win2k - я промолчу, и тихо так уйду из этой темы.

Если под универсальностью понимается действительно универсальность (т.е. факт того, что код будет работать начиная с Win95 и заканчивая WinVist-ой.) - то следует юзать ShellExecute.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 19.07.2007 (Чт) 23:50

Хакер, под Вистой я его просто не проверял. Вообще, эта штука должна работать под всеми NT-Like ОСями.. Честно говоря, я уже давно не забочусь о совместимости с Win9x / Me. Только в исключительных случаях. А то так и до Win3.1+win32 недалеко..

Нет, я с тобой не спорю. Это не универсальный способ.
Универсальный я вывесил следующим постом =)
label:
cli
jmp label

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 20.07.2007 (Пт) 14:57

Хакер
iGrok
Спасибо Вам!
Буду изучать, но только после отпуска. До сентября!

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 05.08.2007 (Вс) 11:19

а как отправить форму? пробовал

document.all("имя_формы").submit
document.all("имя_кнопки").click
document.all("имя_кнопки").submit
document.getelemetsbyname("имя формы").submit
document.getelemetsbyname("имя кнопки").click

не работет..

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.08.2007 (Вс) 11:23

document.all["имя_формы"].submit();
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 05.08.2007 (Вс) 11:32

WebTr.Document.All ["frmlogin"].Submit()

"Необходии объект"

форма вот: <form method="post" action="/login.php" name=frmlogin>
кнопка вот: <input type="submit" name="try_login" value="Вход">

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.08.2007 (Вс) 11:41

Блин. Ну кто ж знал что у тебя там VB?.

Ты написал
document.foo.bar

Такой вид записи ( не WB.Document а просто document) характерен для JS.

Если у тебя VB, поставь обратно квадратные скобки.

WB.Document.Forms("frmlogin").Submit()
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 05.08.2007 (Вс) 11:44

я вот тоже удивился :)

мм.. а Submit и submit это не одно и то же?

Теперь после сабмита остаётся только введёный логин, пароль пропадает.. хотя до сабминта пароль в поле есть.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.08.2007 (Вс) 11:51

ну вообще метод называется submit. Но имена методов case insensitive...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 05.08.2007 (Вс) 11:59

ясн. Так, ну раз после сабмита без ошибки пропадает пароль, значит сам метод сработал и ошибка в другом?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.08.2007 (Вс) 12:01

Ну может там стоит событие onsubmit, которое мешает?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 05.08.2007 (Вс) 12:09

неа, только онлоад фокус кидает в поле с логином. Причём если далее ввести пароль и нажать на кнопку самому - логинится нормально..
и если ввести неправильный пароль - не выдаёт ошибки.

Как бы нажать на кнопку не отправляя формы? у неё ID нету. вот код <input type="submit" name="try_login" value="Вход">

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.08.2007 (Вс) 18:11

у неё индекс есть.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 05.08.2007 (Вс) 19:07

all(GetIndexByName).click или как?) если б были видны все доступные свойства..

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.08.2007 (Вс) 19:18

nekeda
подключи Microsoft HTML Object Library и все доступные свойства откроются тебе.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 05.08.2007 (Вс) 20:17

Код: Выделить всё
For i = 0 To WebTr.Document.All.Length - 1
If WebTr.Document.All(i).name = "try_login" Then WebTr.Document.All(i).Click: Exit For
Next


ещё вот так пробовал..

Код: Выделить всё
For Each Elem In WebTr.Document.All
  If Elem.Name = "try_login" Then
    Elem.Click
  Exit For
  End If
Next


пробовал не .click а .submit; пробовал искать не по имени, а по типу "submit".. Обджект стилл дазнт суппорт зыс проперти ор метод )

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.08.2007 (Вс) 20:19

nekeda
А какого типа Elem ?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Пред.След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 95

    TopList