Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Программное заполнение формы и нажатие кнопки... Добавлено: 02.02.10 22:05  

Автор вопроса:  @lex
Подскажите пожалуйста как можно программно заполнить форму и\или нажать на кнопку на сайте?)
Пример http://www.google.ru/
Заполнить строку поиска и нажать кнопку "Поиск в Google" ("http://www.google.ru/search?hl=ru&q=" & "текст запроса" не предлогать, Google я выбрал просто для примера)
Используя средства VB (если такие есть) или с использованием сторонних контролы типа MSHTL и WebBrowser - неважно)

з.ы. VB6

Ответить

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

Номер ответа: 1
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #1 Добавлено: 02.02.10 22:08

Offtop:
приделайте к сайту редактирование постов Х_х

контролов* MSHTML*

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #2
Добавлено: 02.02.10 23:52
Не знаю поможет ли это, но я как-то раз делал спид-диал для браузера, и его html-код был примерно таким:
  1. Private Const template1 As String = _
  2. "<html><head><title>Speed Dial</title></head><body>" & vbNewLine & _
  3. "<table width=""400"" cellspacing=""0"" cellpadding=""0"" align=""center"">" & vbNewLine & _
  4. "<tr><td align=""middle"">" & vbNewLine & _
  5. "    <FORM method=GET action=""http://www.google.com/search"">" & vbNewLine & _
  6. "    <input type=hidden name=ie value=UTF-8>" & vbNewLine & _
  7. "    <input type=hidden name=oe value=UTF-8>" & vbNewLine & _
  8. "    <TABLE bgcolor=""#FFFFFF""><tr><td>" & vbNewLine & _
  9. "    <A HREF=""http://www.google.com/"">" & vbNewLine & _
  10. "    <IMG SRC=""http://www.google.com/logos/Logo_40wht.gif""" & vbNewLine & _
  11. "    border=""0"" ALT=""Google""></A>" & vbNewLine & _
  12. "    </td>" & vbNewLine & "    <td>" & vbNewLine & _
  13. "    <INPUT TYPE=text name=q size=31 maxlength=255 value="""">" & vbNewLine & _
  14. "    </td></tr></TABLE>" & vbNewLine & "    </FORM>" & vbNewLine & _
  15. "</td></tr>" & vbNewLine & _
  16. "<table width=""400"" cellspacing=""0"" cellpadding=""0"" align=""center"">" & vbNewLine & _
  17. "    <tr><td align=""middle""><table width=""400"" cellspacing=""10"" cellpadding=""0"" align=""center""><tr><td align=""middle"">" & vbNewLine & _
  18. "        <a href=""http://iichan.ru/to"" title=""IIchan.ru - /to/""><img src=""%1data/spd_pic_1.png"" border=""0""></a>" & vbNewLine & _
  19. "        <a href=""http://touhou.ru"" title=""Touhou.ru""><img src=""%1data/spd_pic_2.png"" border=""0""></a>" & vbNewLine & _
  20. "        <a href=""http://ru.touhou.wikia.com"" title=""Touhou Wiki""><img src=""%1data/spd_pic_3.png"" border=""0""></a></td></tr>" & vbNewLine & _
  21. "    </table></td></tr>" & vbNewLine & _
  22. "</table>" & vbNewLine & "</br>" & vbNewLine
Собственно тут есть поиск в гугле

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #3
Добавлено: 03.02.10 00:04
А тут я значит писал аплоадер для файлхостингов http://vbnet.ru/forum/show.aspx?id=200750 Лейтест вершн которого лежит тут https://sourceforge.net/projects/audica/files/
Так я к чему всё это... Юз Get энд Post, Люк.

Ответить

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



Вопросов: 4
Ответов: 330
 Профиль | | #4 Добавлено: 09.02.10 22:09
в голову тока приходит 2 варианта:
1.
  1.  
  2. AppActivate "iE"
  3. SendKeys "{TAB}"
  4. SendKeys "{ENTER}"



2.
Этот способ я использую для автоматического входа (вводит пароль) в скайп
пример перечислет все что имеет хэндл на форме и в нужный введет текст
  1.  
  2. ' в форму
  3. Option Explicit
  4.  
  5. Private Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
  6.  
  7. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  8. Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
  9. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
  10. Private Declare Function SendMessageStr Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
  11. Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  12.  
  13. Private Const WM_KEYDOWN = &H100
  14. Private Const WM_GETTEXT = &HD
  15. Private Const WM_SETTEXT = &HC
  16. Private Const WM_SETFOCUS = &H7
  17. Private Const WM_GETTEXTLENGTH = &HE
  18.  
  19. Dim M() As String
  20. Dim lCount As Long
  21.  
  22.  
  23. Private Sub Form_Load()
  24. On Error Resume Next
  25. If App.PrevInstance = True Then End
  26. App.TaskVisible = False
  27. Me.Visible = False
  28.  
  29. If Dir(App.Path & "\Skype\shared.lck") <> vbNullString Then
  30.     Shell App.Path & "\Skype.exe", vbNormalFocus
  31.     Unload Me
  32.     End
  33. Else
  34.     Shell App.Path & "\Skype.exe", vbNormalFocus
  35.  
  36.     Dim chldWnd As Long
  37.     ReDim M(10)
  38.     lCount = 0
  39.     Timer1.Enabled = True
  40. End If
  41. End Sub
  42.  
  43. Private Sub Timer1_Timer()
  44. On Error Resume Next
  45. Dim lhwnd As Long
  46. Dim M4 As Long
  47. Dim M5 As Long
  48. ReDim M(10)
  49. lCount = 0
  50. lhwnd = 0
  51. M4 = 0
  52. M5 = 0
  53. lhwnd = FindWindow("TLoginForm.UnicodeClass", "Skype")
  54.     If lhwnd > 0 Then
  55.         EnumChildWindows lhwnd, AddressOf ChildWindowProc, 0
  56.         If lCount = 6 Then
  57.             M5 = M(5)
  58.             If GetWindowText(M5) <> vbNullString Then
  59.                 M4 = M(4)
  60.                 SetWindowText M4, "Пароль"
  61.                 ' ENTER
  62.                 PostMessage lhwnd, WM_KEYDOWN, 13, 0
  63.                 Unload Me
  64.                 End
  65.             End If
  66.         End If
  67.     End If
  68. End Sub
  69.  
  70. Private Sub Timer2_Timer()
  71. On Error Resume Next
  72. End
  73. End Sub
  74.  
  75.  
  76. Private Function GetWindowText(window_hwnd As Long) As String
  77. On Error Resume Next
  78. Dim lTextLen As Long
  79. Dim sText As String
  80. If window_hwnd = 0 Then Exit Function
  81. lTextLen = SendMessage(window_hwnd, WM_GETTEXTLENGTH, 0, 0)
  82. If lTextLen = 0 Then Exit Function
  83. lTextLen = lTextLen + 1
  84. sText = Space$(lTextLen)
  85. lTextLen = SendMessageStr(window_hwnd, WM_GETTEXT, lTextLen, ByVal sText)
  86. GetWindowText = sText
  87. End Function
  88.  
  89.  
  90. Private Function SetWindowText(window_hwnd As Long, sNewText As String) As Long
  91. On Error Resume Next
  92. If window_hwnd = 0 Then Exit Function
  93. Dim lRetSend As Long
  94. lRetSend = SendMessageStr(window_hwnd, WM_SETTEXT, 0, ByVal sNewText)
  95. SetWindowText = lRetSend
  96. End Function
  97.  
  98. Private Function ChildWindowProc(ByVal hwnd As Long, ByVal lp As Long) As Long
  99. On Error Resume Next
  100. lCount = lCount + 1
  101. M(lCount) = hwnd
  102. ChildWindowProc = 1
  103. End Function



  1.  
  2. ' в модуль
  3. Option Explicit
  4.  
  5.  
  6. Public Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
  7.  
  8. Public M() As String
  9. Public lCount As Long
  10.  
  11. Public Function ChildWindowProc(ByVal hwnd As Long, ByVal lp As Long) As Long
  12. On Error Resume Next
  13. lCount = lCount + 1
  14. M(lCount) = hwnd
  15. ChildWindowProc = 1
  16. End Function

Ответить

Страница: 1 |

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



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