PDA

Просмотр полной версии : Skype API - как обойти подтверждение


two2off
08.05.2010, 16:50
Кто-нибудь знает как обойти подтверждение Скайпа на использование приложения, использующего Skype API? Методами Skype API, скорее всего, никак, но может кто знает другое решение?

two2off
08.05.2010, 17:27
Простите, лоханулся. Была тема
https://forum.antichat.ru/thread198629.html

AlexTheC0d3r
08.05.2010, 20:11
Простите, лоханулся. Была тема
https://forum.antichat.ru/thread198629.html
все оооочень легко

two2off
10.05.2010, 13:13
Слушайте, я правильно понимаю, что аттачится к скайпу нужно в отдельном потоке? Не могли бы вы код забросить, если не сложно. С АПИ-функциями вместе

AlexTheC0d3r
10.05.2010, 13:30
Слушайте, я правильно понимаю, что аттачится к скайпу нужно в отдельном потоке? Не могли бы вы код забросить, если не сложно. С АПИ-функциями вместе
зачем в отдельном?

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

two2off
10.05.2010, 14:41
зачем в отдельном?



Ну потому что Attach же не отдаст управление следующей комманде пока не выполнится

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

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

AlexTheC0d3r
10.05.2010, 20:25
Ну потому что Attach же не отдаст управление следующей комманде пока не выполнится

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

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


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

UPD: вот, написал целую статью, посвященная этому
http://zemus.us/05/obxod-avtorizacii-skypeapi.html

two2off
11.05.2010, 09:51
используй pSkype->Attach(6, VARIANT_FALSE);

UPD: вот, целая статья, посвященная этому
http://zemus.us/05/obxod-avtorizacii-skypeapi.html

:-*

Ну у меня в принципе почти так же было, если не считать потока. Но есть одна проблемка. Работает ли этот код для последней версии Скайпа? Потому что у меня не работает таб+энтер в 4.0.1.179

AlexTheC0d3r
11.05.2010, 14:03
:-*

Ну у меня в принципе почти так же было, если не считать потока. Но есть одна проблемка. Работает ли этот код для последней версии Скайпа? Потому что у меня не работает таб+энтер в 4.0.1.179


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

two2off
11.05.2010, 16:20
Ну всё! Мочи нет! Не работает ни два таба, ни три ни без табов. По эксепшену вылазит и все тут. Ну что здесь-то не так может быть?

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;
}