Показать полную графическую версию : [решено] Переменные среды на CD\DVD
Здравствуйте уважаемые форумчане! Возникла проблема с написанием авторана для запуска программы с ДВД диска. Вообщем вопрос в следующем: имеется авторан меню (сделаное в AutoPlay Menu Builder) которое кидается в корень диска и вместе с ним кидается туда же папка, которая каждый раз меняет свое название. Если папку постоянно переименовывать в какое то постоянное имя которое задается в AutoPlay Menu Builder (например %CDROM%\123\...) то все работает нормально, ну а так как необходимо сохранить настоящее имя папки, то фокус с переименованием не канает. Заранее извиняюсь если подобная тема поднималась на форуме или я написал в не тот раздел.
Заранее огромное спасибо всем кто откликнется или поможет
Tier2, так что Вам нужно-то?
Мне нужно помочь с переменной папки на CD чтоб авторан ее видел и запускал из этой папки exeшник (имя его неизменяется) при наступлении события (нажатие на кнопку).
1. Есть папка с постоянно изменяющимся названием (в этой папке есть исполняемый файл, который необходимо запускать при нажатии на кнопку в меню авторана) - папка записывается в корень диска
2. Авторан меню - записывается в корень диска
3. При нажатии на кнопку в авторан меню появлялось окошко с вопросом куда скопировать данную папку с сохранением ее названия.
Путь я использовал для запуска исполняемого файла: %CDROM%\%PATH%\123.exe - не работает, либо я что то не так делаю
Надеюсь более понятнее в этом сообщении сформулировал задачу.
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-страницах, но это уже чересчур даже для меня.
Цитата Iska:
Tier2, то есть, Вы не хотите каждый раз пересоздавать меню в AutoPlay Menu Builder'е, указывая новый путь, так? »
Совершенно верно.
Я думал возможно ли написать скрипт (находящийся в корне диска) который при клике по кнопке будет запускатся и сканировать (парсить) название папки и запускать из нее указаный файл.
Так же можно поступить с диалогом сохранения папки на НDD
Я думал возможно ли написать скрипт (находящийся в корне диска) который при клике по кнопке будет запускатся и сканировать (парсить) название папки и запускать из нее указаный файл. »
Думаю, можно.
По каким признакам будем определять искомый файл? Начало понятно: ищем на том же диске, где будет расположен скрипт. Далее: ищем только в каталогах первого уровня вложенности от корневого? Ищем что: заранее известное имя файла, або по каким иным признакам — версия, подпись, свойства?
Так же можно поступить с диалогом сохранения папки на НDD »
Давайте с одним сначала решим, дабы не путаться.
Спасибо за помощь. Ищем в каталоге первого уровня от корневого исполняемый файл с именем OneVolumeViewer.exe
Ищем в каталоге первого уровня от корневого исполняемый файл с именем 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
Скрипт можно класть в любое место диска.
Сохранил скрипт с расширением ехе и кинул в корень - при запуске получаю окно с неподдерживаемым 16 битным приложением.
Система Вин 7 х64
http://s1.ipicture.ru/uploads/20130820/thumbs/u8cY7xg7.png (http://s1.ipicture.ru/Gallery/Viewfull/29797672.html)
Сохранил скрипт с расширением ехе »
Сохраните с расширением «.vbs».
Сохранил в vbs - выдает ошибку с ассоциацией файла, хотя стоит ассоциация с Microsoft ® Windows Based Script Host
http://s1.ipicture.ru/uploads/20130820/thumbs/NH3Wwfr1.png (http://s1.ipicture.ru/Gallery/Viewfull/29797987.html)
Tier2, у меня работает.
Покажите скриншот, где будет видно, как Вы задали запуск скрипта. Укажите местоположение файла проекта.
http://s5.hostingkartinok.com/uploads/thumbs/2013/08/cde81d8b6432e5ec593778c527bee62a.png (http://hostingkartinok.com/show-image.php?id=cde81d8b6432e5ec593778c527bee62a)
Ссылка на скрипт и сам скрипт срабатывает (видно по мелькающему окну консоли) , но вот 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)
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
Будет перечислять все пути, в которых будет искать искомый файл.
файл находит, но
http://s3.hostingkartinok.com/uploads/images/2013/08/881a5b9a627553af5596773ebecc73a7.png (http://hostingkartinok.com)
Tier2, файл действительно называется «OneVolumeViewer.exe»? Покажите текст окна сообщения «Found!» из отладочного варианта скрипта:
---------------------------
Found!
---------------------------
E:\qww\OneVolumeViewer.exe
---------------------------
ОК
---------------------------
(достаточно просто нажать «Ctrl-C» для копирования содержимого окна в буфер обмена).
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)
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
Iska это Вам приогромнейшее спасибо - теперь все заработало!!!
Теперь как прикрутить сохранение к этому? Например чтоб при нажатии на кнопку выскакивало диалоговое окно проводника с предложением сохранить папку с имеющимся названием на HDD
Вернее не к этому скрипту а просто отдельным скриптом - чтоб название имеющейся папки не изменялось?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.