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

» VMware ThinApp (formerly Thinstall) 3

Автор: AVanti473
Дата сообщения: 20.08.2014 09:14

Цитата:
наверно все таки не то что замена удалению, а типа не уверен исключи


Да, я это и имел в виду, только возможно иначе выразился. Я бы сравнил этот параметр с работой в Spoon, когда файлы в программе удаляются из состава сборки, но остаются в проекте.
Автор: AVanti473
Дата сообщения: 30.08.2014 14:35
Вопрос: Нужно убить процесс Workspace Macro Pro X.X.exe (где X.X просто номер версии, убрал, чтобы не смущали цифры).

Что мною для этого было сделано:
- Пример из бессмертного FAQ отпал сразу, т.к. не сработал.
- В Package.ini в [BuildOptions] были вставлены параметры:
ChildProcessEnvironmentDefault=External
ProcessExternalNameBehaviour=Original

(в любой комбинации их добавления в процессах висит Workspace Macro Pro X.X.exe)

- На http://blogs.vmware.com/thinapp/2008/10/using-ie-7-on-v.html найден соответствующий скрипт, который должен был помочь:

Код: Function OnFirstParentExit
Dim objWMIService, objProcess, colProcess
Dim strComputer, strProcessKill
strComputer = "."
strProcessKill = "’Workspace Macro Pro X.X.exe’"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = " & strProcessKill )
For Each objProcess in colProcess
objProcess.Terminate()
Next
End Function
Автор: dinis124
Дата сообщения: 31.08.2014 15:32
AVanti473

[more=Посмотреть]Раз

Код:
Function OnFirstParentExit
ProcKill1 = ExecuteExternalProcess("cmd.exe /c taskkill /F /IM LVComSer.exe /IM LVPrcSrv.exe /IM CO~AI7E5.EXE /IM CO~S466W.EXE /T ")
WaitForProcess ProcKill1, 0
End Function
Автор: AVanti473
Дата сообщения: 31.08.2014 18:08

Цитата:
Вопрос: Нужно убить процесс Workspace Macro Pro X.X.exe


Неубиваем, НО - застрелил гада )))))))!

Как? С помощью pavlaf! За что ему огромное спасибо!
Дело в том, что параметр:
ProcessExternalNameBehaviour=Original
я брал здесь, а там он идёт с ошибкой!
Правильно он пишется:
ProcessExternalNameBehavior=Original
Разница в одну букву, но как существенна! В итоге, все процессы стали видны как на ладони! И весящим оказался WMPHotkeys.exe
Далее, не заморачиваясь опять таки на стандартах я забрёл для разнообразия сюда, где в блоке "Use the Win32_Process class and the Terminate method" можно увидеть видимо исходник вышеприведённого мною скрипта, но немного в модифицированном виде, без переменной strProcessKill, а напрямую с объявлением имени выгружаемого процесса. Ну для полной кашерности объявил ещё в начале все Dim и получилось так:


Код: Function OnFirstParentExit
Dim objWMIService, objProcess, colProcessList
Dim strComputer
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'WMPHotkeys.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
End Function
Автор: pavlaf
Дата сообщения: 04.09.2014 19:57
AVanti473
Вам нравится экспериментировать с виртуальными приложениями. Предлагаю попробовать решить одну маленькую проблемку:
Те, которые говорят, что виртуальные приложения можно запускать на чужих компах и не оставлять следов, слегка лукавят или не знают, что после запуска абсолютно любого исполняемого файла создаётся маленький файл в системной папке и запись в системном реестре. Они предназначены для ускорения повторного запуска. Нужно придумать скрипт, удаляющий эти элементы при закрытии виртуального ThinApp-приложения. Тогда работа приложения на самом деле не оставит несанкционированных следов.
Автор: regist123
Дата сообщения: 04.09.2014 23:00
pavlaf 20:57 04-09-2014
Цитата:
Те, которые говорят, что виртуальные приложения можно запускать на чужих компах и не оставлять следов, слегка лукавят или не знают, что после запуска абсолютно любого исполняемого файла создаётся маленький файл в системной папке и запись в системном реестре. Они предназначены для ускорения повторного запуска. Нужно придумать скрипт, удаляющий эти элементы при закрытии виртуального ThinApp-приложения. Тогда работа приложения на самом деле не оставит несанкционированных следов.

pavlaf подобную задачу в топике уже решили, кто-то даже делал специальную утилиту для этого, но сейчас не смог сразу найти ссылку на этот пост. Только пост от Astra55

Цитата:
и вообще без запуска каких-либо посторонних экзешников. И реестр чистится без regedit, и файлы в Prefetch удаляются по маске.
Автор: AVanti473
Дата сообщения: 04.09.2014 23:13

Цитата:
создаётся маленький файл в системной папке и запись в системном реестре

Вы про C:\Windows\Prefetch ?


Цитата:
Нужно придумать скрипт, удаляющий эти элементы при закрытии виртуального ThinApp-приложения.


В данном скрипте, по завершению работы портабельной программы, удаляется папка "Folder to delete"

Код: Function OnFirstParentExit
Dim fso, demoFolder
Set fso = CreateObject("Scripting.FileSystemObject")
demoFolder = ExpandPath("%UserProfile%\AppData\Local\Folder to delete")
If fso.FolderExists(demoFolder) then
fso.DeleteFolder(demoFolder)
End if
End Function
Автор: AVanti473
Дата сообщения: 10.09.2014 22:26
Кто подскажет?:

Программа, при установке и регистрации, создаёт такой вот хитрый ключик:

Код: Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\Ey4w    h-
`{{]
"D1"=dword:00000001
"D2"="54332236444D2E3C"
"D3"="54332236444D2E3C"
"R1"="B4F7879D849025AE9598938583480773176E5F04090B531A0F6C"
"R2"="53375447354D5A4C4B383B4D244B2542452826442449453D5134"
Автор: coherent
Дата сообщения: 11.09.2014 13:41
AVanti473

Цитата:
Программа, при установке и регистрации, создаёт такой вот хитрый ключик:

Что за программа?

Цитата:
ThinApp, при создании сборки, понимать его не желает

На разных версиях так? Какой версией делался снимок?
Автор: AVanti473
Дата сообщения: 11.09.2014 14:12

Цитата:
На разных версиях так? Какой версией делался снимок?


Это не зависит от версий ThinApp, так как такой ключ при установки программы попадает в физический реестр. А программа ))) вот тут:
http://forum.ru-board.com/topic.cgi?forum=55&topic=11525&start=3840#13
там же ниже рег.данные.
Автор: coherent
Дата сообщения: 11.09.2014 16:10
Да, сборка, если ее зарегистрировать после запуска, с таким "некошерным" реестром работает без проблем. А если конвертнуть рабочий tvr в txt и закинуть его в проект, то уже выкидывает ошибку.
Автор: AVanti473
Дата сообщения: 11.09.2014 19:04

Цитата:
то уже выкидывает ошибку


Вот собственно что за ключик хитровымученный такой? Хотелось бы конечно разобраться, да только моей компетенции здесь явно маловато... Поскольку ключик находится в CLSID, он, по идее, должен иметь такой формат {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}. Мне больше интересно, если даже расшифровать юникод в этот формат, то, примет программа такой ключ, или только в виде юникода? Если только в виде юникода, то программу надо ломать, а это уже не просто снифер для ключей регистрации, а работа с кодом программы. Нужны знатоки...
Автор: pavlaf
Дата сообщения: 12.09.2014 11:46
Русский перевод мануалов ThinApp 5.0:
https://yadi.sk/d/O3G7WIqGbSDYh
В одном файле объединены Руководство пользователя и Справочник по параметрам в файле Package.ini. Особенности перевода изложены в предисловии.
Если Вы раньше скачали отдельный перевод справочника, удалите его.
Последнее обновление: 2014.09.13, 03:00
Спасибо всем, кто присылает замечания.

Вся подборка русских мануалов по ThinApp:
http://yadi.sk/d/eNhwrj3YRAV84
Не переведена пока только книга Бьорка, но перевод будет.
Вся подборка русских мануалов по виртуализации:
https://yadi.sk/d/xia4d6yibLxMA
Автор: AVanti473
Дата сообщения: 12.09.2014 12:28
pavlaf

Супер!

Теперь надо всё внимательно изучить и закинуть в шапку!

Я же говорил, что всё получится!!!
Автор: dinis124
Дата сообщения: 15.09.2014 12:28
Привет парни. нет случайно в загашничке плагина для VMware ThinApp flash player active x 10, для опытов.
Автор: AVanti473
Дата сообщения: 15.09.2014 20:07
coherent, по вышеизложенной проблеме с ключом реестра. Вы писали:


Цитата:
Да, сборка, если ее зарегистрировать после запуска, с таким "некошерным" реестром работает без проблем.


Раз так, возникла такая вот мысль: Что если скриптом добавлять значения не в физический реестр из файла реестра рядом с сборкой, а в виртуальный реестр при помощи скрипта при первом создании песочницы. Одно только НО, я не уверен как это сделать правильно. Согласно мануала, должно быть как-то так:


Код: Function OnFirstSandboxOwner
Origin = GetEnvironmentVariable("TS_ORIGIN")
Set WSHShell = CreateObject("Wscript.Shell")
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\Software\Classes\CLSID\Ey4w    h-
`{{,"
End Function
Автор: dinis124
Дата сообщения: 15.09.2014 20:33
coherent,


Цитата:
Да, сборка, если ее зарегистрировать после запуска, с таким "некошерным" реестром работает без проблем.


Вот и не проще удалить данные из реестра после закрытия портативки? По моему проще. Зажали Flash плагин мне Пошел сам делать.
Автор: AVanti473
Дата сообщения: 15.09.2014 21:31
dinis124


Цитата:
Вот и не проще удалить данные из реестра после закрытия портативки?

Вопрос не в этом, а в том, как корректно добавить такие данные в реестр при старте программы, без участия пользователя... На екзелабе тоже предложили ряд решений, но они, как показала практика, не вшиваются нормально в виртуальный контейнер, а могут корректно сработать лишь в физической среде. Лаунчер в виртуале не запускается, а curvekey.exe не может из виртуального контейнера добавить в ключ все значения, как будто это обычный регфайл. Всё сводится к тому, что надо патчить программу, а этого как раз и не особо хочется. Остаются ещё танцы с ,bat файлами типа:


Код: Добавить значение
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v Path /t REG_EXPAND_SZ /d "%systemroot%\Path.exe" /f

Удалить значение (достаточно имени ключа)
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Path" /f

Где:
/v -имя
/t -тип
/d -значение
/f -не запрашивать подтверждение у пользователя
Автор: coherent
Дата сообщения: 16.09.2014 10:14
AVanti473

Цитата:
Вполне возможно, что из виртуального контейнера с ним вообще ничего сделать будет нельзя...

Если регистрировать виртуально запущенное приложение, то этот ключ без проблем создается в виртуальном реестре.

Цитата:
Интересно, а есть какие-нибудь обратные слеши, как в PHP, чтобы экранировать непонятный скрипту символ?...

Попробуйте тут поспрашивать. Там более предметно занимаются vbs-скриптами.
Автор: AVanti473
Дата сообщения: 16.09.2014 12:12

Цитата:
Если регистрировать виртуально запущенное приложение, то этот ключ без проблем создается в виртуальном реестре.


Это-то как раз я уже заметил и изучил


Цитата:
Попробуйте тут поспрашивать. Там более предметно занимаются vbs-скриптами.


Ок! Спасибо! Сегодня вечерком туда наведаюсь...
Автор: kaesda
Дата сообщения: 17.09.2014 07:11
Доброго времени суток!
Подскажите, пожалуйста, есть ли ограничения на размер содержимого для создания portable приложения?
Почему возник вопрос? Задался целью сделать portable adobe cc2014. Точнее не всю коллекцию, а лишь нужные приложения. По отдельности можно, но как отдельно портируемые приложения связать с собой для передачи данных и возврат их обратно? В Адобовских программах есть такая приятная особенность. Вот и пришлось собрать несколько приложений в одном месте.
На виртуальной машине все установил, настроил, получил конечный результат. В папку capture было скопировано 15 Гб, в папке bin кроме "ярлычков" программ dat-файл размером 4 Гб. На виртуалке приложения запускаются. При запуске программ на хост-машине появляется сообщение "Неустранимая ошибка приложения. Unable to open"/ Подскажите, в чем может быть проблема?
Автор: dinis124
Дата сообщения: 17.09.2014 07:59
Жжете. Да в чем угодно. Например в самой идее создания.

ChildProcessEnvironmentDefault=External

Возможно так.

Но я бы на вашем месте забыл эту идею. Разве что совет дать, взять не половину коллекции если так уж хочется, а пару софтин, смотреть и пробовать, что как и куда. А проверять работоспособность на виртуальной машине, там где вы собирали портативную программу нет смысла. В вашем случае проще виртулаьную машину на флешку кинуть чтобы носить с собой коллекцию. Я примерно о том же о чем и у вас.

В сети куча к примеру Adobe Photoshop Portable, большая часть из них Г. А это всего одна программа.
Я для себя делал Adobe Photoshop CS6 шлифуя его с пол месяца только, я уже не пишу о плагинах с которыми намучался...
Автор: kaesda
Дата сообщения: 17.09.2014 08:05
Ага, я примерно так же и поступил. Решил сделать две сборки: одна с двумя программами для видео, другая - с двумя программами для фото. Посмотрим что получится. Уж больно не удобно таскать с собой виртуальную машину и работать в ней.
Автор: AVanti473
Дата сообщения: 17.09.2014 20:17

Цитата:
Ага, я примерно так же и поступил. Решил сделать две сборки: одна с двумя программами для видео, другая - с двумя программами для фото


Я делал в ThinApp пакет из премьер про, афтерэффекта и фотошопа разом. Получилось чёрти что. По факту, относительно норм работало что-то одно. Помню, квиктаймплеер имел мозг, так как если я его кидал в пакет, то адоб его видеть не желал в виртуале. Плагином эта дрянь тоже в пакет не ложилась. в систему его ставить откровенно в па*лу. Фотошоп без настроек и плагинов - кастрат. Афтерэффектс вылетает из за отсутствия квиктаймплеера, а адоб премьер про работает конечно, но это того не стоит, чтобы так напрягаться с портаблом. К тому же даже паковка (сборка) без сжатия в этом проекте утомляет... Идея на поверку - сплошной фейк. К тому же приложения по видеомонтажу все х64-ые, а это вызывает глюки при работе в хост системе. Да и им инет надо при сборке обязательно отрубить, иначе всё бесполезно, вылетит рега за милую душу при втором же запуске...

P.S. Не стоит забывать о геморных адобовских процессах, которые отказываются выгружаться по хорошему, блокируя песочницу...
Автор: kaesda
Дата сообщения: 18.09.2014 06:08
Да, все так. Печально как-то.
Видимо оптимальным вариантом в данном случае остается таскать с собой виртуальную машину, максимально ее облегчив...
Автор: AVanti473
Дата сообщения: 18.09.2014 10:28

Цитата:
Видимо оптимальным вариантом в данном случае остается таскать с собой виртуальную машину


Не совсем... Тут тоже спрятан подводный камень: Увы, при редактировании тяжёлого видео, доступа ко всем возможностям видеокарты не получить, а оперативной памяти, отданной виртуалке, как правило не хватит даже для сносного рендеринга (если конечно у Вас в компе не 8Гб оперативы и 4 Вы отдали виртуалке)... Так же, нельзя подключить виртуалку для снятия входного сигнала через PCI карты захвата. При работе с тяжёлой трёхмерной графикой будут проблемы с подключением дров 3D на виртуалку, тем более если она портабельная. И вообще, будет напряг подключения любых внешних устройств типа RAW камер. Так что не всё так просто...

Есть один нескладный выход, но он не лежит в области портабелизации... Сам я не пробовал, но подумывал о нём, как о возможном. Имеется в виду загрузка с внешнего или виртуального диска, на котором будет ваша система со всеми прогами, но с одной разницей. Есть какая-то мелкософтовская технология, предотвращения записи данных. эту методу применяют для загрузочных флешек типа 2k10. Суть в том, что готовая система на флешке защищена от изменений, а все изменения пишутся или в оперативную память, или в определённое место на диске, но, после перезагрузки слетают. Такой способ помогает быстро установить все необходимые дрова из любого (можно встроенного) драйверпака и работать на компе уже с дровами и на своей системе, не трогая установленную. Определение и установка дров из драйверпака обычно занимает от 1,5 до 5 минут, в зависимости от сложности конфигурации железа и его возможностей. Зато, будет прямой доступ ко всем физическим средствам компа. Этот вопрос конечно требует изучения. Если пойдёте по этому пути, пожалуйста, дайте знать потом в личку, что у вас получиться так-как результат мне тоже интересен!
Автор: VitRom
Дата сообщения: 18.09.2014 11:41

Цитата:
Есть какая-то мелкософтовская технология, предотвращения записи данных.
Дык SteadyState.
Только она может быть старовата для нынешних хомячковых ОСей.
Автор: KLASS
Дата сообщения: 18.09.2014 13:54

Цитата:
Есть какая-то мелкософтовская технология, предотвращения записи данных

UWF присутствует в линейке Windows Embedded с возможностью использовать не только оперативку, но и запись в файл UWFSWAP.sys.

Цитата:
Такой способ помогает быстро установить все необходимые дрова

9 из 10 дров требуют перезагрузки с вытекающими. По этой причине (да и официально не поддерживается) включать UWF в системе находящейся на USB-бессмысленно, т.к. при загрузке с USB на разном железе начнется процесс установки драйверов с последующей перезагрузкой, после которой дрова начнут ставиться по новой...
У мну основная система (на разделе жесткого диска, можно поставить и в VHD) Embedded Industry 8.1 с включенным UWF (с записью изменений в файл, чтобы меньше кушало оперативку), в ней и создаю портативки. Перегрузился и "...чисто как в трамвае" (С).
Автор: VitRom
Дата сообщения: 18.09.2014 15:59

Цитата:
на разном железе начнется процесс установки драйверов с последующей перезагрузкой
может быть это можно обойти, если использовать трюки типа MergeIDE.bat (который "сливал" кучу разных контроллеров в "стандартный ИДЕ")
Автор: kaesda
Дата сообщения: 18.09.2014 16:32
Как много новых для меня технологий! Придется все изучать. Ведь можно же как-то побороть эту проблему?!

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149

Предыдущая тема: Проблемы с закачкой


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