Что нового

Не корректное определение имени пользователя

ZeVSalt

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

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

Код:
#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)
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
попробовал ч-з поиск, файл находит, определяет корректно его имя, но всеравно в пути к файлу вместо папки с именем пользователя стоят вопросы
как можно это исправить?
Думаю может дело в какой нибудь кодировке? (имя пользователя по русски написано)
Код:
...
;~ поиск файла ---------------------------------------------------------------------------------

$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---

Скриптер
Сообщения
455
Репутация
120
Как уже упоминалось в справке функции Send(), клавиши, которые высылают различные символы при CAPS LOCK и использовании клавиши Shift не могут быть эмулированы. Например, Чешская клавиатура. Хорошим решением будет ControlSetText().

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

Код:
ControlSetText
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
решил проблему по другому, раньше файл ключей копировался с сервера в папку с именем пользователя, переделал что бы копировалось без папки пользователя, все работает
 
Верх