Skype API - как обойти подтверждение

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by two2off, 8 May 2010.

  1. two2off

    two2off New Member

    Joined:
    8 May 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Кто-нибудь знает как обойти подтверждение Скайпа на использование приложения, использующего Skype API? Методами Skype API, скорее всего, никак, но может кто знает другое решение?
     
  2. two2off

    two2off New Member

    Joined:
    8 May 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Простите, лоханулся. Была тема
    https://forum.antichat.ru/thread198629.html
     
  3. AlexTheC0d3r

    AlexTheC0d3r Elder - Старейшина

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18
    все оооочень легко
     
  4. two2off

    two2off New Member

    Joined:
    8 May 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Слушайте, я правильно понимаю, что аттачится к скайпу нужно в отдельном потоке? Не могли бы вы код забросить, если не сложно. С АПИ-функциями вместе
     
  5. AlexTheC0d3r

    AlexTheC0d3r Elder - Старейшина

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18
    зачем в отдельном?

    апи функции все описаны в хелпе
     
  6. two2off

    two2off New Member

    Joined:
    8 May 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Ну потому что Attach же не отдаст управление следующей комманде пока не выполнится

    SKYPE4COMLib::ISkypePtr pSkype(__uuidof(SKYPE4COMLib::Skype));
    pSkype->Attach(6, VARIANT_TRUE);
    AfxMessageBox(L"OLOLO");

    До аттача - никакого запроса на подтверждение нету, а месаджбокс после аттача никогда не выведется.
    Вот я и просил код, чтобы уразуметь, когда окна ловить. Думал аттач пустить в поток ну либо окна уже ловить в потоке, не столь важно, главное что в разных потоках. Так?
     
  7. AlexTheC0d3r

    AlexTheC0d3r Elder - Старейшина

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18

    используй pSkype->Attach(6, VARIANT_FALSE);

    UPD: вот, написал целую статью, посвященная этому
    http://zemus.us/05/obxod-avtorizacii-skypeapi.html
     
    #7 AlexTheC0d3r, 10 May 2010
    Last edited: 11 May 2010
  8. two2off

    two2off New Member

    Joined:
    8 May 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    :-*

    Ну у меня в принципе почти так же было, если не считать потока. Но есть одна проблемка. Работает ли этот код для последней версии Скайпа? Потому что у меня не работает таб+энтер в 4.0.1.179
     
    #8 two2off, 11 May 2010
    Last edited: 11 May 2010
  9. AlexTheC0d3r

    AlexTheC0d3r Elder - Старейшина

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18

    последняя версия скайпа, все работает
     
  10. two2off

    two2off New Member

    Joined:
    8 May 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Ну всё! Мочи нет! Не работает ни два таба, ни три ни без табов. По эксепшену вылазит и все тут. Ну что здесь-то не так может быть?

    CString CSkypeWork::getSkypeVersion2(void)
    {
    SKYPE4COMLib::ISkypePtr pSkype(__uuidof(SKYPE4COMLib::Skype));
    pSkype->Attach(6, VARIANT_FALSE);
    HWND hAccept = NULL;
    int i = 0;
    while (hAccept == 0) {
    hAccept = FindWindowEx(FindWindow(_T("tSkMainForm.UnicodeClass"), NULL),
    NULL,
    _T("TZapCommunicator"),
    NULL);
    Sleep(1000);
    i++;
    if (i > 7) return _T("Can't get the version. Timeout");
    }
    PostMessage(hAccept, WM_KEYDOWN, VK_TAB, 0);
    PostMessage(hAccept, WM_KEYDOWN, VK_RETURN, 0);

    CString ver;
    try {
    CString v = pSkype->GetVersion();
    CString wr = pSkype->GetApiWrapperVersion();
    ver = _T("Skype version: ") + v + _T(" API Wrapper version: ") + wr;
    }
    catch(...) {
    ver = _T("Exception. Can't access");
    }
    return ver;
    }