Автор Тема: Не корректное определение имени пользователя  (Прочитано 4182 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ZeVSalt [?]

  • Новичок
  • *
  • Сообщений: 136
  • Репутация: 0
  • Пол: Мужской
  • Я не лупоглазый, это прищур такой !
    • Награды
  • Версия AutoIt: 3.3.12.0
Здравствуйте господа.
Делаю автоустановку программы VipNet, в одном из окон необходимо прописать путь к файлу с ключами.
При вводе пути вместо имени пользователя пишутся вопросительные знаки, хотя имя определяется корректно.
c:\Program Files\Repotr_User\VipNet\?????? ??
А должно быть c:\Program Files\Repotr_User\VipNet\Иванов ИИ
Имя пользователя определяю ч-з @UserName

И еще один вопрос в данной папке лежит файл с расширением .dst но имена файлов как и пользователей разные (но в папке конкретного пользователя файл всегда один), как указать, что открывать необходимо этот файл?

Код: AutoIt [Выделить]
#requireadmin

;~ Проверка имени пользователя
$UserName = @UserName
$Dest = "c:\Program Files\Repotr_User\VipNet\" & $UserName
;~ 1 окно ViPNet Monitor
;~ WinWait ("ViPNet Monitor")
;~ WinActivate ("ViPNet Monitor")
;~ ControlClick ("ViPNet Monitor",'OK','Button2' , "left" , 1)

;~ Sleep (3000)

If FileExists (@ProgramFilesDir & "\InfoTeCS\ViPNet Client\Monitor.exe") Then
    Run (@ProgramFilesDir & "\InfoTeCS\ViPNet Client\Monitor.exe")
Else
    MsgBox (4096, "Проверка файла", "Файл ViPNet Client не найден")
    Exit
EndIf

;~ 2 окно ViPNet Monitor
Sleep (3000)
WinWaitActive ("ViPNet Monitor")
WinActivate ("ViPNet Monitor")
ControlClick ("ViPNet Monitor",'Настройка...','Button2' , "left" , 1, 125,10)
Sleep (3000)
Send ("{DOWN 3}")
Sleep (1000)
Send ("{ENTER}")

;~ 3 окно Мастер инициализации справочно-ключевой информации
Sleep (1000)
WinWait ("Мастер инициализации справочно-ключевой информации")
WinActivate ("Мастер инициализации справочно-ключевой информации")
Sleep (1000)
ControlClick ("Мастер инициализации справочно-ключевой информации",'&Далее >','Button2' , "left" , 1)

;~ 4 окно Мастер инициализации справочно-ключевой информации
Sleep (1000)
WinWait ("Мастер инициализации справочно-ключевой информации")
WinActivate ("Мастер инициализации справочно-ключевой информации")
Sleep (1000)
ControlSend ('Мастер инициализации справочно-ключевой информации',"","Edit1",$Dest, 1)
;~ MsgBox (4096, " ", $UserName)

Sleep (1000)
;~ ControlClick ("Мастер инициализации справочно-ключевой информации",'&Далее >','Button3' , "left" , 1)


 


Русское сообщество AutoIt


Оффлайн ZeVSalt [?]

  • Новичок
  • *
  • Сообщений: 136

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • Я не лупоглазый, это прищур такой !
    • Награды
  • Версия AutoIt: 3.3.12.0
попробовал ч-з поиск, файл находит, определяет корректно его имя, но всеравно в пути к файлу вместо папки с именем пользователя стоят вопросы
как можно это исправить?
Думаю может дело в какой нибудь кодировке? (имя пользователя по русски написано)
Код: AutoIt [Выделить]
...
;~ поиск файла ---------------------------------------------------------------------------------

$sPath = "c:\Program Files\Repotr_User\VipNet\"
$hSearch = FileFindFirstFile($sPath & $UserName & '\*.dst') ; возвращает дескриптор поиска, определяющий путь и маску

; Проверка, является ли поиск успешным
If $hSearch = -1 Then
    MsgBox(4096, "Ошибка", "Ни один из файлов или каталогов не соответствует маске поиска")
    Exit
EndIf

While 1
    $sFile = FileFindNextFile($hSearch) ; возвращает имя следующего файла, начиная от первого до последнего
    If @error Then ExitLoop
    If @extended Then
    EndIf

$Dest = $sPath & $UserName & '\' & $sFile

WEnd

; Закрывает дескриптор поиска
FileClose($hSearch)
...

;~ 4 окно Мастер инициализации справочно-ключевой информации
Sleep (1000)
WinWait ("Мастер инициализации справочно-ключевой информации")
WinActivate ("Мастер инициализации справочно-ключевой информации")
Sleep (1000)
ControlSend ('Мастер инициализации справочно-ключевой информации',"","Edit1",$Dest, 1)

 


Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 438
  • Репутация: 111
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Цитировать
Как уже упоминалось в справке функции Send(), клавиши, которые высылают различные символы при CAPS LOCK и использовании клавиши Shift не могут быть эмулированы. Например, Чешская клавиатура. Хорошим решением будет ControlSetText().

Элементам возможно в первую очередь понадобится указать фокус командой ControlFocus(), при обращении к элементам (controlID), созданным самим скриптом.

Код: AutoIt [Выделить]
OS: WinXp SP3 (RUS), Win7 (x86/x64)


My development:
http://autoit-script.ru/index.php/topic,11541.0.html

Оффлайн ZeVSalt [?]

  • Новичок
  • *
  • Сообщений: 136

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • Я не лупоглазый, это прищур такой !
    • Награды
  • Версия AutoIt: 3.3.12.0
решил проблему по другому, раньше файл ключей копировался с сервера в папку с именем пользователя, переделал что бы копировалось без папки пользователя, все работает

Русское сообщество AutoIt

Re: Не корректное определение имени пользователя
« Ответ #3 Отправлен: Май 05, 2016, 16:56:33 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
9739 Просмотров
Последний ответ Ноябрь 16, 2009, 17:05:33
от SyDr
0 Ответов
3382 Просмотров
Последний ответ Июль 13, 2011, 14:50:04
от AtoS
18 Ответов
8492 Просмотров
Последний ответ Ноябрь 30, 2011, 16:57:56
от ZeVSalt
2 Ответов
2602 Просмотров
Последний ответ Апрель 03, 2012, 13:09:24
от CreatoR
4 Ответов
5260 Просмотров
Последний ответ Апрель 23, 2012, 23:53:44
от joiner
4 Ответов
3353 Просмотров
Последний ответ Октябрь 19, 2012, 18:56:12
от AZJIO
1 Ответов
1706 Просмотров
Последний ответ Май 30, 2014, 11:59:07
от InnI
4 Ответов
2746 Просмотров
Последний ответ Июль 02, 2015, 05:27:13
от balltun
0 Ответов
1513 Просмотров
Последний ответ Январь 28, 2015, 16:37:28
от Yashied
0 Ответов
547 Просмотров
Последний ответ Октябрь 11, 2015, 15:52:32
от ZeVSalt