Помогите разобраться

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

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 0:55

Код: Выделить всё
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, Url As Variant)
  Set Page = WebBrowser1.Document
End Sub
а на что смотреть?

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 0:57

theal писал(а):а на что смотреть?

На него собственно.

theal писал(а):[icode] Set Page = WebBrowser1.Document

Что это???

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 0:59

Код: Выделить всё
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, Url As Variant)

      If e.Url.toString().StartsWith("http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-7481866188445527&output=html&h=280&slotname=3682958945&w=336&lmt=1358106654&ea=0&flash=11.6.602.137&url=http://porschecayenneauto.narod.ru/&dt=1358106654391&shv=r20130102&jsv=r20121214&saldr=1&correlator=1358106654415&frm=20&adk=1656017953&ga_vid=1066074885.1358106654&ga_sid=1358106654&ga_hid=606056404&ga_fc=0&u_tz=240&u_his=0&u_java=1&u_h=1080&u_w=1920&u_ah=1050&u_aw=1920&u_cd=32&u_nplug=0&u_nmime=0&dff=arial&dfs=0&adx=0&ady=0&biw=1903&bih=1028&oid=3&docm=7&fu=0&ifi=1&dtd=32") Then
        If Not GoogleAdd Then
          GoogleAdd = True
          Webbrowser1.Navigate (e.Url)
        Else
          For Each Link In Webbrowser1.Document.links
            If MsgBox(Link.getAttribute("href"), vbYesNo, "Do you want to click it?") = MsgBoxResult.Yes Then
              Link.InvokeMember ("click")
              Exit For
            End If
          Next Link
        End If
      End If
    End Sub

End Sub
не то? сам понимаю что не то
Последний раз редактировалось theal 14.01.2013 (Пн) 1:03, всего редактировалось 1 раз.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 1:03

theal писал(а):не то?

По крайней мере код там где нужно. Но твоё изменение условия в if неверное.
К тому же, это не будет работать в таком виде из-за использования VB.NET-действий.
Продолжай исправлять.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 1:04

в каких строках надо менять?

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 1:06

theal писал(а):в каких строках надо менять?

Во всех, где среда показывает ошибки. В том числе при выполнении.
Кстати, ты Option Explicit написать не забыл?

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 1:08

сейчас вписал...только не знаю на что исправить GoogleAdd

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 1:11

theal писал(а):только не знаю на что исправить GoogleAdd

А это-то зачем исправлять? Булевские переменные вполне существуют.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 1:12

на этой записи ошибку выдаёт variable not defined

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 1:17

theal писал(а):на этой записи ошибку выдаёт variable not defined

Значит её надо объявить. У меня-то она объявлена.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 1:19

проверь пожалуйста что не так
Код: Выделить всё
Option Explicit
Private GoogleAdd As Boolean
Dim testlink
Private Sub Command1_Click()

        If GoogleAdd = False Then
          GoogleAdd = True
          Web.Navigate "http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-7481866188445527&output=html&h=280&slotname=3682958945&w=336&lmt=1358106654&ea=0&flash=11.6.602.137&url=http://porschecayenneauto.narod.ru/&dt=1358106654391&shv=r20130102&jsv=r20121214&saldr=1&correlator=1358106654415&frm=20&adk=1656017953&ga_vid=1066074885.1358106654&ga_sid=1358106654&ga_hid=606056404&ga_fc=0&u_tz=240&u_his=0&u_java=1&u_h=1080&u_w=1920&u_ah=1050&u_aw=1920&u_cd=32&u_nplug=0&u_nmime=0&dff=arial&dfs=0&adx=0&ady=0&biw=1903&bih=1028&oid=3&docm=7&fu=0&ifi=1&dtd=32"
        Else
          For Each testlink In Web.Document.links
            If MsgBox(testlink.getAttribute("href"), vbYesNo, "Do you want to click it?") Then
              testlink.Click
              Exit For
            End If
          Next testlink
        End If
     
End Sub



Private Sub Form_Load()
Web.Navigate "http://porschecayenneauto.narod.ru/"
      End Sub
Private Sub WebB_DocumentComplete(ByVal pDisp As Object, Url As Variant)
If GoogleAdd = False Then
          GoogleAdd = True
          Web.Navigate "http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-7481866188445527&output=html&h=280&slotname=3682958945&w=336&lmt=1358106654&ea=0&flash=11.6.602.137&url=http://porschecayenneauto.narod.ru/&dt=1358106654391&shv=r20130102&jsv=r20121214&saldr=1&correlator=1358106654415&frm=20&adk=1656017953&ga_vid=1066074885.1358106654&ga_sid=1358106654&ga_hid=606056404&ga_fc=0&u_tz=240&u_his=0&u_java=1&u_h=1080&u_w=1920&u_ah=1050&u_aw=1920&u_cd=32&u_nplug=0&u_nmime=0&dff=arial&dfs=0&adx=0&ady=0&biw=1903&bih=1028&oid=3&docm=7&fu=0&ifi=1&dtd=32"
        Else
          For Each testlink In Web.Document.links
            If MsgBox(testlink.getAttribute("href"), vbYesNo, "Do you want to click it?") Then
              testlink.Click
              Exit For
            End If
          Next testlink
        End If
    End Sub


в принципе клик получился, но может какие ошибки есть?
Последний раз редактировалось theal 14.01.2013 (Пн) 1:33, всего редактировалось 1 раз.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 1:33

theal писал(а):проверь пожалуйста что не так

Да почти всё не так. Ты будешь думать или нет? Сделай как у меня пропустив куски про реестр и WinApi.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 1:35

блин...если честно ----я не знаю как

Код: Выделить всё
'imports System.Text

    'Public Class Form1

    'Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Long
    'Public Const WM_SETTINGCHANGE As Integer = &H1A

    'Private IEOptions As Microsoft.Win32.RegistryKey = Nothing, Images As Object = Nothing
    Private GoogleAdd As Boolean
Это разве нужно?
Последний раз редактировалось theal 14.01.2013 (Пн) 1:44, всего редактировалось 1 раз.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 1:40

theal писал(а):Это разве нужно?

Там всё нужно, кроме реестра и WinApi.
И особенно, там нужна проверка url, которую ты удалил. И не нужна обработка клика. И не нужно менять url на то, что у тебя.
То, что ты закомментировал - можешь убрать.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 1:43

что это?
Код: Выделить всё
imports System.Text
Public Class Form1
Public Const WM_SETTINGCHANGE As Integer = &H1A

    Private IEOptions As Microsoft.Win32.RegistryKey = Nothing, Images As Object = Nothing
Последний раз редактировалось theal 14.01.2013 (Пн) 1:57, всего редактировалось 1 раз.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 1:47

если не трудно отметь где убрать.Или убери сам.Я действительно не знаю что убирать и на что менять
ПОЖАЛУЙСТА

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 1:54

theal писал(а):здесь ошибки пишет

Это не надо:
Qwertiy писал(а):То, что ты закомментировал - можешь убрать.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 2:02

Код: Выделить всё
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

это менять на private sub form load() ?
a с этим что,?
Код: Выделить всё
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Long
Последний раз редактировалось theal 14.01.2013 (Пн) 2:10, всего редактировалось 1 раз.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 2:09

theal писал(а):
Код: Выделить всё
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

это менять на private sub form load() ?
a с этим что,?Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Long

Я уже отвечал на оба вопроса.
1. Да.
2. Убрать.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 2:12

Код: Выделить всё
Private Sub Form_Load() 'Handles MyBase.Load
      '  Try
        '  IEOptions = My.Computer.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Internet Explorer\Main", True)
        '  images = IEOptions.GetValue("Display Inline Images")
        '  SendMessage(Web.Handle, WM_SETTINGCHANGE, 0, 0)
     '   Catch Ex As Exception
        '  MsgBox (Ex.Message)
      ' End Try

      Web.Navigate ("http://porschecayenneauto.narod.ru/")
      GoogleAdd = False
    End Sub
правильно отключил?
Последний раз редактировалось theal 14.01.2013 (Пн) 2:17, всего редактировалось 1 раз.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 2:14

Код: Выделить всё
Private Sub Form_FormClose() 'ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormCloseEventArgs) 'Handles MyBase.FormClosed
      If IEOptions IsNot Nothing Then IEOptions.SetValue("Display Inline Images", Images)
      End
    End Sub
с этим не знаю что делать

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 2:25

theal писал(а):правильно отключил?

Да.

theal писал(а):с этим не знаю что делать

Работу с реестром - убрать.
В необходимости End я не уверен в принципе, он стоит на всякий случай, можешь оставить, если не мешает.

PS: Я спать пошёл. Выложи код, утром гляну.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 2:33

Код: Выделить всё
Option Explicit

   
    Dim testlink
    Private GoogleAdd As Boolean

    Private Sub Form_Load()
     
      Web.Navigate ("http://porschecayenneauto.narod.ru/")
      GoogleAdd = False
    End Sub

   

    Private Sub Web_DocumentComplete(ByVal pDisp As Object, Url As Variant) 'Handles Web.DocumentCompleted
      If Web.Document.Url = ("http://googleads.g.doubleclick.net/pagead/ads") Then
        If Not GoogleAdd Then
          GoogleAdd = True
          Web.Navigate (Url)
        Else
          For Each testlink In Web.Document.links
             testlink.Click
              Exit For
          Next testlink
        End If
      End If
    End Sub

Только он не работает

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 7:48

theal писал(а):Только он не работает

Потому что проверка
theal писал(а):If Web.Document.Url = ("http://googleads.g.doubleclick.net/pagead/ads") Then
неправильная сразу по двум причинам - не то сравниваешь (у меня не Document.Url) и не так сравниваешь (у меня не на равенство проверка).
А вот во втором месте поменял верно. Это что перебор такой - "где-нибудь да угадаю"?

theal писал(а):testlink.Click

Всё-таки вывел бы MsgBox'ик посмотреть :)
Там лишние будут.
Но в данный момент у тебя вообще в первый if никогда не заходит.

Qwertiy, theal писал(а):
Код: Выделить всё
      Web.Navigate ("http://porschecayenneauto.narod.ru/")
      GoogleAdd = False

На самом деле, эти строки надо поменять местами, хотя ни на что существенно не влияет. Во-первых, она и так False при инициализации, а во-вторых, DocumentComplete скорее всего не выполнится до этого присваивания.

theal писал(а):    Dim testlink

Зачем объявлять её как переменную формы?

PS: Напоминаю, что в VB6 скобки у вызовов процедур не ставятся, отсюда у тебя перед ними пробел появиялся, показывающий, что аргумент интерпретируются как выражение, а не как переменная.
Последний раз редактировалось Qwertiy 14.01.2013 (Пн) 9:23, всего редактировалось 1 раз.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Помогите разобраться

Сообщение NashRus » 14.01.2013 (Пн) 9:03

theal, чувак тебя гугл спалит, обязательно спалит
и забанит на всю жизнь и правильно сделает.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 9:20

NashRus писал(а):гугл спалит, обязательно спалит

Во-первых, как он узнает, если только в него не залогиниться? А во-вторых, зачем ему это надо? Он же деньги за рекламу получает, а не платит.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 10:33

Объясни пожалуйста с этой строкой
Код: Выделить всё
If Web.Document.Url = ("http://googleads.g.doubleclick.net/pagead/ads") Then
надо убрать знак равенства?

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.01.2013 (Пн) 10:37

theal писал(а):Объясни пожалуйста с этой строкой
Код: Выделить всё
If Web.Document.Url = ("http://googleads.g.doubleclick.net/pagead/ads") Then
надо убрать знак равенства?

Читай:
Qwertiy писал(а):неправильная сразу по двум причинам - не то сравниваешь (у меня не Document.Url) и не так сравниваешь (у меня не на равенство проверка).

Qwertiy писал(а):
theal писал(а):ЧТО ЗНАЧИТ,.?
If e.Url.toString().StartsWith("http://googleads.g.doubleclick.net/pagead/ads") Then

Если url, загрузка которого завершилась, как строка начинается с "http://googleads.g.doubleclick.net/pagead/ads", то ...

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Помогите разобраться

Сообщение theal » 14.01.2013 (Пн) 10:42

Код: Выделить всё
If Web.Document.Url.startwith("http://googleads.g.doubleclick.net/pagead/ads") Then
как заменить startwith
private testlink ?
так опять не то
Код: Выделить всё
If Web.Document.Ur.ltoString().startswith("http://googleads.g.doubleclick.net/pagead/ads") Then
Последний раз редактировалось theal 14.01.2013 (Пн) 11:18, всего редактировалось 1 раз.

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

Re: Помогите разобраться

Сообщение Хакер » 14.01.2013 (Пн) 10:57

theal писал(а):как заменить startwidth

Брось заниматься фигнёй.
Выучи английский.
Потом возвращайся.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Пред.След.

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

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

Сейчас этот форум просматривают: Google-бот, Majestic-12 [Bot] и гости: 73

    TopList