powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как залогиниться скриптом на ifolder.ru?
10 сообщений из 10, страница 1 из 1
Как залогиниться скриптом на ifolder.ru?
    #37333859
yuriy12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не подскажет ли кто, как скриптом залогинится на 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
Как залогиниться скриптом на ifolder.ru?
    #37333957
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yuriy12,

так вы гляньте на код функции return login_crm, может что и прояснится.
...
Рейтинг: 0 / 0
Как залогиниться скриптом на ifolder.ru?
    #37334496
yuriy12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Как залогиниться скриптом на ifolder.ru?
    #37334875
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Как залогиниться скриптом на ifolder.ru?
    #37334983
yuriy12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

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

login: vbtest
pass: testtest

Спасибо!
...
Рейтинг: 0 / 0
Как залогиниться скриптом на ifolder.ru?
    #37340335
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Как залогиниться скриптом на ifolder.ru?
    #37340585
yuriy12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

УХТЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ...
Прям слов нет. Я некоторые команды впервые вижу, заодно новое выучу (хотя еще учить и учить) :) Спасибо!!! Вечером опробуем "в бою" :)
...
Рейтинг: 0 / 0
Как залогиниться скриптом на ifolder.ru?
    #37346929
yuriy12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все работает! Вот это правда пришлось заменить стандартным ожиданием "свободности" ИЕ, потому как зацикливалось, но в остальном прелестно работает!!! Еще раз большущее спасибо!
Код: 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
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как залогиниться скриптом на ifolder.ru?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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