Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как залогиниться скриптом на ifolder.ru? / 10 сообщений из 10, страница 1 из 1
02.07.2011, 19:19
    #37333859
yuriy12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как залогиниться скриптом на ifolder.ru?
Не подскажет ли кто, как скриптом залогинится на ifolder.ru? Проблема в том, что в самом тексте странички нет привычных "form", а есть ссылка "onclick="return login_crm();". Знать бы как оно работает :( Кусок кода странички ниже:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
				<div id="header_user"> 
					<div id="user-area"> 
	
		<div name="TempAuthDiv" id="TempAuthDiv"> 
			авторизация ...
		</div> 
		<div name="iFolderAuthDiv" id="iFolderAuthDiv" style="display:none;"> 
	
		<strong>Вы не авторизованы!</strong><br /> 
		
			<strong style="white-space:nowrap;"> 
				<a href="#" onclick="return login_crm();">авторизируйтесь</a> /
				<a href="#" onclick="return register_crm();">зарегистрируйтесь</a> 
			</strong> 
		</div> 

А вот с программным кодом как-то ниче в голову не лезет. Стандартные "objElement.Click" судя по всему не для данного случая :( Буду благодарен за любые конструктивные мысли :)
...
Рейтинг: 0 / 0
02.07.2011, 22:10
    #37333957
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как залогиниться скриптом на ifolder.ru?
yuriy12,

так вы гляньте на код функции return login_crm, может что и прояснится.
...
Рейтинг: 0 / 0
03.07.2011, 20:14
    #37334496
yuriy12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как залогиниться скриптом на ifolder.ru?
big-duke,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
function login_crm(){
    function loginCallback(c){
         if  (c) {
             if  (c.isAuth() && !c.isAnonymous()) {
                var ecid = c.getEcid();
                 if  (ecid) {
                    form_crm("/auth/login/crm", "authorize_ecid", ecid);
                }
                 else  {
                    alert("Login CRM error! (ecid is empty)");
                }
            }
        }
         else  {
            alert("Login CRM error! (ClientContext is empty)");
        }
    }
    AgavaAPI.CRM.DoAuth(loginCallback);
     return  false;

function form_crm(action, cmd, ecid){
    var f = document.getElementById("form_by_ecid");
    f.action = action;
    f.cmd.value = cmd;
    f.ecid.value = ecid;
    f.submit();
};

Знать бы что это? :(
...
Рейтинг: 0 / 0
04.07.2011, 08:38
    #37334875
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как залогиниться скриптом на ifolder.ru?
yuriy12,
рыть сюда
Код: plaintext
1.
2.
3.
4.
5.
6.
<form style="margin: 0px;display: none;" id="form_by_ecid" target="iframe_by_ecid" method="POST">
<input type="hidden" name="return_path" id="return_path" value="/">
<input type="hidden" name="return_path_with_args" id="return_path_with_args" value="/?">
<input type="hidden" name="cmd" value="">
<input type="hidden" name="ecid" value="">
</form>
...
Рейтинг: 0 / 0
04.07.2011, 10:07
    #37334983
yuriy12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как залогиниться скриптом на ifolder.ru?
скукотища,

Пока "ныпонятна", но помозгую. Спасибо! :)
...
Рейтинг: 0 / 0
04.07.2011, 21:43
    #37336230
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как залогиниться скриптом на ifolder.ru?
yuriy12,
не за что. Тестовые логин/пароль есть? ;)
...
Рейтинг: 0 / 0
04.07.2011, 22:16
    #37336248
yuriy12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как залогиниться скриптом на ifolder.ru?
скукотища,

login: vbtest
pass: testtest

Спасибо!
...
Рейтинг: 0 / 0
07.07.2011, 01:17
    #37340335
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как залогиниться скриптом на ifolder.ru?
yuriy12,
в стандартный модуль книги Excel
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal lngPause&)

' ****************************************
Sub NeedIfolderRU()
Const S_Login = "vbtest"
Const S_Psw = "testtest"
Dim ie As Object, ae As Object
Dim k&, b As Boolean

Set ie = CreateObject("internetexplorer.application")
ie.navigate "http://ifolder.ru/"

Do While ie.readystate <>  4  ' READYSTATE_COMPLETE
 Sleep  100 

' попытка ускорить загрузку:
' выход из цикла если ссылка на форму авторизации загружена
 If ie.readystate =  3  Then ' READYSTATE_INTERACTIVE
 On Error Resume Next
    b = Not IsNull(ie.document.all( 45 ).onclick)
    k = Err.Number
 On Error GoTo  0 
    Err.Clear
    If k <>  0  Then k =  0  Else If b Then Exit Do
 End If
 
Loop '' While ie.readystate <> 4 ' READYSTATE_COMPLETE

' клик по ссылке "авторизация"
ie.document.all( 45 ).Click

Do While ie.readystate <>  4  ' READYSTATE_COMPLETE
 Sleep  100 
 k = k +  1 

' попытка "отследить" "зависание" IE -->
 If k >  5  Then
    k = MsgBox("IE тормоз :(" & vbCrLf & "Будем ещё ждать ?", _
                vbQuestion + vbYesNo + vbDefaultButton1)
    If k = vbYes Then k =  0  Else b = False: Exit Do
 End If
Loop '' While ie.readystate <> 4 ' READYSTATE_COMPLETE
If Not b Then ie.Quit: Set ie = Nothing: Exit Sub
' попытка "отследить" "зависание" IE <--

' заполнение формы авторизации -->
Do
' ie.document.ActiveElement обновляется с задержкой
' костыль с циклом из-за того, что иначе не нашёл как обновить принудительно :(
    k =  0 
    Set ae = ie.document.ActiveElement
On Error Resume Next
    ae.form.all( 4 ).Value = S_Login
    k = Err.Number
On Error GoTo  0 
    Err.Clear
Loop Until k =  0 
ae.form.all( 9 ).Value = S_Psw
ae.form.all( 21 ).Click
' заполнение формы авторизации <--

ie.Visible = True

Set ae = Nothing
Set ie = Nothing

End Sub
...
Рейтинг: 0 / 0
07.07.2011, 10:14
    #37340585
yuriy12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как залогиниться скриптом на ifolder.ru?
скукотища,

УХТЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ...
Прям слов нет. Я некоторые команды впервые вижу, заодно новое выучу (хотя еще учить и учить) :) Спасибо!!! Вечером опробуем "в бою" :)
...
Рейтинг: 0 / 0
11.07.2011, 22:21
    #37346929
yuriy12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как залогиниться скриптом на ifolder.ru?
Все работает! Вот это правда пришлось заменить стандартным ожиданием "свободности" ИЕ, потому как зацикливалось, но в остальном прелестно работает!!! Еще раз большущее спасибо!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
' попытка "отследить" "зависание" IE -->
 If k >  5  Then
    k = MsgBox("IE тормоз :(" & vbCrLf & "Будем ещё ждать ?", _
                vbQuestion + vbYesNo + vbDefaultButton1)
    If k = vbYes Then k =  0  Else b = False: Exit Do
 End If
Loop '' While ie.readystate <> 4 ' READYSTATE_COMPLETE
If Not b Then ie.Quit: Set ie = Nothing: Exit Sub
' попытка "отследить" "зависание" IE <--
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как залогиниться скриптом на ifolder.ru? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]