Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » VNC авторизация

Ответить
Настройки темы
VNC авторизация

Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


Изменения
Автор: batyaPS
Дата: 17-08-2011
Может есть у кого готовый или помогите создать скрипт для автоматической авторизации при vnc подключении.
Требуется входить как с доменной авторизацией так и просто по паролю (окна при этих авторизациях разные).

т.е. нужен процесс или служба работающая в ожидании нужного окна (запрос авторизации по VNC)
и при появлении требуемого (их бывает два - с доменной авторизацией и авторизация по паролю - они разные) окна
осуществляла ввод (нужного) логина + пароля (в случае с доменной авторизацией) или просто пароля (в случае обычной авторизации).

думаю многим очень будет полезна данная наработка


решение
реализация с ini файлом

Отправлено: 13:10, 09-08-2011

 

Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата batyaPS:
Кнопка "Войти" не отрабатывает »
Попробуйте заменить
Код: Выделить весь код
;...
ControlClick($h_Win, '', $n_Button)
;на
ControlSend($h_Win, '', '', '{ENTER}')
;или на
ControlSend($h_Win, '', $n_Button, '{ENTER}')
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:55, 12-08-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


Цитата madmasles:
Попробуйте заменить »
испробовал оба варианта.
чет не хочет нажиматься.
может задержку надо сделать ?

Отправлено: 13:34, 12-08-2011 | #12


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата batyaPS:
может задержку надо сделать ? »
Попробуйте, мне проверить негде.

Отправлено: 14:16, 12-08-2011 | #13


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


Цитата madmasles:
может задержку надо сделать ? »
Попробуйте, мне проверить негде. »
чет не получается .
может заменить нажатие ентер на клик мыши ?

Отправлено: 14:27, 12-08-2011 | #14


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


batyaPS,
Интересно, что покажет этот код при открытом окне.
Код: Выделить весь код
$hWin = WinGetHandle('[Title:Ultr@VNC Авторизация;Class:#32770]')
If $hWin Then
    MsgBox(64, 'Info', ControlGetHandle($hWin, '', '[Class:Button;Instance:1]'))
Else
    MsgBox(16, 'Error', 'Нет окна')
EndIf
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:50, 12-08-2011 | #15


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1267
Благодарности: 1025

Профиль | Отправить PM | Цитировать


Цитата madmasles:
Интересно, что покажет этот код при открытом окне. »
madmasles, дескриптор определяет. Проблема в другом, а именно в ControlGetText - возвращает пустую строку, до кнопки дело не доходит, т.к. после условия _AvtorPass()/_AvtorLogPass() вернут эррор. А так оба варианта нажатия отрабатывают.

Отправлено: 21:25, 12-08-2011 | #16


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата El Sanchez:
ControlGetText - возвращает пустую строку »
А если так попробовать:
Код: Выделить весь код
#NoTrayIcon
#include <WinAPIEx.au3>;Yashied, http://autoit-script.ru/index.php/topic,47.0.html

Opt('MustDeclareVars', 1)
Opt('TrayMenuMode', 1)

Global $sTitleScript = @ScriptName & '{[/@$@\]}', $sTitleLogPass = '[Title:Ultr@VNC Авторизация;Class:#32770]', _
        $sTitlePass = '[Title:VNC Авторизация;Class:#32770]', $fLogPass, $fPass, $nExitItem, $msg

If WinExists($sTitleScript) Then Exit
AutoItWinSetTitle($sTitleScript)

HotKeySet('{Esc}', '_Exit')
$nExitItem = TrayCreateItem('Выход')
TraySetState()
TraySetToolTip('<VNC Авторизация>' & @LF & 'Выход - нажать кнопку "Esc"')
_WinAPI_EmptyWorkingSet()
While 1
    $msg = TrayGetMsg()
    If WinExists($sTitleLogPass) Then
        If Not $fLogPass Then
            _AvtorLogPass()
            If Not @error Then $fLogPass = True
        EndIf
    Else
        $fLogPass = False
    EndIf
    If WinExists($sTitlePass) Then
        If Not $fPass Then
            _AvtorPass()
            If Not @error Then $fPass = True
        EndIf
    Else
        $fPass = False
    EndIf
    Switch $msg
        Case 0
            ContinueLoop
        Case $nExitItem
            _Exit()
    EndSwitch
WEnd

Func _AvtorLogPass()
    Local $h_Win, $n_Log = '[Class:Edit;Instance:1]', $n_Pass = '[Class:Edit;Instance:2]', _
            $n_Button = '[Class:Button;Instance:1]', $s_Log = 'TestUser', $s_Pass = 'TestPass';свои данные поставьте
    $h_Win = WinGetHandle($sTitleLogPass)
    If Not $h_Win Then Return SetError(1)
    If Not ControlSetText($h_Win, '', $n_Log, $s_Log) Then Return SetError(1)
    If Not ControlSetText($h_Win, '', $n_Pass, $s_Pass) Then Return SetError(1)
    ControlClick($h_Win, '', $n_Button)
    If WinExists($h_Win) Then Return SetError(1)
    Return SetError(0)
EndFunc   ;==>_AvtorLogPass

Func _AvtorPass()
    Local $h_Win, $n_Pass = '[Class:Edit;Instance:1]', $n_Button = '[Class:Button;Instance:1]', _
            $s_Pass = 'TestPass';свои данные поставьте
    $h_Win = WinGetHandle($sTitlePass)
    If Not $h_Win Then Return SetError(1)
    If Not ControlSetText($h_Win, '', $n_Pass, $s_Pass) Then Return SetError(1)
    ControlClick($h_Win, '', $n_Button)
    If WinExists($h_Win) Then Return SetError(1)
    Return SetError(0)
EndFunc   ;==>_AvtorPass

Func _Exit()
    Exit
EndFunc   ;==>_Exit
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:23, 12-08-2011 | #17


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1267
Благодарности: 1025

Профиль | Отправить PM | Цитировать


madmasles, спасибо, работает. Мне этот код тоже пригодится.

Отправлено: 11:53, 13-08-2011 | #18


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


madmasles, большое спасибо. всё работает.

Отправлено: 09:11, 15-08-2011 | #19


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


маленькая хотелка - можно ли что бы логин и пароли брал из инишника лежащего рядом с exe?

Отправлено: 08:48, 16-08-2011 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » VNC авторизация

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - Ultra VNC ElmandeRRR Программное обеспечение Windows 2 27-01-2012 17:38
Route/Bridge - Вопрос по vnc loki222 Сетевые технологии 5 27-11-2010 19:14
VNC на Microsoft windows CE batyaPS Мобильные ОС, смартфоны и планшеты 5 22-09-2009 07:33
Прочее - VNC с помощью телефона mewkoff Сетевые технологии 7 25-06-2009 16:18
XDM vs VNC что предпочесть? Vlad Drakula Общий по Linux 2 17-02-2007 10:42




 
Переход