Войти

Показать полную графическую версию : [решено] Переменные среды на CD\DVD


Страниц : [1] 2

Tier2
20-08-2013, 15:58
Здравствуйте уважаемые форумчане! Возникла проблема с написанием авторана для запуска программы с ДВД диска. Вообщем вопрос в следующем: имеется авторан меню (сделаное в AutoPlay Menu Builder) которое кидается в корень диска и вместе с ним кидается туда же папка, которая каждый раз меняет свое название. Если папку постоянно переименовывать в какое то постоянное имя которое задается в AutoPlay Menu Builder (например %CDROM%\123\...) то все работает нормально, ну а так как необходимо сохранить настоящее имя папки, то фокус с переименованием не канает. Заранее извиняюсь если подобная тема поднималась на форуме или я написал в не тот раздел.
Заранее огромное спасибо всем кто откликнется или поможет

Iska
20-08-2013, 16:25
Tier2, так что Вам нужно-то?

Tier2
20-08-2013, 16:32
Мне нужно помочь с переменной папки на CD чтоб авторан ее видел и запускал из этой папки exeшник (имя его неизменяется) при наступлении события (нажатие на кнопку).
1. Есть папка с постоянно изменяющимся названием (в этой папке есть исполняемый файл, который необходимо запускать при нажатии на кнопку в меню авторана) - папка записывается в корень диска
2. Авторан меню - записывается в корень диска
3. При нажатии на кнопку в авторан меню появлялось окошко с вопросом куда скопировать данную папку с сохранением ее названия.

Путь я использовал для запуска исполняемого файла: %CDROM%\%PATH%\123.exe - не работает, либо я что то не так делаю

Надеюсь более понятнее в этом сообщении сформулировал задачу.

Iska
20-08-2013, 17:44
Tier2, то есть, Вы не хотите каждый раз пересоздавать меню в AutoPlay Menu Builder'е, указывая новый путь, так?

Путь я использовал для запуска исполняемого файла: %CDROM%\%PATH%\123.exe - не работает, либо я что то не так делаю »
Из документации:
Macros
In action Run Program, Open Document, Explore and Launch Slide Show, you must type file name or folder name with full path, and you can use these macros:

%CDROM%: CD-ROM driver letter, no matter what the driver letter specified
%WinDir%: Windows directory
%SysDir%: System directory
%Desktop%: Desktop directory
%%ENV-VARNAME%%: The value of system environment variable 'VARNAME'

Actually, %CDROM% indicates the location of .apm files (or executables for stand-alone menus), and in design mode, it is the project folder. Normally, when you burn it, the executable and .apm file should be in the root path of CDROM, so %CDROM% indicates the CDROM driver letter by default.

For example, if you want load a file named letter.doc in a sub directory of your CDROM, just type it as %CDROM%\subdirectory\letter.doc. You should create the same folder structure as your CDROM under your project directory, and the program converts project path to %CDROM% automatically if you choose files or folders under project folder. You can also create a virtual drive mapping contents of your project directory with Virtual Drive Manager.

Вы там видите «%PATH%»? Я — нет. Что Вам даёт использование «%PATH%»? Откуда Вы его взяли?


Как я понял, судя по Linasoft - AutoPlay Menu Builder, EZ MP3 Creator (http://www.linasoft.com/apmbuilder.php):
Features
* Just thinking, no programming.
— Ваша хотелка в рамках данного продукта не реализуема, разве что играться с JavaScript для динамического формирования ссылок с «apm://» протоколом на html-страницах, но это уже чересчур даже для меня.

Tier2
20-08-2013, 18:00
Цитата Iska:
Tier2, то есть, Вы не хотите каждый раз пересоздавать меню в AutoPlay Menu Builder'е, указывая новый путь, так? »

Совершенно верно.
Я думал возможно ли написать скрипт (находящийся в корне диска) который при клике по кнопке будет запускатся и сканировать (парсить) название папки и запускать из нее указаный файл.
Так же можно поступить с диалогом сохранения папки на НDD

Iska
20-08-2013, 18:08
Я думал возможно ли написать скрипт (находящийся в корне диска) который при клике по кнопке будет запускатся и сканировать (парсить) название папки и запускать из нее указаный файл. »
Думаю, можно.

По каким признакам будем определять искомый файл? Начало понятно: ищем на том же диске, где будет расположен скрипт. Далее: ищем только в каталогах первого уровня вложенности от корневого? Ищем что: заранее известное имя файла, або по каким иным признакам — версия, подпись, свойства?

Так же можно поступить с диалогом сохранения папки на НDD »
Давайте с одним сначала решим, дабы не путаться.

Tier2
20-08-2013, 18:17
Спасибо за помощь. Ищем в каталоге первого уровня от корневого исполняемый файл с именем OneVolumeViewer.exe

Iska
20-08-2013, 18:28
Ищем в каталоге первого уровня от корневого исполняемый файл с именем OneVolumeViewer.exe »
Ясно. Пробуйте:
Option Explicit

Const strFileName = "OneVolumeViewer.exe"

Dim objFolder
Dim strPath


With WScript.CreateObject("Scripting.FileSystemObject")
For Each objFolder In .GetDrive(.GetDriveName(WScript.ScriptFullName)).RootFolder.SubFolders
strPath = .BuildPath(objFolder.Path, strFileName)

If .FileExists(strPath) Then
WScript.CreateObject("WScript.Shell").Run strPath, 1, False

Exit For
End If
Next
End With

WScript.Quit 0

Скрипт можно класть в любое место диска.

Tier2
20-08-2013, 18:42
Сохранил скрипт с расширением ехе и кинул в корень - при запуске получаю окно с неподдерживаемым 16 битным приложением.
Система Вин 7 х64
http://s1.ipicture.ru/uploads/20130820/thumbs/u8cY7xg7.png (http://s1.ipicture.ru/Gallery/Viewfull/29797672.html)

Iska
20-08-2013, 18:45
Сохранил скрипт с расширением ехе »
Сохраните с расширением «.vbs».

Tier2
20-08-2013, 19:09
Сохранил в vbs - выдает ошибку с ассоциацией файла, хотя стоит ассоциация с Microsoft ® Windows Based Script Host
http://s1.ipicture.ru/uploads/20130820/thumbs/NH3Wwfr1.png (http://s1.ipicture.ru/Gallery/Viewfull/29797987.html)

Iska
20-08-2013, 19:49
Tier2, у меня работает.

Покажите скриншот, где будет видно, как Вы задали запуск скрипта. Укажите местоположение файла проекта.

Tier2
20-08-2013, 20:09
http://s5.hostingkartinok.com/uploads/thumbs/2013/08/cde81d8b6432e5ec593778c527bee62a.png (http://hostingkartinok.com/show-image.php?id=cde81d8b6432e5ec593778c527bee62a)

Tier2
20-08-2013, 21:01
Ссылка на скрипт и сам скрипт срабатывает (видно по мелькающему окну консоли) , но вот OneVolumeViewer.exe не запускает

Что в скрипте надо удалить чтоб консоль не закрывалась и можно было прочитать что там написано?

Iska
20-08-2013, 21:13
Вы не указали:
Укажите местоположение файла проекта. »
Жду.

Ссылка на скрипт и сам скрипт срабатывает (видно по мелькающему окну консоли) »
Не должно быть окна консоли.

Попробуйте такой вариант для отладки:
Option Explicit

Const strFileName = "OneVolumeViewer.exe"

Dim objFolder
Dim strPath


With WScript.CreateObject("Scripting.FileSystemObject")
For Each objFolder In .GetDrive(.GetDriveName(WScript.ScriptFullName)).RootFolder.SubFolders
strPath = .BuildPath(objFolder.Path, strFileName)

MsgBox strPath

If .FileExists(strPath) Then
MsgBox strPath, vbOKOnly + vbInformation, "Found!"

WScript.CreateObject("WScript.Shell").Run strPath, 1, True

Exit For
End If
Next
End With

MsgBox "That All!"

WScript.Quit 0

Будет перечислять все пути, в которых будет искать искомый файл.

Tier2
20-08-2013, 21:25
файл находит, но
http://s3.hostingkartinok.com/uploads/images/2013/08/881a5b9a627553af5596773ebecc73a7.png (http://hostingkartinok.com)

Iska
20-08-2013, 21:33
Tier2, файл действительно называется «OneVolumeViewer.exe»? Покажите текст окна сообщения «Found!» из отладочного варианта скрипта:
---------------------------
Found!
---------------------------
E:\qww\OneVolumeViewer.exe
---------------------------
ОК
---------------------------

(достаточно просто нажать «Ctrl-C» для копирования содержимого окна в буфер обмена).

Tier2
20-08-2013, 21:39
http://s6.hostingkartinok.com/uploads/images/2013/08/0f9a1d09132b9f141e835907d78bf947.png (http://hostingkartinok.com)
затем по нажатии ок
http://s6.hostingkartinok.com/uploads/images/2013/08/929fbbadd03a1280fc0335f54003cf90.png (http://hostingkartinok.com)

Iska
20-08-2013, 21:44
Tier2, спасибо, ясно. Наличие пробелов в пути ;). Пробуйте:
Option Explicit

Const strFileName = "OneVolumeViewer.exe"

Dim objFolder
Dim strPath


With WScript.CreateObject("Scripting.FileSystemObject")
For Each objFolder In .GetDrive(.GetDriveName(WScript.ScriptFullName)).RootFolder.SubFolders
strPath = .BuildPath(objFolder.Path, strFileName)

If .FileExists(strPath) Then
WScript.CreateObject("WScript.Shell").Run """" & strPath & """", 1, False

Exit For
End If
Next
End With

WScript.Quit 0

Tier2
20-08-2013, 21:53
Iska это Вам приогромнейшее спасибо - теперь все заработало!!!
Теперь как прикрутить сохранение к этому? Например чтоб при нажатии на кнопку выскакивало диалоговое окно проводника с предложением сохранить папку с имеющимся названием на HDD
Вернее не к этому скрипту а просто отдельным скриптом - чтоб название имеющейся папки не изменялось?




© OSzone.net 2001-2012