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

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

Ответить
Настройки темы
[решено] Вставить в пустое поле в программу имя пользователя ПК

Новый участник


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

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


Изменения
Автор: andry692
Дата: 26-05-2014
Описание: исправление орфографических ошибок
Добрый день! Подскажите как можно в autoit используя макрос @username (либо другой способ), вставить в поле "имя пользователя" залогиненного на ПК, в программу Spark.

Т.е другими словами, скрипт выполняет установку программы и прописывает после запуска имя залогиненного пользователя, в поле имя пользователя.

Отправлено: 08:18, 26-05-2014

 

Аватара для madmasles

Ветеран


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

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


andry692,
Вам надо определить с помощью AutoIt v3 Window Info окно (заголовок и, желательно, класс), нужный элемент управления и, далее, использовать функции WinWait() и ControlSetText().
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:50, 27-05-2014 | #2



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

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


Новый участник


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

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


madmasles, подскажите как это реализовать можно, запускаю:
run ("C:\Program Files\Spark\Spark.exe")
а дальше затрудняюсь(

madmasles, заголовок: Spark, класс: SunAwtFrame

Отправлено: 12:43, 27-05-2014 | #3


Аватара для madmasles

Ветеран


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

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


andry692,
На этом окне нет элементов управления, сейчас нет времени, если никто не поможет, то завтра утром напишу скрипт.

Отправлено: 15:29, 27-05-2014 | #4


Новый участник


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

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


madmasles, спасибо

Отправлено: 15:56, 27-05-2014 | #5


Аватара для madmasles

Ветеран


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

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


andry692,
Попробуйте, у меня работает.
читать дальше »
Код: Выделить весь код
Opt('MustDeclareVars', 1)

Local $s_PathSpark = @ProgramFilesDir & '\Spark\Spark.exe', _; полный путь к Spark.exe
        $s_User = @UserName, _; имя пользователя
        $s_Password = 'password', _; пароль
        $s_Server = 'server', _; сервер
        $f_SavePassword = True, _; сохранить пароль
        $f_Auto = True, _;автоматический вход
        $f_Enter = True; войти

Local $i_Pid, $h_Spark, $a_Client, $a_SavePassword, $a_Auto, $a_Enter, $i_OptMCM, $i_OptPCM, $h_Error

If Not StringRegExp(FileGetVersion($s_PathSpark), '^2\.6\.3') Then
    ; у других версий цвет может быть другой
    If MsgBox(65, 'Info', 'Тестировалось только с версией 2.6.3' & @LF & 'OK - продолжить.') = 2 Then Exit
EndIf
$i_Pid = Run($s_PathSpark)
If Not $i_Pid Then
    ConsoleWrite('Error Run Spark' & @LF)
    Exit 1
EndIf
$h_Spark = WinWait('[Title:Spark;Class:SunAwtFrame]', '', 3)
If Not $h_Spark Then
    ConsoleWrite('Error WinWait window Spark' & @LF)
    Exit 2
EndIf
BlockInput(1)
If Not _WinActivateToSend($h_Spark) Then
    ConsoleWrite('Error _WinActivateToSend window Spark' & @LF)
    BlockInput(0)
    Exit 3
EndIf
Send($s_User)
Send(@TAB)
Send($s_Password)
Send(@TAB)
Send($s_Server)
$a_Client = WinGetClientSize($h_Spark)
If @error Then
    ConsoleWrite('Error WinGetClientSize window Spark' & @LF)
    BlockInput(0)
    Exit 4
EndIf
$i_OptMCM = Opt('MouseCoordMode', 2)
$i_OptPCM = Opt('PixelCoordMode', 2)
If $f_SavePassword Then
    $a_SavePassword = PixelSearch($a_Client[0] / 3, $a_Client[1] / 2, $a_Client[0], $a_Client[1], 0xF4F4F1, 0, 2, $h_Spark)
    If @error Then
        ConsoleWrite('Error search сохранить пароль' & @LF)
    Else
        MouseMove($a_SavePassword[0], $a_SavePassword[1], 0); для отладки
;~         MouseClick('primary', $a_SavePassword[0], $a_SavePassword[1], 1, 0)
    EndIf
EndIf
Sleep(1000); для отладки
If $f_Auto Then
    $a_Auto = PixelSearch($a_Client[0], $a_Client[1], $a_Client[0] / 3, $a_Client[1] / 2, 0xF4F4F1, 0, 2, $h_Spark)
    If @error Then
        ConsoleWrite('Error search автоматический вход' & @LF)
    Else
        MouseMove($a_Auto[0], $a_Auto[1], 0); для отладки
;~         MouseClick('primary', $a_Auto[0], $a_Auto[1], 1, 0)
    EndIf
EndIf
Sleep(1000); для отладки
If $f_Enter Then
    $a_Enter = PixelSearch($a_Client[0], $a_Client[1], $a_Client[0] / 5, $a_Client[1] / 5, 0x82CBDA, 0, 1, $h_Spark)
    If @error Then
        ConsoleWrite('Error search войти' & @LF)
    Else
        MouseMove($a_Enter[0], $a_Enter[1], 0); для отладки
;~         MouseClick('primary', $a_Enter[0], $a_Enter[1], 1, 0)
    EndIf
EndIf
SendKeepActive('')
BlockInput(0)
Opt('MouseCoordMode', $i_OptMCM)
Opt('PixelCoordMode', $i_OptPCM)
$h_Error = WinWait('[Title:Login error;Class:SunAwtDialog]', '', 5)
If $h_Error Then
    ConsoleWrite('Error Can not connect' & @LF)
    WinClose($h_Error)
    WinClose($h_Spark)
    Exit 5
EndIf

Func _WinActivateToSend(ByRef $h_Wnd, $i_TimeOut = 3);3 sec
    If Not WinExists($h_Wnd) Then Return 0
    If Not WinActive($h_Wnd) Then WinActivate($h_Wnd)
    If Not WinWaitActive($h_Wnd, '', $i_TimeOut) Then Return 0
    If Not SendKeepActive($h_Wnd) Then Return 0
    Return 1
EndFunc   ;==>_WinActivateToSend

Последний раз редактировалось madmasles, 28-05-2014 в 10:39. Причина: исправление ошибок

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:55, 28-05-2014 | #6


Новый участник


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

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


madmasles, большое спасибо! У меня работает тоже)

Отправлено: 10:12, 28-05-2014 | #7


Аватара для madmasles

Ветеран


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

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


andry692,
Я исправил код, в первом варианте ошибки были.

Отправлено: 10:26, 28-05-2014 | #8


Новый участник


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

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


madmasles, а не могли бы скинуть посмотреть?

Отправлено: 10:56, 28-05-2014 | #9


Аватара для madmasles

Ветеран


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

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


Цитата andry692:
а не могли бы скинуть посмотреть? »
Что?

Отправлено: 11:01, 28-05-2014 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как вставить управляющий символ Unicode в имя файла. SANIOK_AV Хочу все знать 19 10-11-2012 09:15
Система - как в дистрибутив windows вставить программу mashel15 Программное обеспечение Windows 6 27-05-2012 14:40
CMD/BAT - [решено] Вставить имя файла в текстовый файл (UTF-8 without BOM) Jahnhoy Скриптовые языки администрирования Windows 11 19-09-2011 17:39
Sharepoint - Как вставить имя пользователя в определённое поле maives Другие серверные продукты 0 09-11-2009 14:17
Java Script, как вставить текст в поле формы? maaxiim Вебмастеру 8 04-07-2008 16:46




 
Переход