Что нового

Вставка имени файла с помощью Send

papa

Новичок
Сообщения
19
Репутация
0
Нужно извлечь имя файла и вставить его с помощью Send. Почему не работает это:
Код:
$dll = FileFindFirstFile("*.dll")
Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send($dll)
 

Fever

Скриптер
Сообщения
308
Репутация
112
FileFindFirstFile не возвращает строку с файлом

Код:
$dll = FileFindFirstFile("*.dll")
Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send(FileFindNextFile($dll))
 
Автор
P

papa

Новичок
Сообщения
19
Репутация
0
Это из справки:
Код:
FileFindFirstFile 
--------------------------------------------------------------------------------

Возвращает название первого из файлов, соответствующих строке поиска. 

FileFindFirstFile ( "filename" ) 

 

Параметры 

filename Строка поиска названия файла. Допустимы символы сокращения (*, ?)
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Нельзя написать просто *.dll, надо указать папку где искать.
Код:
$First_Search = FileFindFirstFile(@SystemDir & '\*.dll')
$Next_Search = FileFindNextFile($First_Search)
Run('notepad.exe')
WinWaitActive('[CLASS:Notepad]')
Send($Next_Search)
 

Fever

Скриптер
Сообщения
308
Репутация
112
papa
это из справки версии 3.3.8.1:
Returns a search "handle" according to file search string.

или на русском:
Возвращает "дескриптор поиска", связанный с указанной строкой.
http://autoit-script.ru/autoit3_docs/functions/FileFindFirstFile.htm


Zaramot, почему нельзя? Можно.
 
Автор
P

papa

Новичок
Сообщения
19
Репутация
0
Скрипт запускается в одной папке с файлом. А как можно получить имя файла, что бы затем его вставить с помощью Send
 
Автор
P

papa

Новичок
Сообщения
19
Репутация
0
Имя файла с расширением .dll, который находится в одной папке со скриптом.
 

AZJIO

Меценат
Меценат
Сообщения
2,903
Репутация
1,200
papa
Для переименования используется функция
Код:
FileMove
 
Автор
P

papa

Новичок
Сообщения
19
Репутация
0
А зачем переиминовывать?
 

AZJIO

Меценат
Меценат
Сообщения
2,903
Репутация
1,200
papa
Send($dll) - такая запись показалось попыткой переименования файла через блокнот.
 
Автор
P

papa

Новичок
Сообщения
19
Репутация
0
Re: Получение имени файла

Решил по другому:
Код:
Run ("cmd.exe")
Send (" dir *.dll /b ")
Send ("> dir.txt")
Send ("{ENTER}")
Send ("exit")
Send ("{ENTER}")
$file = FileOpen("dir.txt", 0)
$dll = FileReadLine($file)

Только тему теперь надо изменить.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Мой вариант:
Код:
Run (@ComSpec & ' /c Dir *.dll /B > dll.txt', '', @SW_HIDE)
Sleep(100)
$dll = FileReadLine('dll.txt', 1)
MsgBox(0, '', $dll)
FileDelete('dll.txt')
 
Автор
P

papa

Новичок
Сообщения
19
Репутация
0
Спасибо, так намного короче.
 
Верх