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

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

Ответить
Настройки темы
Создание и открытие только что созданного файла

Пользователь


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

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


Создаю скриптик с помощью которого выбирается файл который открывается определёной програмой пример: выбираю файл k790I.fbn он открывается програмой и получается файл k790I.raw как раз таки до этого момента все хорошо а потом надо только что созданый k790i.raw открыть второй програмой. всё хорошо да только имя файла может быть любое.
вот наколякал такой скрипт
Код: Выделить весь код
 
$message = "Выберите файл FS."

$var = FileOpenDialog($message, @WindowsDir & "", "Прошивки FS (*.fbn;)", 1)
If @error Then
    MsgBox(4096,"","No File(s) chosen")
Else
    $var = StringReplace($var, "|", @CRLF)
    $var1 = run("babe2raw.exe " & $var)
	sleep ( 500)
	ProcessClose("babe2raw.exe")

$PID = ProcessExists("babe2raw.exe") ; Will return the PID or 0 if the process isn't found.
If $PID Then ProcessClose($PID)
	 run ( "SEFStool4.exe"& $var1)
	


 
EndIf
вот этот отрезок кода выполняется хорошо (создаётся raw файл)

Код: Выделить весь код
$message = "Выберите файл FS."

$var = FileOpenDialog($message, @WindowsDir & "", "Прошивки FS (*.fbn;)", 1)
If @error Then
    MsgBox(4096,"","No File(s) chosen")
Else
    $var = StringReplace($var, "|", @CRLF)
    $var1 = run("babe2raw.exe " & $var)
	sleep ( 500)
	ProcessClose("babe2raw.exe")

$PID = ProcessExists("babe2raw.exe") ; Will return the PID or 0 if the process isn't found.
If $PID Then ProcessClose($PID)
а вот этот отрезок не исполняется
Код: Выделить весь код
 run ( "SEFStool4.exe"& $var1)
	


 
EndIf
т.е не открывается программа и вообще ничего неделается
вот что пишет аутоит
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\FS\1.au3"
>Exit code: 0 Time: 8.546

Отправлено: 10:52, 02-05-2009

 

Аватара для Creat0R

Must AutoIt


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

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


Цитата Bars66:
вот этот отрезок не исполняется »
А зачем там $var1? это PID процесса, и получается что имя запускаемого файла примерно такое: SEFStool4.exe5432

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 11:36, 02-05-2009 | #2



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

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


Пользователь


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

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


надо так чтоб было имя запускаемого файла SEFStool4.exe ***.raw
притом ****.raw это то что было получено с помощью программы babe2raw.exe из файла ***.fbn
проблема в том что название файла может быть СОВЕРШЕННО любым

Отправлено: 15:36, 02-05-2009 | #3


Аватара для Creat0R

Must AutoIt


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

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


Цитата Bars66:
ритом ****.raw это то что было получено с помощью программы babe2raw.exe »
См. справку по команде Run(). Она возвращает идентификатор процесса, а не то что вернула запускаемая программа.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 20:42, 02-05-2009 | #4


Пользователь


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

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


а какую команду надо применять можно отвечать без загодок и намеков

Отправлено: 11:07, 03-05-2009 | #5


Аватара для Creat0R

Must AutoIt


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

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


Цитата Bars66:
надо только что созданый k790i.raw открыть второй програмой. всё хорошо да только имя файла может быть любое. »
Что значит любое, это имя гинерирует запускаемая программа, или это то-же имя что выбрано в FileOpenDialog но с расширением «.raw»? Если первое то можно попробовать искать файл с FileFindFirstFile/FileFindNextFile, а если второе то всё просто - в переменной $var заменяем расширение на raw:

Код: Выделить весь код
$message = "Выберите файл FS."

$var = FileOpenDialog($message, @WindowsDir & "", "Прошивки FS (*.fbn;)", 1)

If @error Then
    MsgBox(4096, "", "No File(s) chosen")
Else
    $var = StringReplace($var, "|", @CRLF)
    Run("babe2raw.exe " & $var) ;тут для надёжности можно было бы использовать RunWait().
    Sleep(500)

    ProcessClose("babe2raw.exe")
    $PID = ProcessExists("babe2raw.exe") ; Will return the PID or 0 if the process isn't found.
    If $PID Then ProcessClose($PID)

    $var = StringTrimRight($var, 3) & "raw"
    Run("SEFStool4.exe " & $var)
EndIf

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 11:21, 03-05-2009 | #6


Пользователь


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

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


ОК все заработало ждите вопросов как запихнут это все в GUI.

Отправлено: 11:58, 03-05-2009 | #7


Пользователь


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

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


Надо накалякать еще один скрипт чтобы исполнялся вот эта команда
SEFSTool.exe xxx.fbn C:\FS (где xxx - это имя файла прошивки)

Код: Выделить весь код
$message = "Выберите файл FS."

$var = FileOpenDialog($message,  "c:/fs", "Прошивки FS (*.fbn;)", 1)
DirCreate("C:\FS\")
If @error Then
    MsgBox(4096, "", "Файлов не выбрано")
Else
    $var = StringReplace($var, "|", @CRLF)
    Run("C:\FS\fbn2fs\sefstool.exe" & $var & "C:\FS")
	
 
    Sleep(10000)

    ProcessClose("SEFSTool")
    $PID = ProcessExists("SEFSTool") ; Will return the PID or 0 if the process isn't found.
    If $PID Then ProcessClose($PID)

	
EndIf
но почемуто он ничего неделает. (помните имя файла прошивки может быть все время разное!

Отправлено: 17:34, 04-05-2009 | #8


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


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

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


Пробежался по скрипту, и думаю что ошибка в строках:
1.DirCreate("C:\FS\") - Зачем создавать эту директорию, если как я понял по скрипту она уже существует. и если dircreate стоит после fileopendialog при не выбранном файле сообщения об ошибке не будет.
2.Run("C:\FS\fbn2fs\sefstool.exe" & $var & "C:\FS"). - здесь запускается строка run с filename -ом C:\FS\fbn2fs\sefstool.exeС:\dir\xxx.fbnC:\FS

и еще не понятно зачем нужна строка $var = StringReplace($var, "|", @CRLF)
StringReplace не найдет в любом случае символ "|" в $var.

Последний раз редактировалось Elbek, 04-05-2009 в 21:15.


Отправлено: 18:47, 04-05-2009 | #9


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


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

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


[QUOTE
Цитата Bars66:
Надо накалякать еще один скрипт чтобы исполнялся вот эта команда
SEFSTool.exe xxx.fbn C:\FS (где xxx - это имя файла прошивки) »
исполнятся команда SEFSTool.exe xxx.fbn C:\FS\fbn2fs\ работает только если скрипт лежит в папке C:\FS\fbn2fs\

Код: Выделить весь код
$message = "Выберите файл FS."

$var = FileOpenDialog($message,  "c:/fs", "Прошивки FS (*.fbn;)", 1)

If @error Then
    MsgBox(4096, "", "Файлов не выбрано")
Else
    $filename = StringRegExp($var, '(?i).*\\(.*\..*)',1) ;дергает с полного пути только само название файла
    FileCopy($var,  "C:\FS\fbn2fs\" & $filename[0])
    Run("sefstool.exe" & $filename[0] & "C:\FS\fbn2fs") ; исполняется вот эта команда SEFSTool.exe xxx.fbn C:\FS\fbn2fs, 
	
 
    Sleep(10000)

    ProcessClose("SEFSTool")
    $PID = ProcessExists("SEFSTool") ; Will return the PID or 0 if the process isn't found.
    If $PID Then ProcessClose($PID)

	
EndIf

Отправлено: 02:31, 06-05-2009 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Открытие файла в программе cra5h_ AutoIt 4 19-11-2009 15:39
C/C++ - Открытие текстового файла .::.DIMA.::. Программирование и базы данных 4 05-05-2009 12:17
Разное - Открытие файла из сети Dijio Microsoft Windows 2000/XP 2 18-03-2008 09:10
Открытие файла в Pinnacle Studio 9.3.5.10 CTEPBA Видео и аудио: обработка и кодирование 6 02-07-2005 03:20
c++ открытие файла Guest Программирование и базы данных 4 08-08-2003 02:40




 
Переход