Программно найти окно скайпа - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день! Я не силен в таких вещах, помогите мне программно найти окно скайпа.

Решение задачи: «Программно найти окно скайпа»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. ' Ïðèìåð ïðîãðГ*ììГ*îãî ïîäêëþ÷åГ*ГЁГї Skype
  4. ' © Êðèâîóñ ГЂГ*Г*òîëèé ГЂГ*Г*òîëüåâè÷ (The trick), 2014
  5.  
  6. Private Const IID_IDispatch     As String = "{00020400-0000-0000-C000-000000000046}"
  7. Private Const IID_IHTMLElement  As String = "{3050f1ff-98b5-11cf-bb82-00aa00bdce0b}"
  8.  
  9. Private Const OBJID_CLIENT      As Long = -4
  10.  
  11. Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExW" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As Long, ByVal lpsz2 As Long) As Long
  12. Private Declare Function AccessibleObjectFromWindow Lib "oleacc" (ByVal hwnd As Long, ByVal dwId As Long, ByRef riid As UUID, ByRef ppvObject As Object) As Long
  13. Private Declare Function IIDFromString Lib "ole32" (ByVal lpsz As Long, ByRef lpiid As UUID) As Long
  14. Private Declare Function GetMem4 Lib "msvbvm60" (Src As Any, Dst As Any) As Long
  15.  
  16. Private Sub Form_Load()
  17.     Dim ieWnd       As Long                         ' ГЋГЄГ*Г* Г±ГЄГ*éïГ*
  18.    Dim i           As Long                         ' Ñ÷åò÷èê
  19.    Dim IEObj       As Object                       ' ГЋГЎГєГҐГЄГІ IHTMLElement
  20.    Dim DispUUID    As UUID                         ' UIID IDispatch
  21.    Dim HTMLUUID    As UUID                         ' UIID IHTMLElement
  22.    Dim srv         As olelib2.IServiceProvider     ' Äëÿ äîñòóïГ* ГЄ IHTMLElement
  23.    Dim Elem        As Object                       ' Òåëî HTML äîêóìåГ*ГІГ*
  24.    Dim logn        As Object                       ' Ïîëå ââîäГ* ëîãèГ*Г*
  25.    Dim pswd        As Object                       ' Ïîëå ââîäГ* ГЇГ*ðîëÿ
  26.    Dim btn         As Object                       ' ГЉГ*îïêГ* âõîäГ*
  27.    ' Г‡Г*ïîëГ*ГїГҐГ¬ UIID'Г»
  28.    IIDFromString StrPtr(IID_IDispatch), DispUUID
  29.     IIDFromString StrPtr(IID_IHTMLElement), HTMLUUID
  30.     ' ГЌГ*õîäèì Г*ГіГ¦Г*îå Г*Г*Г¬ îêГ*Г®
  31.    For i = 0 To 5
  32.         ieWnd = FindWindowEx(ieWnd, 0, StrPtr(Choose(i + 1, _
  33.                 "TLoginForm", "TLoginControl", "TBrowserControl", _
  34.                 "Shell Embedding", "Shell DocObject View", "Internet Explorer_Server")), 0)
  35.     Next
  36.     ' Ïîëó÷Г*ГҐГ¬ ññûëêó Г*Г* ГЁГ*òåðôåéñ IAccessible, äëÿ äîñòóïГ* ГЄ ýëåìåГ*ГІГ*Г¬ Г±ГІГ°Г*Г*ГЁГ¶Г»
  37.    If AccessibleObjectFromWindow(ieWnd, OBJID_CLIENT, DispUUID, IEObj) Then
  38.         MsgBox "error": Exit Sub
  39.     End If
  40.     ' Ïîëó÷Г*ГҐГ¬ òåëî äîêóìåГ*ГІГ*
  41.    Set srv = IEObj.accChild(CVar(CLng(0)))
  42.     ' Г‡Г*ГЇГ°Г*ГёГЁГўГ*ГҐГ¬ ГЁГ*òåðôåéñ IHTMLElement äëÿ äîñòóïГ* ГЄ ñâîéñòâГ*Г¬ ГІГҐГ«Г* <BODY>
  43.    srv.QueryService HTMLUUID, DispUUID, i
  44.     GetMem4 i, ByVal VarPtr(Elem)
  45.     ' Ââîäèì ëîãèГ*
  46.    Set logn = Elem.All("username")
  47.     logn.Value = "The trick"
  48.     ' Ââîäèì ГЇГ*ðîëü
  49.    Set pswd = Elem.All("password")
  50.     pswd.Value = "My password"
  51.     ' ГЌГ*æèìГ*ГҐГ¬ ГЄГ*îïêó
  52.    Set btn = Elem.All("buttonSignIn")
  53.     btn.focus
  54.     btn.Click
  55.     ' ГЋГ·ГЁГ±ГІГЄГ*
  56.    Set Elem = Nothing
  57.     Set btn = Nothing
  58.     Set pswd = Nothing
  59.     Set logn = Nothing
  60. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы