Ru-Board.club
← Вернуться в раздел «Программы»

» VMware ThinApp (formerly Thinstall) часть 4

Автор: vasevase
Дата сообщения: 05.05.2016 05:01
AVanti 473
gvozdik

UPD:

Кажется разобрался: то ли из-за сбоя, то ли при деинсталляции, похоже, были удалены системные библиотеки.
Из-за этого и косяки с портабелизированным софтом попёрли. Спасибо за попытку помочь.
Автор: AVanti 473
Дата сообщения: 05.05.2016 06:26
conservator

Цитата:
В установленной программе этот лог-файл где появляется ?


conservator
Я делаю сборку на XP Появляется этот гад прямо в C:\Documents and Settings\юзверьнейм\ то есть в %Profile% Скрывать не буду, это просто набор плагов к фотошопу под названием Imagenomic Plugin Suite и создаёт он тупо пустой лог-файл %Profile%\ImagenomicLog.txt
Как я уже писал, закрывать %Profile% под WriteCopy желания нет. Поскольку плаг имеет приоритет перед всей сборкой это не есть хорошо. Проще, да и правильнее, убивать файл скриптом при каждом выходе...
Автор: conservator
Дата сообщения: 05.05.2016 08:11
AVanti 473
К какой сборке подключается этот плагин ? Я его уже собирал, но деталей не помню.
Не пробовали добавить в сборку неизолированную папку %Profile% с пустым лог-файлом ?
Автор: AVanti 473
Дата сообщения: 05.05.2016 08:18
conservator

Цитата:
К какой сборке подключается этот плагин ?


Прошу прощения, я не понимаю сути важности Ваших вопросов. Скрипт по удалению файла есть, или это просто обычный интерес?! Я секретов не держу: Сборка будет моя собственная под названием Photoshop. Плаг подключается вполне себе стандартно, в качестве AppLinks. Проблему с файлом лога, который выподает в реальную среду я уже описал выше. Благодарю, что Вы делитесь своим готовым решением, но Вы мне предлагаете его разобрать? А там вообще есть нужный мне скрипт, или просто изоляция папки %Profile%, (либо файл лога так же вываливается)?
Если есть скрипт удаления файлов в физической среде по завершению портабельной программы, поделитесь пожалуйста. Если нет, прошу прощения за беспокойство...
Автор: conservator
Дата сообщения: 05.05.2016 08:26
AVanti 473
Цитата:
я не понимаю сути важности Ваших вопросов
К своей сборке подключить свой плагин и посмотреть что там где создаётся, а для чистоты эксперимента хотелось узнать версию Photoshop'а (сборки).

Автор: AVanti 473
Дата сообщения: 05.05.2016 08:30

Цитата:
а для чистоты эксперимента хотелось узнать версию Photoshop'а (сборки).

Adobe Photoshop CS6 v13.0.1.3 (последняя, поддерживающая XP без патчей)
Хотя, сути вопроса, на мой взгляд, это не изменит. Версии плагинов:
Imagenomic - Adobe Photoshop Plug-ins:
Imagenomic Professional Plugin Suite for Adobe Photoshop and Photoshop Elements Build 1409
Imagenomic RealGrain for Adobe Photoshop and Photoshop Elements 2.0.1 Build 2011
Imagenomic Noiseware for Adobe Photoshop and Photoshop Elements 5.0.3 Build 5031
Imagenomic Portraiture for Adobe Photoshop and Photoshop Elements 2.3.4 Build 2341
Можно взять ЗДЕСЬ

Добавлено:
Читаю сейчас ЭТУ занимательную книженцию. Во всяком случае она много проясняет в плане синтаксисов (чем отличается create от get), соглашений, и вообще, понимания содержания того, что нужно написать в скрипте...

Добавлено:
Уважаемые знатоки скриптов, я всё верно понял, так надо?


Код: Function OnLastProcessExit
    Dim fso, f1 ' Назначение переменных
    Set fso = CreateObject("Scripting.FileSystemObject") ' Доступ к файловой системе
    Set f1 = fso.GetFile("%UserProfile%\ImagenomicLog.txt") ' Получить дескриптор файла
    if f1.FileExists("%UserProfile%\ImagenomicLog.txt") then f1.DeleteFile("%UserProfile%\ImagenomicLog.txt", True)
    'Если существует, удалить файл (True - даже если он только для чтения)
End Function
Автор: coherent r1
Дата сообщения: 05.05.2016 11:07
AVanti 473
Я бы сделал так:

Код: Function OnLastProcessExit
Dim fso, FileName
Set fso = CreateObject("Scripting.FileSystemObject")
FileName = ExpandPath("%UserProfile%\ImagenomicLog.txt")
If fso.FileExists(FileName) Then
fso.DeleteFile (FileName)
End if
End Function
Автор: AVanti 473
Дата сообщения: 05.05.2016 11:16
coherent r1

Цитата:
Я бы сделал так:


Ну, чичаз попробую... У меня на живой системе скрипт даёт ошибку о несоответствии параметра ExpandPath. Соберу в плагине, там гляну... А то, что я состряпал выше, увы тоже сыплет ошибки. Первая, это скобки с параметром True, мол, принадлежит к Sub и всё тут. Но, даже если скобки убрать - не может получить дескриптор. Причём ошибка на четвёртой строке во втором символе, мол, файл не найден. Хрень какая-то... Попробую Ваш в сборке...
Автор: WildGoblin
Дата сообщения: 05.05.2016 11:21
AVanti 473

Цитата:
...когда редактор использует уже не фильтры и декодеры, а именно кодеки...
"кодек" это сокращённое от "кодер-декодер"
Автор: coherent r1
Дата сообщения: 05.05.2016 11:24
AVanti 473

Цитата:
У меня на живой системе скрипт даёт ошибку о несоответствии параметра ExpandPath

ExpandPath - это фича скриптинга ThinApp.
Автор: AVanti 473
Дата сообщения: 05.05.2016 11:26
coherent r1

Цитата:
ExpandPath - это фича скриптинга ThinApp.


Так и понял, поэтому и решил пробовать в плагине. Нет, увы... Хотя, это странно. Не удаляет в физической среде. Файл появляется, портабл закрывается, песочницу удаляю (её ничто не блокирует) файл остаётся... ((( Может что-то ещё посоветуете?
Автор: vasevase
Дата сообщения: 05.05.2016 11:34
WildGoblin
Да это уже лирика (кодеки/шмодеки). Главное — проблему решить.
Кажется разобрался: то ли из-за сбоя, то ли при деинсталляции, похоже, были удалены системные библиотеки.
Из-за этого и косяки с портабелизированным софтом попёрли. Спасибо за попытку помочь.
Автор: AVanti 473
Дата сообщения: 05.05.2016 11:43
coherent r1

Цитата:
ExpandPath - это фича скриптинга ThinApp


Цитата из Бъёрка:

Цитата:
Сообщает исполнительной среде ThinApp о расширении макропапок. Когда вы используете VBScript, важно не забывать, что системные переменные и макропапки — это не одно и то же. Функция ExpandPath конвертирует макропапки в формат системных переменных


Как я понял, это относится к папкам, но не к файлам? Если так, то, возможно, сначала нужно объявить папку как ExpandPath, а затем удалять в ней файл?


Добавлено:
Видимо, всё же, придётся обратить внимание на ExecuteExternalProcess, хотя, надеюсь ещё на помощь в чисто скриптовом решении, без запуска комстроки...
Автор: coherent r1
Дата сообщения: 05.05.2016 12:06
AVanti 473

Цитата:
Как я понял, это относится к папкам, но не к файлам? Если так, то, возможно, сначала нужно объявить папку как ExpandPath, а затем удалять в ней файл?

Можно проверить, правильно ли задается путь. Вставить в скрипт MsgBox FileName, что покажет полный путь к файлу ImagenomicLog.txt.
Меня смущает макро %UserProfile%. По-моему - это системная переменная. Под рукой мануалов нет. Возможно должно быть %Profile%?
Автор: AVanti 473
Дата сообщения: 05.05.2016 12:19
coherent r1

Цитата:
Вставить в скрипт MsgBox FileName, что покажет полный путь к файлу ImagenomicLog.txt.


Ага, она и выдаёт сообщение с путём %UserProfile%\ImagenomicLog.txt
Вот прямо так, переменной, путь в сообщении и указан. Наверное, это не есть хорошо... Должен-то быть полный путь. Значит такую, системную переменную не понимает, наверное. Попробую %Profile% и отпишусь...

Добавлено:
Гы, а %Profile% понимает. ))) Теперь пойду менять скрипт согласно переменной...

Добавлено:
coherent r1
Огромное преогромное СПАСИБО! Работает вот так:


Код: Function OnLastProcessExit
    Dim fso, FileName
    Set fso = CreateObject("Scripting.FileSystemObject")
    FileName = ExpandPath("%Profile%\ImagenomicLog.txt")
    If fso.FileExists(FileName) Then
        fso.DeleteFile (FileName)
    End if
End Function
Автор: Proshaa
Дата сообщения: 05.05.2016 15:02
AVanti 473
снова предлагаю обратить внимание на http://forum.ru-board.com/topic.cgi?forum=35&topic=17670&start=220#1
там не только множество готовых шаблонов vbs-скриптов, но и отладчик-дебагер.
кроме того - программа позволяет сохранить скрипт в виде ехе-файла для комстроки или Windows.
единственный "недостаток" для нас - не знает про фичи ThinApp. но поменять несколько операторов в отлаженном рабочем скрипте - гораздо проще, чем искать баги методом тыка
Автор: AVanti 473
Дата сообщения: 05.05.2016 15:23
Proshaa
Да фиг с ними, со скриптами. Благодаря сегодняшнему дню, и coherent r1 в частности, я и так по пути решил массу косвенных, давно интересных для меня, задач. А вот как объяснить то, что при сборке одного и того же проекта, файл то вываливается в реал, то не вываливается?!?!?!? Вообще, чисто философски, зачем в проект могут попадать без всякой изоляции такие папки как: %Cookies%, %History%, %Internet Cache% и уже упомянутый %Profile% ??? Какие правила применяются к ним? Ну вот, к примеру, шрифты %Fonts% попадают в проект без изоляции и в результате работы сборки все оказываются в песочнице. Допустим, папка %Fonts% по факту является подпакой %SystemSystem% у которой всегда изоляция WriteCopy, и она наследуется папкой %Fonts%, но, в отношении папки %Profile% такого сказать нельзя! %Profile% одна из папок верхнего уровня иерархии, на который действует глобальная настройка изоляции в Package.ini И вот если эта настройка DirectoryIsolationMode=Merged то почему файл НЕ вываливается в реальную среду (а вчера, на другой такой же сборке вываливался). Вот как это, от чего зависит? Казалось бы, вчера всё выглядело логично и я пошёл искать скрипт, но, найдя его сегодня, исчезла сама логика. Причём это и на семёрке так и на ХР - я специально протестировал... Вот теперь как считать, какая будет изоляция у папки %Profile% ? Должна быть Merged, а по факту?

P.S. Надо бы ещё попробовать папке %Profile% жёстко задать изоляцию Merged, но, как гриться, хорошая мысля приходит апосля. А время уже нет сегодня. Значит завтра...

----------

Добавлено:

Цитата:
%Profile% одна из папок верхнего уровня иерархии, на который действует глобальная настройка изоляции в Package.ini И вот если эта настройка DirectoryIsolationMode=Merged то почему файл НЕ вываливается в реальную среду (а вчера, на другой такой же сборке вываливался).


Цитата:
Надо бы ещё попробовать папке %Profile% жёстко задать изоляцию Merged


Нашёл время, попробовал. Интересный момент - файл упорно не желает вываливаться в реал. Причём, даже если закрыть сборку, удалить этот файл из песочницы и снова запустить её - он создаётся опять в песочнице. Остаётся предполагать, что контейнер ThinApp сохраняет сведения о попавших в него файлах таким образом, что они, не зависимо от режима изоляции, (возможно) всегда будут создаваться в песочнице. И это, к слову - интересно! Вчера, наверняка был какой-то баг при сборке проекта и этого не произошло.
Ладно, запишем эту ситуацию в загадки разрабов тинапа. Всё хорошо, что хорошо заканчивается! Зато, сегодня со скриптами немного разобрался!!!

Вопрос снят. Позвольте выразить огромную благодарность всем, кто откликнулся для поиска решения создавшейся ситуации!!!
Автор: SunOK_ZM
Дата сообщения: 05.05.2016 18:36
AVanti 473, ведь известный факт, что без файла ##Attributes.ini папка будет иметь изоляцию соответственно DirectoryIsolationMode. НО это для несистемных директорий, а %Profile% без атрибутного ИНИшника должна получить WriteCopy, т.к. является типичной системной директорией (или, как тут уже упомянулось, "макропапкой"); изменить дефолтное WriteCopy как-раз только ##Attributes.ini и позволяет. [Однако меня вводит в ступор описание на ст.25 мануала v.4.5 от Astra55]
А вот чтобы разобраться с мистикой, вспоминайте где-что именно редактировали вручную)
Автор: AVanti 473
Дата сообщения: 05.05.2016 18:54
SunOK_ZM

Цитата:
А вот чтобы разобраться с мистикой, вспоминайте где-что именно редактировали вручную

В том-то и фокус, что со вчерашнего "мистического" случая, я проект вообще не трогал. Только кинул в него сегодня файл скрипта и всё. Да и бог с ним...


Цитата:
НО это для несистемных директорий, а %Profile% без атрибутного ИНИшника получит WriteCopy, т.к. является типичной системной директорией

И вот на этом моменте, меня терзают смутнейшие сомнения! Я уже упоминал сегодня, что, несмотря на принудительное Merged в моём последнем опыте, файл, всё равно не вывалился в систему - от так вот. Делаю вывод, что это не зависит от изоляции, а похоже на то, что зависит именно от наличия этого файла в собранном контейнере. Если он там в папке был, а изоляция Merged, он всё равно никуда не вывалиться. Вспомните ситуацию с ярлыками на %Desktop%, который однозначно всегда принудительно под Merged. И ни один ярлык, из имеющихся в сборке, на реальный десктоп не вываливается при работе программы.
Автор: conservator
Дата сообщения: 05.05.2016 20:07
AVanti 473
Цитата:
зависит именно от наличия этого файла в собранном контейнере. Если он там в папке был, а изоляция Merged, он всё равно никуда не вывалиться
Так был ImagenomicLog.txt в папке %Profile% при первой "неудачной" (когда он вываливался в систему) сборке или нет ?

Автор: AVanti 473
Дата сообщения: 05.05.2016 20:13
conservator

Цитата:
Так был ImagenomicLog.txt в папке %Profile% при первой "неудачной" (когда он вываливался в систему) сборке или нет ?

В том-то и дело, что БЫЛ. Я же говорю, что мистика, и папку я со вчерашней ночи (последней сборки) до сегодняшнего использования скрипта так и не трогал. Загнал сегодня скрипт, пересобрал - не вываливается. Пересобрал без скрипта - тоже не вываливается. После, ещё раза три пересобирал (последний раз с принудительным Merged для %Profile%) - не вываливается. Видимо, вчера был глюк, который я принял за чистую монету, и от него с утра отталкивался, как от аксиомы, которая показалась мне вполне логичной. Да бог с ним, главное - разобрались! И по пути ещё много полезного произошло!
Автор: coherent r1
Дата сообщения: 05.05.2016 21:31
AVanti 473
Извиняюсь, была срочная работа, только освободился. Но, смотрю, все получилось.

Цитата:
Один вопросик, а вот fso.GetFile почему не надо использовать?

Я отталкивался от уже не раз проверенных вариантов.
Автор: AVanti 473
Дата сообщения: 05.05.2016 21:52
coherent r1

Цитата:
Извиняюсь, была срочная работа

Не проблема, Вы мне как раз вовремя помогли!


Цитата:
Я отталкивался от уже не раз проверенных вариантов.

Понятно, тоже согласен с таким решением!
Автор: vasevase
Дата сообщения: 13.05.2016 15:52
Вот с таким кто сталкивался? Сам разобрался: "тревожный" мусор всплывает с подключаемым плагином.
Автор: AVanti 473
Дата сообщения: 23.05.2016 00:45
Друзья, кто-нибудь сталкивался с похожей ситуацией:

Программа: Adobe Dreamweaver CS6 v12.1 build 5949
ThinApp: 4.7.3
ОС: WinXP
Ставлю, патчу, провожу первый запуск (пробовал делать проект и без него, на ситуацию не влияет), всё как полагается - никаких проблем. Делаю проект. Отсюда начинаются трудности:
Если сборка имеет сжатие, то, при запуске, при выборе в стартовом окне опций "Больше" или "Резиновые макеты" идёт крэш. Если делать сборку без сжатия, то крэша на этих опциях не будет, но, и само отображение окна опции "Резиновые макеты" кривое. То есть - нет возможности выбрать тип создаваемого документа, а так же нет визуального отображения шаблонов и их первоначальных настроек размеров. И это ещё не всё. Поскольку, по умолчанию, при составлении проекта, в графе "Тип документа" для данной опции стартового меню, стоит "HTML5", документ этот создать можно с дефолтными настройками размеров, но, вкладка окна программы "Дизайн" остаётся неактивной, можно увидеть лишь окно "Код".
Если же запустить просто инсталлированный Adobe Dreamweaver CS6 v12.1 build 5949, с которого делалась сборка, и на той же системе, где делалась сборка - всё отображается корректно.

Что такого не может зачитать или понять контейнер ThinApp v4.7.3 по отношению к Adobe Dreamweaver CS6 ???
Автор: Proshaa
Дата сообщения: 23.05.2016 04:18
DDE/OLE
Автор: AVanti 473
Дата сообщения: 23.05.2016 06:29
Proshaa

Цитата:
DDE/OLE

Я понимаю, что гугл даёт на это некоторую информацию, но, хотелось (если это возможно) бы более развёрнутого ответа по отношению к ThinApp, и можно ли с этим бороться? И, просто любопытно, кто-нибудь ещё натыкался на эти грабли с Adobe Dreamweaver CS6 в ThinApp?

Добавлено:
Просто, если наглядно, то, в установленном варианте программы у меня так:



и так:



а в портабельном варианте, та же программа, при тех же условиях на той же ОС:



и:



При чём здесь может быть динамический обмен данными (http://sht-rajvo.narod.ru/k1.htm) и расширения файлов? Где-то в контейнере ThinApp, что-то криво срабатывает, и это явно не пути к файлам, так как проверка ведётся на той же ОС, где и производилась установка, только на снимке системы, который, разумеется чистый, без установленной версии программы...

Добавлено:
Пересобрал проект на ThinApp v5.1.1 Build 2722044 - вроде бы всё заработало. Мистика..... Понятно, что уже сто лет в обед, как было говорено, что пробовать собирать нужно на различных версиях ThinApp, но, загадки не перестают удивлять своим разнообразием......
P.S. И даже при компрессии проекта не обламывает... )))
Автор: Proshaa
Дата сообщения: 23.05.2016 12:57

Цитата:
DDE/OLE
подтверждение:
Цитата:
Пересобрал проект на ThinApp v5.1.1 Build 2722044 - вроде бы всё заработало.

в 4й с этим проблемы, в 5й получше, хоть и не до конца. причём в данном случае - снимок может быть от 4й, важна версия сборщика.
ещё одно подтверждение можно получить запустив 4й портабль, "поверх" установленной версии. при некоторых настройках - всё заработает.
кстати, по этой же причине в 4.7 остаются "висячие" процессы после завершения работы. в 5й их нет.
Автор: SunOK_ZM
Дата сообщения: 23.05.2016 13:08
AVanti 473, у меня только одно объяснение - в версиях 5+ разрабы сделали возможность подгружать бОльшее количество DLL, так же и аудио-утилиты от Nero - только в старшем порядке и фейс видно, и плагины подгружаются лучше. Хотел сразу отписать, но подумал не к месту)
Автор: AVanti 473
Дата сообщения: 23.05.2016 13:34
Proshaa

Цитата:
в 4й с этим проблемы, в 5й получше


Диагноз понятен, хотя причина по прежнему для меня не столь очевидна, но, это уже не важно в силу отсутствия иных решений по отношению к 4.7.3 Благодарю за подсказки!

SunOK_ZM
Благодарю за разъяснение, буду пользовать пятую линейку для сборки Dreamweaver.

Страницы: 1234567891011

Предыдущая тема: OrCAD экспорт P&P файла


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.