Что нового

Неправильное выполнение похожих функций

gloss

Ленивое кодило
Сообщения
155
Репутация
5
Приветствую.
Есть пара функций, первая работает превосходно.
Код:
Func DAItemp()
	$daifo=FileOpen(@TempDir&"\DAItemp.au3",2)
	Sleep(10)
	FileWrite(@TempDir&"\DAItemp.au3", RegRead($regpathtemp, "DAITemp.au3"))
	Sleep(10)
	FileClose($daifo)
	Sleep(10)
	ShellExecute(@TempDir&"\DAItemp.au3")
	Sleep(100)
	FileDelete(@TempDir&"\DAItemp.au3")
EndFunc

RegRead
Код:
#NoTrayIcon
$name="Dragon Age: Инквизиция"
$process="DragonAgeInquisition.exe"
If ProcessExists($process) Then
	ProcessClose($process)
Else
	ShellExecute("Launcher.exe","","D:\torrent\Dragon_Age_Inquisition-Gameworks\Dragon Age Inquisition\")
	WinWait($name)
	WinMove($name,"",322,188)
EndIf
Вторая, наотрез отказывается выполнять то, что ей велено.
Код:
Func SLTemp($login,$password)
	$slfo=FileOpen(@TempDir&"\SLItemp.au3",2)
	Sleep(100)
	FileWrite(@TempDir&"\SLItemp.au3","UserLogin('"&$login&"','"&$password&"')"&@CRLF&RegRead($regpathtemp, "SLItemp.au3"))
	Sleep(100)
	FileClose(@TempDir&"\SLItemp.au3")
	Sleep(100)
	ShellExecute(@TempDir&"\SLItemp.au3")
	Sleep(100)
	FileDelete(@TempDir&"\SLItemp.au3")
EndFunc

RegRead
Код:
UserLogin('log','pass')

#NoTrayIcon
Func UserLogin($login,$password)
	$sc="[REGEXPCLASS:someclass]"
	WinActivate($sc)
	Send($login)
	Sleep(100)
	Send("{TAB}")
	Sleep(100)
	Send($password)
	Sleep(100)
	Send("{TAB}")
	Sleep(100)
	Send("{SPACE}")
	Sleep(100)
	Send("{TAB}")
	Sleep(100)
	Send("{SPACE}")
EndFunc
Создаем .au3 файл, читаем текст с реестра и вписываем в файл, затем выполняем и удаляем файл.
Файл создает, текст читает и вписывает, а вот запустить не может и файл не удаляет.
Файл оказывается недоступен, исчезает он, только если выйти из первого скрипта, которым мы все это дело и запускали.
Если пропустить ShellExecute и FileDelete файл читабелен и удали его можно.
Не могу понять в чем проблема. Есть мысли?

Опять делаю очевидные ошибки.
Пока читал свою писанину заметил таки разницу: вместо FileClose(@TempDir&"\SLItemp.au3") должно быть FileClose($slfo).
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
gloss,
Должно быть:
Код:
;~ ---
$slfo = FileOpen(@TempDir & "\SLItemp.au3", 2)
FileWrite($slfo, "UserLogin('" & $login & "','" & $password & "')" & @CRLF & RegRead($regpathtemp, "SLItemp.au3"))
FileClose($slfo)
;~ ---
 
Автор
G

gloss

Ленивое кодило
Сообщения
155
Репутация
5
madmasles
Такая конструкция у меня не работает, пишет, что путь 1 не найден. Сам до этого так пробовал. :(
 
Верх