Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » VMware ThinApp (formerly Thinstall) 3

Модерирует : gyra, Maz

articlebot (28-02-2016 18:11): VMware ThinApp (formerly Thinstall) часть 4  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9

   

AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavlaf
 
Как вариант
 
coherent

Цитата:
ни какие переведенные на русский руководства это не исправят

 
для справки

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 13:51 27-05-2014 | Исправлено: AVanti473, 14:02 27-05-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

Цитата:
для справки

Не смотрел и, если честно, то смотреть не буду. Потому что мне это неинтересно и не нужно. Без обид.
А если предметно, тот факт, что человек прочитал/посмотрел, пусть даже на русском языке, совершенно не означает, что он что-то извлек. Установленный факт. Не хочу переходить на личности, поэтому приводить примеры не буду.
Касательно захламления топика, я в свое время (и уверен не я один) прочитал все части темы. Не поиском чего-то конкретного в версии для печати, а от и до. И почерпнул для себя много полезного. Теперь поставьте себя на место такого человека. Сколько ему нужно будет перелопатить совершенно ненужной информации на тему перевода и все, что с ним связано?
Казалось бы, хочет человек перевести - переведи и выложи. И все дела! Что еще обсуждать? Черный верх, белый низ или белый верх, черный низ?
 

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:39 27-05-2014 | Исправлено: coherent, 14:41 27-05-2014
dandvd

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По поводу перевода мануала, есть отличный ресурс, именно для этого и предназначенный. http://notabenoid.com/

Всего записей: 640 | Зарегистр. 26-02-2008 | Отправлено: 16:00 27-05-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
есть отличный ресурс

 
dandvd наверное отличный, но дело то всё в том, что переводить должен человек, хотя бы имевший дело с ThinApp. Было бы всё так просто, давно бы уже всё перевели. Хотя, за идею спасибо, глядишь и пригодиться даже в этом деле...!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 18:48 27-05-2014
distortion



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не, ну право... уже страницу накатали ерунды всякой. все знания уже давно формализованы, нужные ссылки в шапке.

Всего записей: 3708 | Зарегистр. 07-04-2001 | Отправлено: 19:30 27-05-2014
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Чтобы прекратить тут посты не по теме создал отдельную тему для обсуждения перевода: VMware ThinApp - обсуждение перевода.
Все дальнейшие посты с обсуждением форматов справки сервисов, кому что переводить предлагаю там.

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 19:42 27-05-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123
Может и в шапку это добавить? А то что-то мне подсказывает, что просто так эта "актуальная" тема здесь не иссякнет и через пост-другой все начнется по-новой.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 20:03 27-05-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кому не влом, можете помочь с одной задачкой?
 
Значится при старте сборки надо добавить ключи в реальный реестр, а при завершении её работы надо, чтобы ключи удалялись.
 
Своим "худым" мозгом я понял только что для первой части задания можно использовать скрипт типа:

Код:
Function OnFirstParentStart
ExecuteVirtualProcess "regedit /s C:\tmp\install.reg"
End Function

С содержимым файла install.reg типа:

Код:
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Новый раздел #1]
"Новый параметр #1"=dword:00000000

 
А для второй части задания скрипт:

Код:
Function OnFirstParentExit
ExecuteVirtualProcess "regedit /s C:\tmp\uninstall.reg"
End Function

С содержимым файла uninstall.reg соответственно:

Код:
Windows Registry Editor Version 5.00
 
[-HKEY_LOCAL_MACHINE\SOFTWARE\Новый раздел #1]

 
Если это верно, то:
- Можно ли обе записи поместить в один скрипт? Если да, каков синтаксис записи?
- Как правильно указать пути к файлам install.reg и uninstall.reg? Должны ли они находиться в самой сборке, рядом с ней или в определённом месте?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 14:43 01-06-2014 | Исправлено: AVanti473, 14:45 01-06-2014
freedaw



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
К сожалению, не могу сейчас уделить достаточно времени вашему вопросу из-за занятости.
Но из того, что сразу бросилось в глаза:
- если меняете реальный реестр, то нужно использовать API функцию Function ExecuteExternalProcess, чтобы запустить regedit в реальной системе;
- если файлы install.reg и uninstall.reg будете создавать скриптом при запуске сборки, то создавать их следует в папке, изоляция для которой в сборке назначена как Merged;
- если файлы install.reg и uninstall.reg уже есть готовые, то внутри сборки их быть не должно - можно положить рядом с ехе-шником сборки и задавать путь к ним через API функцию (тогда будет возможен запуск сборки из произвольного места)
Origin = GetEnvironmentVariable("TS_ORIGIN") - это будет путь к ехе-шнику сборки, потом с помощью скрипта отсекаете имя сборки после последнего слеша и к полученному пути добавляете имя регфайла - получите аргумент для командной строки запуска regedit;
- также, будет правильным после запуска regedit вставить ожидание, пока он не отработает, типа этого
RegEditPid = ExecuteExternalProcess("regedit /s " & chr(34) & RegFileName & chr(34))  
WaitForProcess RegEditPid, 0  
Пихать всё в один скрипт не вижу смысла - создайте два разных .vbs файла, чтобы не путаться, а сборка сама запустит нужный в нужный момент.
 
Почитайте про это в старом хелпе от 3-х версий в разделах Scripting и API functions - там более понятно написано и примеры есть.

Всего записей: 788 | Зарегистр. 04-11-2012 | Отправлено: 15:52 01-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

Цитата:
Должны ли они находиться в самой сборке, рядом с ней или в определённом месте?

ИМХО, логично расположить их рядом с исполняемым ехе-файлом сборки или в отдельной папке, если очень хочется, но снова-таки рядом с исполняемым ехе-файлом сборки.
 

Цитата:
Как правильно указать пути к файлам install.reg и uninstall.reg?

У каждого свои преференции. Например, так (если они рядом с ехе)

Код:
Origin = GetEnvironmentVariable("TS_ORIGIN")
RegFilesPath = Left(Origin, InStrRev(Origin, "\") - 1)
InstallReg = RegFilesPath + "\install.reg"
UninstallReg = RegFilesPath + "\uninstall.reg"

 

Цитата:
Можно ли обе записи поместить в один скрипт?

Безусловно. Пути определите только один раз в начале скрипта, а не в каждой из функций OnFirstParentStart и OnFirstParentExit.
 
Запускаете через ExecuteExternalProcess, поскольку речь о манипуляциях с реальным реестром

Код:
Function OnFirstParentStart
  id = ExecuteExternalProcess("regedit /s " & chr(34) & InstallReg & chr(34))  
  WaitForProcess id, 0
End Function

аналогично для удаления.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 16:32 01-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freedaw, coherent я верно понял, при условии, что файлы install.reg и uninstall.reg находятся рядом с экзешником сборки, фаил скрипта должен выглядеть так?
 

Код:
' Определяю местоположение reg файлов относительно экзешника
Origin = GetEnvironmentVariable("TS_ORIGIN")  
RegFilesPath = Left(Origin, InStrRev(Origin, "\") - 1)  
InstallReg = RegFilesPath + "\install.reg"  
UninstallReg = RegFilesPath + "\uninstall.reg"
 
' Запускаю процесс для regedit в реальной системе
Function OnFirstParentStart  
id = ExecuteExternalProcess("regedit /s " & chr(34) & InstallReg & chr(34))  
WaitForProcess id, 0  
End Function
 
' При запуске произойдёт импорт ключей из файла install.reg
Function OnFirstParentStart  
ExecuteVirtualProcess "regedit /s InstallReg"  
End Function
 
' По завершению программы произойдёт удаление ключей из файла uninstall.reg
Function OnFirstParentExit  
ExecuteVirtualProcess "regedit /s UninstallReg"  
End Function

 
Или я ошибаюсь?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 17:19 01-06-2014 | Исправлено: AVanti473, 17:23 01-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

Код:
Origin = GetEnvironmentVariable("TS_ORIGIN")  
RegFilesPath = Left(Origin, InStrRev(Origin, "\") - 1)  
InstallReg = RegFilesPath + "\install.reg"  
UninstallReg = RegFilesPath + "\uninstall.reg"  
   
'Добавление в реестр  
Function OnFirstSandboxOwner  
  id = ExecuteExternalProcess("regedit /s " & chr(34) & InstallReg & chr(34))    
  WaitForProcess id, 0  
End Function
 
'Удаление из реестра
Function OnFirstParentExit  
  id = ExecuteExternalProcess("regedit /s " & chr(34) & UninstallReg & chr(34))    
  WaitForProcess id, 0  
End Function

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 17:32 01-06-2014 | Исправлено: coherent, 13:54 02-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent, большущее спасибо! Вечером буду пробовать!    
 
freedaw, тоже благодарю за разъяснения, без них было бы сложнее разобраться что к чему!    

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 17:39 01-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 
Всё работает отлично! ключи добавляются при старте и исчезают при закрытии программы! Закономерен следующий вопрос, не задай который, я был бы полным косячником во всех смыслах:
Как можно сначала, при старте сборки, сохранить куда-нибудь интересующие реальные ключи, потом импортировать нужные в реестр, по закрытию удалить импортированные, и вернуть сохранённые?
 
Тут наверняка понадобиться нечто большее чем просто скрипт и файлы реестра для импорта... Понимаю, вопрос избитый, но его решение, или вариант решения, могли бы всё-таки поднять качество сборок других сборщиков. Ведь в первую очередь, портабельный софт не должен вредить системе или уже установленным программам, а при наличии на компьютере аналогичного установленного софта, вмешательство и уничтожение его ключей по завершению работы портабельной сборки, может быть фатальным. Безусловно, есть тема X-Launcher, но, во первых - я в ней ничего не понимаю, во вторых - мне интересно это решение в рамках работы ThinApp, и в третьих - от метания между X-Launcher и ThinApp, всё равно как в пословице за двумя зайцами...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:24 01-06-2014 | Исправлено: AVanti473, 21:25 01-06-2014
freedaw



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

Цитата:
Как можно сначала, при старте сборки, сохранить куда-нибудь интересующие реальные ключи, потом импортировать нужные в реестр, по закрытию удалить импортированные, и вернуть сохранённые?

Да по тому же принципу, что и в выше приведённом скрипте:
вы же уже научились запускать regedit в реальной системе, добавьте в скрипт строки для сохранения нужного ключа рядом с ехе-шником под каким-либо именем и строки для записи его обратно в реестр в нужные моменты.

Всего записей: 788 | Зарегистр. 04-11-2012 | Отправлено: 21:40 01-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Да по тому же принципу, что и в выше приведённом скрипте:

 
freedaw, если Вас не затруднит, можно готовый скриптик плиз? Файлы те-же о которых писалось выше, запись в реестре та-же, только сейчас мы предположим, что она уже существовала в системе до запуска сборки
Буду признателен за такую помощь!
 
И ещё вопросик не по делу и по делу одновременно. Столкнулся с тем, что надо перевести файлы реестра сборки в формат reg файла для реестра. Разумеется чтобы составить необходимый для импорта фаил реестра. Проблема вот в чём:
Согласно всем известного FAQ беру файлы "HKEY_CURRENT_USER.txt", "HKEY_LOCAL_MACHINE.txt", "HKEY_USERS.txt", "Package.ini", и помещаю их в C:\1
В C:\Program Files\VMware\VMware ThinApp создаю фаил "1.bat" с таким содержимым

Код:
vregtool.exe C:\1\convert.tvr ImportDir C:\1

Стартую его и получаю в папке C:\1 фаил "convert.tvr", который переименовываю в "Registry.rw.tvr" и отправляю в папку с vregtool.exe
Создаю там фаил "2.bat" с содержимым

Код:
vregtool.exe Registry.rw.tvr ExportReg Reg.reg

Стартую его и получаю вылет программы с вот такой вот ошибкой
 

 
Фаил Reg.reg получается, но его содержание вот такое:

Код:
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{13C03EB5-944E-5126-C3CF-154AFB5C2E55}]
@="

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

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:16 01-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Вот мой пример работы с реестром в проекте (без бэкапа). Файлы реестра хранятся внутри.
 
Бэкап реестра:

Код:
Origin = GetEnvironmentVariable("TS_ORIGIN")  
RegFilesPath = Left(Origin, InStrRev(Origin, "\") - 1)  
InstallReg = RegFilesPath + "\install.reg"  
UninstallReg = RegFilesPath + "\uninstall.reg"
BackupReg = RegFilesPath + "\backup.reg"
   
Function OnFirstParentStart
  ' Бэкап раздела [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control]
  WaitForProcess ExecuteExternalProcess("regedit /e " & chr(34) & BackupReg & chr(34) & " ""HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control"""), 0
  'Добавление в реестр  
  id = ExecuteExternalProcess("regedit /s " & chr(34) & InstallReg & chr(34))    
  WaitForProcess id, 0  
End Function
 
Function OnFirstParentExit
  'Удаление из реестра
  id = ExecuteExternalProcess("regedit /s " & chr(34) & UninstallReg & chr(34))    
  WaitForProcess id, 0
  ' Восстановлении из бэкапа
  Call WaitForProcess(ExecuteExternalProcess("regedit /s " & chr(34) & BackuplReg & chr(34)), 0)
End Function

 
Но есть одно большое но: вставить в начало функций OnFirstParentStart, OnFirstParentExit вызов MsgBox "имя функции", чтобы узнать сколько раз они вызываются для вашего проекта. В моём примере эти ф. вызываются по 2 раза.
Соответственно, если они вызываются по 2 и более раза, то нужно проверять существование файла бэкапа, чтобы не затереть его новыми значениями после импорта модификаций.
 
Добавлено позже [4:58]: вот другой мой пример по работе с реестром вместе с бэкапом.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 02:52 02-06-2014 | Исправлено: SLasH, 05:04 02-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
1. Батник для конвертирования txt -> reg

Код:
vregtool Registry.rw.tvr ImportDir .
vregtool Registry.rw.tvr ExportReg regfile.reg

Я не сторонник плодить какие-то папки, пихать туда файлы и т.д. Батник лежит в папке программы ( там, где и vregtool.exe), туда же закидываете нужные txt-файлы, запускаете батник и получаете искомый regfile.reg, который обзываете, как Вам уже угодно
 
2. Если не секрет, что это у Вас за ThinApp-сборка, которая требует описанные манипуляции в реальном реестре?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 10:59 02-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если не секрет, что это у Вас за ThinApp-сборка, которая требует описанные манипуляции в реальном реестре?

 
Да не секрет. ))) Только не пинайте больно... Собственно всё описано здесь: http://forum.ru-board.com/topic.cgi?forum=55&topic=11671&start=2260#4
Но это я так, просто пробую некоторые решения. Суть не в том, чтобы сделать полностью работающую портабельную версию этой программы (хотя, кому плохо-то будет, если что-то выйдет), суть в том, чтобы научиться новому в работе с ThinApp! Скрипты, батники - раньше я этого не применял в сборках вообще, попросту не было необходимости! Зато сейчас, чем не шанс узнать и использовать новые для меня функции! )))
 
Добавлено:
coherent
 
По поводу батника согласен! Спасибо за подсказку, но ошибка вываливается всё равно...
Может у Вас получиться иначе? Вот архивчик с файлами, которые у меня не получается перевести в файлы реестра для импорта: http://rghost.ru/56082593 За Package.ini не критикуйте плиз, каждый обрабатывает по своему. Можно конечно удалить весь закоментированный мусор, можно убрать все выключенные точки входа, да только мне это как-то без разницы, тоесть не принципиально. Килобайтом меньше, килобайтом больше - не суть важно... )))
 
Добавлено:
SLasH, Огромное, огромное спасибо за готовые решения!!! Первое понравилось в силу простоты, но не совсем понял в чём может быть загвоздка. Изучаю второе!  

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 12:10 02-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473 13:10 02-06-2014
Цитата:
не совсем понял в чём может быть загвоздка

Вставьте MsgBox и посмотрите сколько раз запускается каждая из функций. Если больше одного раза, то как раз то, о чём я говорил.
Пример:

Код:
Origin = GetEnvironmentVariable("TS_ORIGIN")  
RegFilesPath = Left(Origin, InStrRev(Origin, "\") - 1)  
InstallReg = RegFilesPath + "\install.reg"  
UninstallReg = RegFilesPath + "\uninstall.reg"
BackupReg = RegFilesPath + "\backup.reg"
   
Function OnFirstParentStart
const FUNC_NAME = "OnFirstParentStart"
  MsgBox FUNC_NAME
  ' Бэкап раздела [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control]
  WaitForProcess ExecuteExternalProcess("regedit /e " & chr(34) & BackupReg & chr(34) & " ""HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control"""), 0
  'Добавление в реестр  
  id = ExecuteExternalProcess("regedit /s " & chr(34) & InstallReg & chr(34))    
  WaitForProcess id, 0  
End Function
 
Function OnFirstParentExit
const FUNC_NAME = "OnFirstParentExit"
  MsgBox FUNC_NAME
  'Удаление из реестра
  id = ExecuteExternalProcess("regedit /s " & chr(34) & UninstallReg & chr(34))    
  WaitForProcess id, 0
  ' Восстановлении из бэкапа
  Call WaitForProcess(ExecuteExternalProcess("regedit /s " & chr(34) & BackuplReg & chr(34)), 0)
End Function

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 13:12 02-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
5-ки у меня нет, поэтому проверить не могу. На 4.7.1 тоже выкидывает ошибку. Похоже, что проблема в записи вида "REG_SZ=". Остановка происходит именно на этом месте. В младших версиях эта запись имеет вид "REG_SZ=#00". Если заменить первое на второе, то все конвертируется без ошибки. Вот reg-файл Подробнее...
Проверьте все ли правильно.
 
Добавлено:
SLasH
Лучше, наверное, использовать OnFirstSandboxOwner, а не OnFirstParentStart.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 13:47 02-06-2014 | Исправлено: coherent, 14:00 02-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent 14:47 02-06-2014
Цитата:
Лучше, наверное, использовать OnFirstSandboxOwner, а не OnFirstParentStart

Именно OnFirstSandboxOwner я и использовал в своих примера, на предыдущей странице по ссылкам. OnFirstSandboxOwner вызываться должна 1 раз.
А OnFirstParentStart просто скопипастил.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 14:07 02-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, прошу, пожалуйста, сильно не ругать за вопрос. На одном из форумов нашел *.vbs-скрипт, который позволяет записать в переменную путь к "песочнице".
 
Вопрос в том, каким образом модернизировать этот скрипт, чтобы он позволял, извлекать из виртуального контейнера (виртуальной среды) некоторый исполняемый файл, например, "MyProgram.exe", в каталог "песочницы" (реальная файловая система) и запускать его на исполнение.
 
Сам в VBS не шибко разбираюсь, но, м.б. у Вас есть идеи. Думаю в ветке по VBS, меня немного не поймут с нашими:
Function OnLastProcessExit
...
End Function
 
Оговорюсь, в виртуальной среде файл находится по пути "%ProgramFilesDir%\Data\MyProgram.exe", при извлечении в реальную систему (по завершению работы портабельного приложения), он должен попасть в песочницу "Каталог_песочницы\MyProgram.exe".

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 01:31 03-06-2014 | Исправлено: Artem_Butenko, 01:45 03-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
сильно не ругать за вопрос

 
Artem_Butenko
 
А меня извините за любопытство. Интересно зачем такая манипуляция внутри песочницы? Получается, программа отработала, а по закрытию скрипт ThinApp выкинул екзкшник из виртуальной среды в реальную, но в ту же песочницу? Просто сижу и думаю, а что дальше можно или нужно делать с этим екзешником?
 

Цитата:
извлекать из виртуального контейнера (виртуальной среды) некоторый исполняемый файл, например, "MyProgram.exe", в каталог "песочницы" (реальная файловая система) и запускать его на исполнение.

 
А его по извлечению ещё и запустить предполагается в реальной системе?... Зачем тогда изначально контейнер ThinApp?
 
Заранее прошу прощения, что не в моих силах помочь с решением Вашего вопроса, мне просто он показался интересным и любопытным!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 08:05 03-06-2014 | Исправлено: AVanti473, 08:07 03-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Если это не очень большой секрет, зачем это нужно. И не столько для любопытства, от этого зависит реализация скрипта.
Плюс какая последовательность действий? После завершения сборки вынести MyProgram.exe в  песочницу и запустить на исполнение? А дальше что? MyProgram.exe останется в песочнице или его надо удалять по завершении работы? Это один и тот же файл или каждый раз создается разный? Если один и тот же, зачем его каждый раз выносить? И т.д....

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 11:15 03-06-2014 | Исправлено: coherent, 11:15 03-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 
Файл один и тот же, вроде как понятно сформулировал. Портабельное приложение завершает работу, "MyProgram.exe" экспортируется в "песочницу" и выполняется, после, - удаляется. Все. Если есть идеи, пожалуйста, помогите.
 
Добавлено:

Цитата:
Если это не очень большой секрет, зачем это нужно.

 
Пишу на AutoIt, т.н. "ThinApp_FileCleaner", проект готов, осталось протестировать его, обещаю выложить здесь же, не жмот. Теперь только одна проблема, изложенная выше. Есть варианты?

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 15:38 03-06-2014 | Исправлено: Artem_Butenko, 16:34 03-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Есть одна проблема и возможно она принципиальная. Закинуть MyProgram.exe в песочницу не проблема, а вот запустить ее там во время работы сборки (выполнение скрипта - это все еше работаюшая сборка) невозможно. Возможно есть пути решения этого, но я их не знаю. Если Вас устраивает, то рабочий вариант такой: MyProgram.exe (OnLastProcessExit) выносится из виртуальной среды в реальную рядом с исполняемым файлом сборки и запускается, а по закрытию удаляется.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 20:27 03-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Обязательно извлекать в песочницу?
Я приводил примеры в посте http://forum.ru-board.com/topic.cgi?forum=5&topic=31117&start=3500#18
там по ссылкам есть пример копирования exe-шника изнутри наружу в папку %TEMP% и запуска в реальной системе.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 22:41 03-06-2014
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При запуске портативки (Password Recovery Bundle) рядом с песочницей появляется log-файл (bundle.log), при стационарной установке файл находится в папке с программой. Как заставить его "не высовываться" дальше песочницы ?

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 00:00 04-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возможно изоляцию поставить для %ProgramFilesDir% в Full.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 00:15 04-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent, SLasH, ещё раз хотел поблагодарить за ценную информацию! К сожалению, или к счастью, дело оказалось не в импорте значений реестра в реальную файловую систему, но то, что я узнал с вашей помощью, для меня более ценно, чем проект, которым я занимаюсь в данный момент!
С Reg Organizer всё оказалось до банального просто! И хотя сперва я полез в дебри анпакеров, для снятия защиты ASProtect 2.1x SKE -> Alexey Solodovnikov [Overlay] с RegOrganizer.exe, но дело оказалось куда проще! Просто, ThinApp v5.0.0 Build 1391583, по каким-то невероятным причинам, не может собрать полнофункциональный портабл этой программы... Пересборка в ThinApp v4.7.3-891762 (7101) решает все проблемы!
Слукавил. Почти все проблемы. ))) Одна осталась, её суть я описал здесь: http://forum.ru-board.com/topic.cgi?forum=55&topic=11671&start=2280#20
Если в двух словах, то в реальной системе, по пути:
C:\Documents and Settings\Юзверь\AppData\Local
должны появляться папки:
ChemTable Software\Reg Organizer
Если они появляются в песочнице через включение в сборку их изоляции в %Local AppData%, то перестаёт корректно работать функция оптимизации реестра!
Вот подавай им реальную систему и всё тут!
Это как раз совсем не сложно, сложно убрать эти следы после работы программы!
Нужен скрипт, и батник к нему. Подсобите пожалуйста, пока я себе окончательно не свернул голову с этой программулиной... )))
P.S. Есть нюанс! Оптимизация (она же дефрагментация) реестра, всегда завершается мгновенной автоматической перезагрузкой! Успеет ли сработать такой скрипт, убрав следы прибывания программы, или нужно будет чтобы следы убирались при её следующем запуске, а в описании к портаблу давать юзерам инфу об обязательном запуске проги после подобной чистки? А может скрипт будет удалять вышеуказанные папки и при старте и при запуске, чтобы уже наверняка?
 
Добавлено:
Пока, по удалению, я нашёл лишь это:
 

Код:
<%  
dim filesys, demofolder  
set filesys = CreateObject ("Scripting.FileSystemObject")  
set demofolder = filesys.GetFolder("C:\Documents and Settings\Юзверь\AppData\Local\ChemTable Software")  
demofolder.Delete  
%>

 
Если это работает, то и батник не понадобиться... Но, а как правильно, так?:
 

Код:
Function OnFirstParentExit
<%  
dim filesys, demofolder  
set filesys = CreateObject ("Scripting.FileSystemObject")  
set demofolder = filesys.GetFolder("C:\Documents and Settings\Юзверь\AppData\Local\ChemTable Software")  
demofolder.Delete  
%>
End Function

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 08:07 04-06-2014
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Возможно изоляцию поставить для %ProgramFilesDir% в Full.

Не помогает, log-файл всё равно рядом с песочницей.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 08:56 04-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Не помогает, log-файл всё равно рядом с песочницей.

 
Соури, не вчитывался, на вскидку, может это поможет:
ВPackage.ini в [BuildOptions] прописать
CachePath=<sandbox_path>
 
Или встречал вываливание файлов из песочницы в случае запуска портабельной программы чёрт знает из каких дебрь папок. Запустите напрямую с корня диска и лог должен оказаться в песочнице. Кажись на это как-то влияет общая длинна символов до файла, и опять же - латиница, кирилица в названиях папок...
 
P.S. Такой же экзотический косяк я сам наблюдал, но стоило только запустить портабельную программу с корня диска, как всё прошло. Впрочем и из других мест тоже беспроблемно запускалась, но вот с какого-то одного (уже не вспомню, помню что путь длинным был), запускалась с вываливанием файлов из песочницы к екзешнику. Тогда не придал значения. Решил что это баг и его исправят в следующих версиях ThinApp...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 09:01 04-06-2014 | Исправлено: AVanti473, 09:08 04-06-2014
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
CachePath=<sandbox_path>  

Это я уже проделывал, запуск из корня диска тоже ничего не меняет...

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 09:17 04-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
запуск из корня диска тоже ничего не меняет...

 
Ясно. Попробуйте пересобрать проект на другой, более ранней версии ThinApp. Может совет и нелепый, но, а вдруг?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 09:20 04-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Если устраивает вынос MyProgram.exe рядом с ехе-файлом сборки, то вот  
скрипт..
 
Добавлено:
AVanti473
Попробуйте так..
Лично я не сторонник портабелизации такого рода програм, не знаеш где, когда и на какие грабли наступишь. Да и собственно оптимизация реестра уже даже для ХР не дает ощутимого результата, влияющего на скорость. ИМХО, конечно.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 12:02 04-06-2014 | Исправлено: coherent, 12:22 04-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent, за решение благодарю, буду пробовать!!!    
 

Цитата:
Лично я не сторонник портабелизации такого рода програм

 
офтоп
 
Добавлено:
coherent
 
Скрипт работает! Благодарю! Есть одно но, как я и предполагал, увы он не успевает удалить папку. Система, после оптимизации, автоматом уходит в перезагрузку, а после перезагрузки папка на месте! Если без оптимизации создать там папку, то по завершению программы она удаляется без проблем.
И ещё такой момент. В реальной системе тоже может находиться аналогичная, инсталлированная программа, и папка ChemTable Software может содержать её данные, что спутает работу портабельной версии. Возможно, при старте тоже надо проверять наличие этой папки и удалять её?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 12:59 04-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

Цитата:
 Есть одно но, как я и предполагал, увы он не успевает удалить папку. Система, после оптимизации, автоматом уходит в перезагрузку, а после перезагрузки папка на месте! Если без оптимизации создать там папку, то по завершению программы она удаляется без проблем.

Думаю, что проблема не в том, что скрипт не успевает удалить папку, а потому что программа закрывается не естественным для нее путем, а ее закрывает система уходя на перезагрузку. Как-то так, не углубляясь в подробности. Хотя повторюсь, с нюансами работы Reg Organizer-а не знаком.

Цитата:
И ещё такой момент. В реальной системе тоже может находиться аналогичная, инсталлированная программа, и папка ChemTable Software может содержать её данные, что спутает работу портабельной версии. Возможно, при старте тоже надо проверять наличие этой папки и удалять её?

Наверное ее надо не удалять, а бекапить при старте (OnFirstSandboxOwner) и по завершению работы восстанавливать. Но в свете того, что папка не удаляется при перезагрузке, это будет тяжело сделать.
Весь вопрос в том, стоит ли овчинка выделки?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:47 04-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Весь вопрос в том, стоит ли овчинка выделки?

 
В любом случае у меня есть большое желание добить реализацию этого софта! Тем более, что и так уже всё важное работает, за исключением этой мелочи.
 

Цитата:
Наверное ее надо не удалять, а бекапить при старте (OnFirstSandboxOwner) и по завершению работы восстанавливать.

 
Собственно, если её вырезать то реальной программе на это чхать при старте. Никакой особой смысловой нагрузки в ней нет.
Но там хранятся бекапы:
C:\Documents and Settings\Юзверь\AppData\Local\ChemTable Software\Reg Organizer\backups
 
Возможно что надо бы бекапить... Что предложите?
 
Кстати, если даже в скрипте заменить OnLastProcessExit  на OnFirstParentExit, всё одно до перезагрузки папка не успевает удалиться... Как бы это решить... Может можно как-то организовать паузу до начала перезагрузки?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 17:49 04-06-2014 | Исправлено: AVanti473, 17:50 04-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 

Цитата:
Если устраивает вынос MyProgram.exe рядом с ехе-файлом сборки, то вот  
скрипт..

 
Печально, не работает...
 
SLasH
 

Цитата:
Обязательно извлекать в песочницу?  
Я приводил примеры в посте http://forum.ru-board.com/topic.cgi?forum=5&topic=31117&start=3500#18  
там по ссылкам есть пример копирования exe-шника изнутри наружу в папку %TEMP% и запуска в реальной системе.

 
Да, извлекать в песочницу обязательно. Сам в VBS не разбираюсь. Надеюсь на Вашу добрую помощь!

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 19:01 04-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473 18:49 04-06-2014
Цитата:
сё одно до перезагрузки папка не успевает удалиться... Как бы это решить...

До запуска программы - прописать в автозагрузку удаление папки.

Код:
Dim TmpDir: TmpDir = ExpandPath("%TEMP%")
Dim AutoRunScript: AutoRunScript = TmpDir & "\auto_run.bat"
Call WaitForProcess(ExecuteExternalProcess("cmd.exe /C reg add ""HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce"" /v Test /d " & chr(34) & AutoRunScript & chr(34)), 0)
Dim FSO: Set FSO = CreateObject("Scripting.filesystemObject")
const ForReading = 1, ForWriting = 2, ForAppending = 8
f = FSO.OpenTextFile(AutoRunScript, ForWriting, true)
f.WriteLine("rd /S /Q ""%AppData%\Local\ChemTable Software\Reg Organizer""")
f.Close

 
Добавлено:
Artem_Butenko
Не проверял, написал вручную на коленке:

Код:
Function OnLastProcessExit
const MegaProga = "MegaProga.exe"
Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim Origin: Origin = GetEnvironmentVariable("TS_ORIGIN")
' В проекте папка "%drive_c%\Progs" с exe-шниками, которые нужно вынести наружу
const PROG_PATH = "C:\Progs"
' Часть пути из PROG_PATH без буквы диска: \Progs
Dim PROG_SUB_PATH: PROG_SUB_PATH = Mid(PROG_PATH, 3)
' Внешний cmd.exe
Dim CMD_ETERNAL: CMD_ETERNAL = chr(34) & ExpandPath("%SystemRoot%\system32\cmd.exe") & chr(34)
' В проекте "%drive_c%\Progs\hstart.exe
Dim HSTART: HSTART = PROG_PATH & "\hstart.exe"
 
LastSlash = InStrRev(Origin, "\")
SourcePath = Left(Origin, LastSlash)
ExeName = Mid(Origin, LastSlash + 1, Len(Origin))
 
SandboxParent = GetBuildOption("SandboxPath")
SandboxName = GetBuildOption("SandboxName")
If SandboxParent = "." Then
    SandboxPath = SourcePath & SandboxName
Else
    SandboxPath = SandboxParent & "\" & SandboxName
End If
 
' Внешний hstart.exe: <SandBox>\Progs\hstart.exe
Dim HSTART_EXTERNAL: HSTART_EXTERNAL = SandboxPath & PROG_SUB_PATH & "\hstart.exe"
 
On Error Resume Next
' Копируем папку изнутри наружу: "C:\Progs" в песочницу
If Not FSO.FolderExists(SandboxPath & PROG_SUB_PATH) Then
    ' xcopy /E /H /R /Y C:\Progs <Sandbox>\Progs\
    cmd = CMD_ETERNAL & " /C xcopy /E /H /R /Y "& _
        chr(34)& PROG_PATH &chr(34)& _
        " " & _
        chr(34)& SandboxPath & PROG_SUB_PATH &"\"&chr(34)
    ' <Sandbox>\Progs\hstart.exe /NOCONSOLE ""C:\Windows\system32\cmd.exe" /C xcopy /E /H /R /Y "C:\Progs" <Sandbox>\Progs\""
    ExecuteVirtualProcess(HSTART & " /NOCONSOLE " & chr(34) & cmd & chr(34))
    ' Ожидаем, пока скопируется каталог PROG_PATH
    Do
        MySleep(1)
    Loop Until FSO.FolderExists(SandboxPath & PROG_SUB_PATH)
End If
 
' Запуск из песочницы
cmd = CMD_ETERNAL & " /C " & chr(34)& SandboxPath & PROG_SUB_PATH &"\"& MegaProga & chr(34)
Call WaitForProcess(ExecuteExternalProcess(HSTART_EXTERNAL & " /NOCONSOLE " & chr(34) & cmd & chr(34)), 0)
 
End Function
 
'--[ Пауза ]--------------------------------------------------------------------
Function MySleep(interval)
Dim i,j
    For i = 1 To 20000000*interval
        j = 1
    Next
End Function

В папке с проектом создаёте папку "%drive_c%\Progs" и кладёте туда MegaProga.exe и hstart.exe (его найдёте в гугле или по ссылкам из моих примеров).
Или переделываете скрипт по запуску MegaProga.exe по тому пути, где у вас лежит эта мегапрога.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 19:08 04-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
До запуска программы - прописать в автозагрузку удаление папки.

 
SLasH Кстати да! Золотая у Вас голова!!! Получается после перезагрузки стартанёт одноразовый запуск удаления папки. Ок! Но, а если нужно было наоборот, забекапить папку (если такая существовала), убрать её оттуда (опять же, если она существовала) перед запуском программы, удалить папку появившуюся в следствии работы портабельной программы, и вернуть забекапленную на место после перезагрузки? Возможно?
 
Если такое возможно, Вас не затруднит обозначить в скрипте комментарии того, как и для чего будут выполняться определённые команды?
 
И, я всё правильно понял по вашему скрипту?
вот

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 20:44 04-06-2014 | Исправлено: AVanti473, 20:56 04-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
 

Цитата:
Не проверял, написал вручную на коленке

 
Не робит, в чем проблема не пойму?
 
Добавлено:

Цитата:
Копируем папку изнутри наружу: "C:\Progs" в песочницу

 
Папку в "песочницу" копировать из виртуальной среды не нужно, только файлы из этой папки, в нашем случае "MegaProga.exe".

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 20:58 04-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko

Цитата:
Печально, не работает...

Странно, у меня работает. Я ж его не просто написал, как говорится на коленке, и выложил, а протестировал перед этим. И в чем проявляется неработоспособность? Может Вы переменные меняете, пути не соответствуют?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 21:31 04-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 
Попробую еще. Поясните о режимах изоляции для каталога с "MyProgram.exe".

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 22:31 04-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473 21:44 04-06-2014
Цитата:
Но, а если нужно было наоборот, забекапить папку (если такая существовала), убрать её оттуда (опять же, если она существовала) перед запуском программы, удалить папку появившуюся в следствии работы портабельной программы, и вернуть забекапленную на место после перезагрузки? Возможно?

Да. Завтра напишу, как.

Цитата:
И, я всё правильно понял по вашему скрипту?

Всё правильно.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 23:49 04-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko

Цитата:
Поясните о режимах изоляции для каталога с "MyProgram.exe".

Без разницы. Но если предметно, то MyProgram.exe находится здесь: %ProgramFilesDir%\ Data\MyProgram.exe. Глобальная изоляция - Merged, изоляция папки Data - Full, папки %ProgramFilesDir% - явно не задана, значит Merged. Может быть и WriteCopy.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 23:54 04-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 
Прошу перед Вами прощения, можно взглянуть на Ваш проект целиком?
 
Добавлено:
Всё работает! Спасибо за наставление на путь истинный. Но опять таки, можно ли сделать так, чтобы, файлы экспортировались в "песочницу" и запускался исполняемый файл ThinApp_FileCleaner.exe? Всего файлов два:
ThinApp_FileCleaner.exe
ThinApp_FileCleaner.ini
Условие, если в каталоге песочницы уже есть файл ThinApp_FileCleaner.ini, - то он не будет перезаписан при экспорте из виртуальной среды. Вся надежда на Вас, плагин уже готов, осталось только доделать VBS-скрипт.

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 00:41 05-06-2014 | Исправлено: Artem_Butenko, 01:44 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko

Цитата:
осталось только доделать VBS-скрипт

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

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 12:13 05-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko

Цитата:
можно ли сделать так, чтобы, файлы экспортировались в "песочницу" и запускался исполняемый файл ThinApp_FileCleaner.exe?

И все же вопрос, который остался без ответа, это принципиально или просто "хотелка", чтобы именно в песочницу?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 12:33 05-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Можно конечно и в песочницу. Но при этом ThinApp_FileCleaner.exe придется запускать через cmd, а это - появление консольного окна. Если скрывать окно, то нужно использовать сторонние утилиты, например hstart. А это то, что предложил SLasH пару постами выше. При запуске из песочницы варианты ExecuteExternalProcess и WshShell.Run почему-то корректно не срабатывают, по крайней мере у меня.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 15:05 05-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 

Цитата:
Можно конечно и в песочницу. Но при этом ThinApp_FileCleaner.exe придется запускать через cmd, а это - появление консольного окна. Если скрывать окно, то нужно использовать сторонние утилиты, например hstart. А это то, что предложил SLasH пару постами выше. При запуске из песочницы варианты ExecuteExternalProcess и WshShell.Run почему-то корректно не срабатывают, по крайней мере у меня.

 
Вон оно как, не знал, не вникал в суть вопроса. Если неизбежно использование "cmd.exe" и "hstart.exe", пусть оно тогда так и будет.
 

Цитата:
И все же вопрос, который остался без ответа, это принципиально или просто "хотелка", чтобы именно в песочницу?

 
Нет, то не моя "хотелка", это неизбежная "хотелка" плагина "ThinApp_FileCleaner.exe".
 
Добавлено:
SLasH
 

Цитата:
Не проверял, написал вручную на коленке

 
Работает. Прошу меня извинить. Антивирус блокировал исполнение скрипта. Остался вопрос, можно ли извлекать файлы напрямую в "песочницу", не создавая в ней каталог "Progs"? А если файлы уже имеются в песочнице, то не перезаписывать их.

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 15:44 05-06-2014 | Исправлено: Artem_Butenko, 15:53 05-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko

Цитата:
Остался вопрос, можно ли извлекать файлы напрямую в "песочницу", не создавая в ней каталог "Progs"?

Можно. Подредактируйте пути.

Цитата:
А если файлы уже имеются в песочнице, то не перезаписывать их.

Если они не удаляются и не перезаписываются, тогда достаточно один раз при первом запуске сборки(OnFirstSanboxOwner) закинуть их в песочницу и забыть про них. А при завершении (OnLastProcessExit) только запускать ThinApp_FileCleaner.exe.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 16:09 05-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 

Цитата:
Можно. Подредактируйте пути.

 
Пожалуйста, помогите я совсем в VBS-скриптах ноль. Сам скрипт.

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 16:14 05-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Давайте подождем SLasH. Это полностью его скрипт и будет не совсем корректно, если я его буду править.
добавлено
Плюс не совсем понятно, что делать с файлами ThinApp_FileCleaner.exe и ThinApp_FileCleaner.ini. Вынести в песочницу и запустить ThinApp_FileCleaner.exe, если там уже есть ThinApp_FileCleaner.ini, то его не перезаписывать? А что с ThinApp_FileCleaner.exe? Его удалять, когда он отработает, или он тоже остается  в песочнице и его тоже не надо перезаписывать?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 16:21 05-06-2014 | Исправлено: coherent, 16:32 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko 16:44 05-06-2014
Цитата:
Остался вопрос, можно ли извлекать файлы напрямую в "песочницу", не создавая в ней каталог "Progs"? А если файлы уже имеются в песочнице, то не перезаписывать их.

Можно. Нужно только отталкиваться от виртуальных путей, где лежат ваши файлы.
Пусть, к примеру, это будет виртуальный путь "C:\Program Files\Some Program Software\MegaSuperProga.exe". Это означает, что в проекте есть "%ProgramFilesDir%\Some Program Software\MegaSuperProga.exe". Тогда копирование "MegaSuperProga.exe" изнутри наружу выглядит так:

Код:
' Копируем файл изнутри наружу
If Not FSO.FileExists(SandboxPath & "\MegaSuperProga.exe") Then
    cmd = CMD_ETERNAL & " /C copy ""C:\Program Files\Some Program Software\MegaSuperProga.exe"" " &chr(34)& SandboxPath & "\MegaSuperProga.exe"
    ExecuteVirtualProcess(HSTART & " /NOCONSOLE " & chr(34) & cmd & chr(34))
    Do
        MySleep(1)
    Loop Until FSO.FileExists(SandboxPath & "\MegaSuperProga.exe")
End If  

Вместо "MySleep" должно отрабатывать "WaitForProcess", но почему-то WaitForProcess бесконечно ждал, хотя файлы уже были скопированы. Поэтому я от него отказался и стал вручную проверять, скопировалсь файлы или нет.
 
P.S.: косметическая ошибка. Вместо CMD_ETERNAL нужно было везде написать CMD_EXTERNAL

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 16:28 05-06-2014 | Исправлено: SLasH, 16:31 05-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
Чисто из любопытства, почему копирование через cmd, а не методом CopyFile?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 16:44 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473 21:44 04-06-2014
Цитата:
Получается после перезагрузки стартанёт одноразовый запуск удаления папки. Ок! Но, а если нужно было наоборот, забекапить папку (если такая существовала), убрать её оттуда (опять же, если она существовала) перед запуском программы, удалить папку появившуюся в следствии работы портабельной программы, и вернуть забекапленную на место после перезагрузки? Возможно?  

Давайте ставить реальное ТЗ.
Т.к. приходится самому догадываться, как работает ваша сборка.
Пусть будет абстрактный "Some.exe" который делает ту функцию, которая вам нужна и после своей работы жёстко перезагружает машину.
Тогда, если я правильно понял, что вам нужно, то действия такие:
до запуска "Some.exe":
1) забэкапить папку, в которую потом будет что-то писать "Some.exe". Как я понял эта папка "%AppData%\Local\ChemTable Software\Reg Organizer"
2) удалить папку "%AppData%\Local\ChemTable Software\Reg Organizer"
3) записываем в реальную систему скрипт, который будет восстанавливать всё, что нужно
после запуска "Some.exe" и перезагрузки запускаетя скрипт, который:
1) удаляет папку, которая появляется в следствии работы "Some.exe". Напишите полный путь, какую папку нужно удалять. Или это всё та же папка "%AppData%\Local\ChemTable Software\Reg Organizer" ?
2) возвращает забэкапленную папку "%AppData%\Local\ChemTable Software\Reg Organizer" обратно
 
Добавлено:
coherent 17:44 05-06-2014
Цитата:
Чисто из любопытства, почему копирование через cmd, а не методом CopyFile

Изначально я свой пример писал для копирования каталога через xcopy, оттуда и оставил xcopy или copy.
А с методом CopyFile не тестировал. Сожет ли он изнутри наружу копировать. Нужно тестировать...

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 16:49 05-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
 

Цитата:
' Копируем файл изнутри наружу  
If Not FSO.FileExists(SandboxPath & "\MegaSuperProga.exe") Then  
    cmd = CMD_ETERNAL & " /C copy ""C:\Program Files\Some Program Software\MegaSuperProga.exe"" " &chr(34)& SandboxPath & "\MegaSuperProga.exe"  
    ExecuteVirtualProcess(HSTART & " /NOCONSOLE " & chr(34) & cmd & chr(34))  
    Do  
        MySleep(1)  
    Loop Until FSO.FileExists(SandboxPath & "\MegaSuperProga.exe")  
End If

 
Как я понял это только часть изложенного Вами выше скрипта. Пожалуйста, если не трудно, можно увидеть весь скрипт целиком. Сам боюсь при редактировании сделаю море ошибок. Повторюсь, всего файлов два: "MegaSuperProga.ini" и "MegaSuperProga.exe". При этом первым экспортируется в "песочницу" файл "MegaSuperProga.ini", а затем только "MegaSuperProga.exe", и производится запуск последнего. Ожидаем завершения работы "MegaSuperProga.exe" и удаляем его. "Инишник" ("MegaSuperProga.ini") оставляем в "песочнице", при повторном запуске осуществляем проверку на наличие "MegaSuperProga.ini" и "MegaSuperProga.exe" в каталоге "песочницы". Если файлы там уже имеются, не выносим их из виртуальной среды. Пожалуйста, помогите довести скрипт до окончательного варианта. Очень Вам благодарен.
 
Добавлено:
Отредактировал скрипт таким образом. Думаю не совсем все я сделал правильно.
 
Добавлено:
Файлы извлекаются, только вот запуск исполняемого файла не происходит. Еще одно последнее пожелание, хотелось бы увидеть вариант скрипта с ожиданием завершения процесса "MegaSuperProga.exe" и без ожидания завершения процесса.

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 17:01 05-06-2014 | Исправлено: Artem_Butenko, 17:19 05-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Давайте ставить реальное ТЗ.

 
Абсолютно с Вами согласен! Вы очень хорошо всё написали, ошибка только в пути к папке!
Не "%AppData%\Local\ChemTable Software\Reg Organizer
а "%AppData%\Local\ChemTable Software
 
Вообще, замечательно, что Вы уточнили, потому что я со вчерашнего дня думаю куда же должен делаться бэкап!!! Прога то специфическая, по чистке реестра и дисков, поэтому просто может сожрать бекап при автоматической чистке и нечего будет восстанавливать... Но, всё по порядку, сперва порядок действий:
 
Действия такие:  
до запуска "RegOrganizer.exe":
1) Забэкапить папку, в которую потом будет что-то писать "RegOrganizer.exe". Эта папка "%AppData%\Local\ChemTable Software" (если конечно она уже существует в системе)
2) Удалить папку "%AppData%\Local\ChemTable Software"  
3) Записываем в реальную систему скрипт, который будет восстанавливать всё, что нужно!
После запуска "RegOrganizer.exe" и перезагрузки
Запускаетя скрипт, который:  
1) Удаляет папку, которая появляется в следствии работы "RegOrganizer.exe" (если такая появилась). Это всё та же папка "%AppData%\Local\ChemTable Software"
2) Возвращает забэкапленную папку "%AppData%\Local\ChemTable Software" обратно.
 
Теперь о том, где хранить бекап. В любом месте на диске опасно, ведь, в силу функционала самой программы, при автоматической чистке дисков можно весь бекап удалить! Наверное, надёжнее будет в папке с песочницей программы, так как даже идиот додумается не сносить файлы песочницы при чистке дисков...
 
P.S. Я и вправду никак не могу понять, почему при нахождении папки "%AppData%\Local\ChemTable Software" в виртуале, не работает функция оптимизации реестра! Ну не стал же бы разработчик программы (тем более версия 2009 года, тогда и портабельными сборками сравнительно мало занимались) защищать именно эту функцию от работы в виртуале?! Ставил уже изоляцию и Full и WriteCopy, но всё равно, как только папка оказывается в песочнице, функция оптимизации сообщает что с реестром всё в порядке. Стоит только выкинуть папку %Local AppData% из проекта, в реальной системе появляется папка "%AppData%\Local\ChemTable Software" и реестр оптимизируется нормально, с последующей автоматической перезагрузкой! Всё это по меньшей мере странно и теперь требует навороченных скриптов с бекапами... Надеюсь, хоть так получиться!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 17:37 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473 18:37 05-06-2014
Цитата:
Я и вправду никак не могу понять, почему при нахождении папки "%AppData%/Local/ChemTable Software" в виртуале, не работает функция оптимизации реестра

Возможно так была построена логика программы. Если эта папка существует, то реестр уже дафрагментировался.
 
Добавлено:
Artem_Butenko 18:01 05-06-2014
Цитата:
Отредактировал скрипт таким образом [?]. Думаю не совсем все я сделал правильно.  

Всё правильно.

Цитата:
Файлы извлекаются, только вот запуск исполняемого файла не происходит

Тогда 2 варианта:
1) пробуете сами разобраться запустив без hstart и увидев, что сообщает консоль:

Код:
cmd = CMD_EXTERNAL & " /K " & chr(34)& SandboxPath & PROG_SUB_PATH &"\"& MegaProga & chr(34)
Call WaitForProcess(ExecuteExternalProcess(cmd), 0)

2) выкладывает на всеобщее обозрени весь проект, чтобы можно было скачать и найти ошибку

Цитата:
Еще одно последнее пожелание, хотелось бы увидеть вариант скрипта с ожиданием завершения процесса "MegaSuperProga.exe" и без ожидания завершения процесса.

ожидание:

Код:
Call WaitForProcess(ExecuteExternalProcess(cmd), 0)

без ожидания:

Код:
ExecuteExternalProcess(cmd)

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 17:48 05-06-2014 | Исправлено: SLasH, 17:57 05-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пробовал еще вариант. Главный исполняемый ("MegaSuperProga.exe") файл не запускается.
 
Добавлено:
SLasH
 
Рабочий скрипт. Только не пойму, почему "MegaSuperProga.exe" стартует несколько раз? А если точнее четыре раза, но только при первом запуске. Пожалуйста, помогите исправить ошибку.

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 18:00 05-06-2014 | Исправлено: Artem_Butenko, 18:32 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Я уже писал, что ф. OnLastProcessExit запускается несколько раз подряд - отсюда все и косяки.
Это баг и нужно репортить его в VMware.
А пока баг иммет место быть, то нужно кадое действие проверять. Т.е. если нужно запустить процесс из OnLastProcessExit, то нужно сначала проверить, нет ли среди списка процессов уже запущенного процесса.
Из-за этого бага скрипты приходится писать навороченные с кучей проверок.
Пробуйте разбираться, с работой виндового tasklist и написанием BAT-ника для проверки на запуск вашего процесса.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 18:42 05-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

 
Сомнительно. Ведь сборку для теста я запускаю на практически чистой системе, где никогда не было установленной этой программы. Папка создаётся с нуля! Только если она создаётся в реальной системе, то всё работает, а если в песочнице, то увы! Больше похоже на очередной косяк с ThinApp. Хотя, сам фаил RegOrganizer.exe защищён : ASProtect 2.1x SKE -> Alexey Solodovnikov [Overlay] Возможно из-за проверки этой защиты и возникает подобное недоразумение...
Делал попытки его распаковать Stripperом и отдельно ещё какой-то утилитой для снятия ASProtect, но тщетно! Где-то в середине распаковки, выдаёт ошибку, и забивает нулями, потом нормально завершает, но екзешник на выходе получается почти неработоспособным. В итоге оставил как есть, ведь работает и без снятия ASProtect...
 
P.S. В соответствующей ветке попросил анпакнуть RegOrganizer.exe именно той версии, что мне необходим. Если сделают, глянем, в защите было дело или нет...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 20:20 05-06-2014 | Исправлено: AVanti473, 20:29 05-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Если актуально попробуйте такой скрипт. Проверял, работает. Единственное сейчас не могу проверить с hstart.exe, потому что нет под рукой... Пока просто через cmd. Если подойдет, тогда можно будет добавить и hstart.exe.  
Файлы MyProgram.exe и MyProgram.ini лежат в %ProgramFilesDir%\Data (как было изначально заявлено). При завершении копируются в песочницу, если файл MyProgram.ini уже есть, то он не перезаписывается. Файл MyProgram.exe после завершения удаляется.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 20:46 05-06-2014 | Исправлено: coherent, 21:23 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
В сущности тоже самое, что и я ему писал. Но вся гадость в том, что OnLastProcessExit запускается несколько раз подряд.
AVanti473
Вот скрипт, который бекапит папку "%UserProfile%\AppData\Local\ChemTable Software" и после перезагрузки восстанавливает её. Как я понял папка должна быть по пути "%UserProfile%\AppData\Local\ChemTable Software" а не по "%AppData%\Local\ChemTable Software".
%AppData% - разворачивается в "C:\Users\admin\AppData\Roaming". А подпапка "Local" лежит на одном уровне с "Roaming", поэтому к папке "Local" нужно добираться через "%UserProfile%\AppData\Local".

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 22:47 05-06-2014 | Исправлено: SLasH, 22:48 05-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH

Цитата:
Но вся гадость в том, что OnLastProcessExit запускается несколько раз подряд.

У меня только один раз, проверял.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 23:42 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent

Цитата:
У меня только один раз, проверял.

Зависит от проекта. Упакуйте RollerNT и вставьте скрипт в него. OnLastProcessExit запустится 2 раза.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 23:45 05-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
Вы гений! Скрипт работает на 100% но вы меня похоже будете немного ругать в душе. Опять организовалась проблемка! Специфика программы предполагает также автоматическую чистку папки ТЕМП в процессе работы с программой, и соответственно файла cmd_afterReboot.vbs до использования оптимизации реестра и перезагрузки! Можно ли сделать так, чтобы этот скриптовой фаил стартовал из песочницы, вне зависимости где изначально эта песочница будет расположена? Понимаю, если я запустил портативную программу из кучи папок, то путь к песочнице в RunOnce надо как-то определить... Если это получиться, уйдёт и ещё одна совершенно незначительная для меня, но деталь - сам фаил cmd_afterReboot.vbs не останется в живой системе, как след запуска портабельного приложения!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:56 05-06-2014 | Исправлено: AVanti473, 23:58 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
скрипт

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 00:16 06-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
Вы гений, но вы меня точно убьёте! ))) Сейчас расскажу почему и только Вам решать, плюнуть на это дело и послать меня подальше, или ещё что-то возможно сделать?
 
Мы предполагаем перезагрузку, как нечто разумеющееся и тогда всё работает на ура - великолепно! Но, что если пользователь не воспользовался функцией оптимизации реестра и не совершил перезагрузку? Тогда вроде бы всё ок и при следующей-же перезагрузке компа всё (тоесть уже существовавшая, но забекапленная нами папка) вернётся на круги своя. А если пользователь работал с флешки и ограничился только чисткой реестра, без оптимизации? Вытащил флешку, ушёл, а после перезагрузки папке восстанавливаться неоткуда! Тоесть, сделав доброе дело, и защитив файлы бекапа и скрипт песочницей (теперь кстати автоматическая чистка до них не добирается и следов программа не оставляет, как и задумывалось), мы сделали корректную работу портабельной программы, зависимой от обязательной перезагрузки системы!
 
Короче говоря, решив с вашей большой помощью сложнейшие задачи, мы наступили на грабли портабелизации!
 
Боюсь, эта ситуация не решаема, ибо всегда будут какие-то непреодолимые условности.
 
SLasH, позвольте мне выразить Вам огромную благодарность за столь полезный для меня урок в плане скриптов! Вы даже не представляете как Вы мне помогли, несмотря на то, что общий результат похоже не будет успешным в силу обстоятельств!    

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 01:07 06-06-2014 | Исправлено: AVanti473, 01:08 06-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Попробуйте такую модификацию скрипта
 
AVanti473
Выложите полностью ваш проект. Посмотрю что можно придумать.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 01:34 06-06-2014 | Исправлено: SLasH, 02:54 06-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
 

Цитата:
Попробуйте такую модификацию скрипта

 
Не работает, проверял на Microsoft Windows 7 Ultimate (x64).
 
coherent
 

Цитата:
Artem_Butenko  
Если актуально попробуйте такой скрипт. Проверял, работает. Единственное сейчас не могу проверить с hstart.exe, потому что нет под рукой... Пока просто через cmd. Если подойдет, тогда можно будет добавить и hstart.exe.  
Файлы MyProgram.exe и MyProgram.ini лежат в %ProgramFilesDir%\Data (как было изначально заявлено). При завершении копируются в песочницу, если файл MyProgram.ini уже есть, то он не перезаписывается. Файл MyProgram.exe после завершения удаляется.

 
Скрипт работает, только вот окно консоли хотелось бы скрыть. Последняя "хотелка" и можно будет полноценно тестировать мой плагин.
 
Добавлено:
Для Вас необходимый файл, -"hstart.exe".

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 03:57 06-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 
Так и не смог "прикрутить" hstart.exe к Вашему скрипту.

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 09:58 06-06-2014 | Исправлено: Artem_Butenko, 09:59 06-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Выложите полностью ваш проект. Посмотрю что можно придумать.

 
Не вопрос, пожалуйста: http://rghost.ru/56205605
 
Позвольте лишь пару деталей:
- Пароль на архив кину в личку.
- Папка %Local AppData% в сборке присутствует, но в самом процессе сборки не участвовала, так что если сами будете пересобирать, удалите её!
- Сборка (это важно) делалась на VMware ThinApp v4.7.3-891762 (7101) Важно это потому, что собрав сперва проект на 5.0.0 Build 1391583, я обнаружил его неработоспособность, и только благодаря сторонней помощи, пришёл к выводу о его пересборке на более ранней версии ThinApp!
- Папка Captures при сборке была обозначена как "C:\1" собственно под таким названием она и лежит в архиве. Понимаю, что особого значения это не имеет, но, так, в качестве пояснения почему папка называется "1" )))

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 13:17 06-06-2014 | Исправлено: AVanti473, 13:22 06-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
Касательно OnLastProcessExit, здесь нельзя использовать ExecuteVirtualProcess. Это приведет к бесконечному циклу. Процес, запущенный в результате ExecuteVirtualProcess, сам становится последним. Поэтому по его завершении снова активизируется OnLastProcessExit  и так по кругу.
 
Artem_Butenko

Цитата:
Так и не смог "прикрутить" hstart.exe к Вашему скрипту.

Попробую, но ближе к вечеру.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 17:04 06-06-2014 | Исправлено: coherent, 17:16 06-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Обязательно ли удалять MyProgram.exe? Насколько это принципиально? Ведь MyProgram.ini удалять не надо. Если не нужно, тогда все просто. А если нужно удалять, тогда придется добавлять проверку, завершился ли процесс MyProgram.exe.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 18:27 07-06-2014 | Исправлено: coherent, 18:46 07-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 
Да, удалять "MyProgram.exe" обязательно.

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 19:49 07-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Пробуйте
Файлы MyProgram.exe, MyProgram.ini и hstart.exe лежат в %ProgramFilesDir%\Data. По завершении MyProgram.exe и hstart.exe удаляются.
 

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 23:48 07-06-2014 | Исправлено: coherent, 23:49 07-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 

Цитата:
Пробуйте   Файлы MyProgram.exe, MyProgram.ini и hstart.exe лежат в %ProgramFilesDir%\Data. По завершении MyProgram.exe и hstart.exe удаляются.  

 
Спасибо Вам огромное. Скрипт работает, только почему-то появляется ошибка следующего содержания:
Source: (null)
Description: (null)
File: (null)
Line 71, Character 3
at:

 
Такая ошибка возникает на Windows 7 x64. На Windows XP x86 скрипт работает нормально.

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 01:02 09-06-2014 | Исправлено: Artem_Butenko, 15:18 09-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko

Цитата:
Такая ошибка возникает на Windows 7 x64. На Windows XP x86 скрипт работает нормально.

К сожалению на хозяйстве имею только Windows XP, поэтому проверить работу скрипта на Windows 7 x64 просто не имею возможности. Похоже на Windows 7 x64 нужно видоизменить скрипт в части проверки, выполняется ли еще процес MyProgram.exe. Попробуйте еще так.
Вообще условие запуска MyProgram.exe из песочницу приводит к необходимости использовать стороннюю утилиту для запуска, вводить дополнительное условие ожидания завершения процесса MyProgram.exe и убивать процесс Wmiprvse.exe, который остается висеть в процессах после завершения работы.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 18:16 09-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Проверял на Win7 x64, оба скрипта работают без ошибок!

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 16:15 10-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 
Спасибо. Я тоже проверил. Ошибка повторяется, но один раз из десяти. Возможно причина в антивирусном агенте, возможно иная. Не беда, скрипт на ура! Огромное человеческое Спасибо!

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 06:48 11-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Рекомендую подумать над тем, стоит ли удалять MyProgram.exe из песочницы. Он же не изменяется в ходе работы? Если не удаляется MyProgram.ini, то почему бы не оставить и MyProgram.exe? Если этот файл не удалять, тогда не нужна проверка на завершение процесса MyProgram.exe. Т.е. слабых мест, которые могут вызывать ошибку при неудачном стечении обстоятельств, будет меньше.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 10:48 11-06-2014 | Исправлено: coherent, 10:49 11-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 
Спасибо, учту на будущее. Уже почти завершил "ThinApp File Cleaner". Приложение будет запускаться в песочнице по завершению основного процесса портабельного приложения. Все благодаря Вам.
Возможности программы:
- опциональное удаление файлов виртуального реестра портабельного приложения;
- опциональное удаление каталогов виртуальной ФС (%Folder%);
- опциональная очистка "MUICache";
- удаление "*.pf-файлов" из папки "Prefetch" и очистка файла "Layout.ini".
 
Есть еще пожелания?

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 18:24 11-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH, разрешите вопрос? Опять же касательно скриптов. В данном случае программа WinRAR v5.10:
Отлично делается портабельной при помощи ThinApp, но, почему бы не улучшить? Можно ли сделать так, чтобы не зависимо от того, откуда запускается портабельная версия программы происходило следующее:
 
На данный момент просто интересно, возможно такое или нет при помощи использования скриптов!?
 
Чего хотелось бы добиться этим мозгоизвороченным и на первый взгляд бессмысленным действом: Дело в том, что за несколько лет я порядком наслушался в интернете о том, как кое-где запрещают использовать взломанный софт, но прекрасно позволяют использовать портабельный! Задумался вот о чём - а что если и я попаду в такую ситуацию? Хотелось бы в таком случае чувствовать себя ещё комфортнее! ))) Ну нет архиватора и ладно, запустил портабельное приложение и вот уже вполне полнофункциональная привычная программа. Ресурсов не кушает и прекрасно можно оставить свёрнутой в трее на время работы.
Конечно же, для такого более и лучше всего подошёл бы X-Launcher или что-то ещё в этом духе. Но, мне просто интересно, можно ли такое раелизовать в ThinApp.
Разница с предыдущим проектом: В самом начале предыдущего проекта, я ошибочно полагал, что необходимо просто импортирование ключей реестра в реальную систему. Но там было просто импортирование готовых ключей, а здесь, ассоциации привязаны к %ProgramFilesDir%\WinRAR\WinRAR.exe о котором реальная система, по идее, ничего не знает, ведь портабельное приложение может быть запущено откуда угодно. То же касается и контекстного меню...
 
Пока писал, пришла в голову сумасбродная идея, которая давно крутилась где-то рядом, но никак не могла сформулироваться:
Я бы назвал её возможностью X-Launcher на базе и с преимуществом ThinApp! Помните виртуалбокс? Когда-то, компьютер в компьютере тоже был за гранью понимания, но время показало что это не просто интересно, а ещё и безумно полезно! А что если мы представим себе такую вот конструкцию: Запускается виртуальное приложение, скрипт при запуске (предварительно забекапив всё необходимое в песочницу) копирует необходимую структуру в Program Files и реестр, и запускает приложение! Теоретически, всё что запущено через контейнер, будет оставлять следы своей деятельности в песочнице, в тех папках, что мы заботливо ограничим WriteCopy при сборке. А по завершению работы приложения ещё один скрипт будет удалять следы в системе, а бекап будет восстанавливать всё на свои места. Для громоздких приложений этот подход разумеется не имеет смысла, но для приложений в несколько мегабайт, пользователь даже не заметит разницы в скорости их запуска! Преимущества будут те же, что у сборок X-Launcher, плюс возможности песочницы ThinApp. Не нужно будет писать множество заумных программных или скриптовых кодов, достаточно будет лишь шаблона скрипта для бекапа, копирования и удаления всего необходимого! Пользователь вполне сам может самостоятельно конвертировать из файлов сборки ThinApp необходимые ключи реестра для импортирования в систему, и получит дополнительные возможности!
Интересно, такая идея жизнеспособна? Я описал лишь концепцию, но ведь это интересно!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 15:46 15-06-2014 | Исправлено: AVanti473, 15:47 15-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Ответ на вопрос, можно ли ассоциировать WinRAR с изложенными пожеланиями, можно. Ответ на вопрос, можно ли ассоциировать любую портативную программу по этому же принципу, можно. Ответ на вопрос, можно ли реализовать "сумасбродную идею, которая давно крутилась где-то рядом, но никак не могла сформулироваться", тоже можно. Основной вопрос здесь, а нужно ли?
 
То, что Вы предлагаете, особенно "сумасбродную идею", есть симбиоз ThinApp и скриптов, который будет подвержен недостатку портативных програм на скриптах - при неожиданном падении системы (всякое бывает) все изменения, внесенные в реальную систему, в ней же и останутся.
 
Безусловно, если файлы ассоциированы с соответствующим портативным приложением, это удобно. У меня, например, все файлы (естественно, где это нужно) ассоциированы с соответствующими портативками. Речь естественно о "своих" компьютерах, где я устанавливаю правила. Но это делается один раз рег-файлом. Каждый раз устанавливать и удалять ассоциации не вижу никакого смысла, хоть рег-файлы для этого тоже имеются. Это, конечно, если исходить из принципа "сборка для себя и для работы". А на чужих машинах использую портативный Total Commander с внутренними ассоциациями.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 11:15 16-06-2014 | Исправлено: coherent, 11:18 16-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
при неожиданном падении системы (всякое бывает)

Именно об этом я хорошо знаю, и сам являюсь сторонником того, чтобы не использовать подобные методы как некие стандарты! Многие, на соседних ветках форума, просто без ума от лаунчеров, забывая именно о неожиданном падении ОС. Благо, такое встречается крайне редко, и, если не смертельно, то лечится после перезагрузки запуском той же портативной программы, которая по завершению уберёт все неубранные ранее следы. Но лаунчеры не ловят в контейнер процессы или приложения, запущенные их, с позволения заметить, (ИМХО) псевдопортаблом. К тому же, скриптовая часть лаунчера достаточно сложна для обывателя, ведь под час ещё требуется заметно расковырять саму программу, чтобы вынести отдельные файлы в контейнер такой портабельной сборки на основе лаунчера. В деталях я могу ошибаться, ведь с лаунчерами знаком шапочно, но суть то такая! Реализуемый по схеме "лаунчера" скриптовой портабл ThinApp, тоже можно будет назвать псевдопортаблом, но это всё-же как минимум интересно!
coherent
Я ни на чём не настаиваю, и, даже, чёрт с ним с винраром, позволю себе вернуться к так названной мною "сумасбродной идее". Позвольте я попробую расширенно пояснить
Я не зря вспомнил виртуалбокс! Когда-то давно, я задался идеей, раз в компьютере можно создавать сложные виртуальные процессы (это сейчас не касается виртуальных приложений как таковых), такие как моделирование работы электрической цепи или моделирование движения 3D объектов, согласно анатомических особенностей, то, наверное, можно создать и компьютер в компьютере. Помниться задавал эти вопросы на форумах, и ответ был таким как Ваш - "а нужно ли?"! Никто тогда не понимал, зачем это вообще может понадобиться. Аргументировали тем, что если даже такое создать, то понадобятся огромные мощности основной машины, чтобы хоть как-то смоделировать работу виртуальной! Прошло так мало времени, и виртуальных машин стало уже прилично до неприличия. ))) Зачем они сейчас, я думаю даже объяснять никому не нужно!
Ещё один важный пример: Когда-то давно, я, как и многие, столкнулся со вторым или третьим своим глухим падением винды, и задумался, чем каждый раз "перебивать" систему, теряя данные, можно ли её починить "из вне". Загрузочные диски уже были тогда, но скачать их при дуал-аповских скоростях, тем более без возможности докачки, было нереально! Зато я смог сделать свой, при помощи PEBuilder, и даже запихнул в него тотал-коммандер! При помощи тоталкомандера с загрузочного диска, я делал первый свой бекап системы. ))) Кстати успешно. ))) Но скорости сети росли и я начал скачивать загрузочные CD и даже DVD! На них было столько программ, но, только один из них на тот момент имел возможность воспроизводить звук через DirectX! Я тогда тоже спрашивал на форумах, мол, неплохо было бы чтобы и звук и видеодрова вшить, и вообще, чтобы было комфортнее работать в случае улёта основной ОС в астрал. Тот же ответ - "а зачем?"! Мол, это же диск для починки, а не для работы! Ок! В прошлом году у меня полетел жёсткий террабайтник и я скачал на флешку четырёхгиговую загрузочную сборку "2k10Plus". Там в комплекте и звук и видеоплеера, и браузеры и скайп и агент и вообще я реально жил на ней пару месяцев, пока в сервисе не слили инфу с убитого жёсткого и я не восстановился с бекапа акрониуса! Сделали ведь умельцы! А казалось бы и вопрос "зачем" уже не возникает сейчас!
Таким образом, может стоит попробовать применить ThinApp несколько в иной форме, и поглядеть что из этого получиться? Может быть такая идея тоже будет востребована? Скажем чайник знать не знает как правильно собрать портабл, а мы ему готовый контейнер со скриптом, где ему надо только добавить программные файлы, файлы изменения реестра (что делается парой кликов при помощи программы Total Uninstall), и прописать пути копирования! И всё - нет больше кривых сборок! Будет эдакий вполне себе псевдопортабл. А главное, небольшие программы, будут работать как будто реально установленные, со всеми возможностями и оригинальными путями, но с мусором в контейнере-песочнице! Вот как-то так мне видятся эти перспективы, хотя на первый взгляд туманно и сложно, но новичку всё это будет не сложнее осваивания всего монументального и безусловно полезного FAQ по протабельным сборкам. Собственно новичку будет нужна всего лишь подобная конструкция инструкции:
 - Установите VMware ThinApp
 - Установите Total Uninstall
 - Скачайте из шапки готовый для сборки контейнер ThinApp
 - Отследите при помощи Total Uninstall изменения нужной вам программы.
 - Скопируйте в нужные папки нужные файлы (в т.ч. файлы импорта ключей реестра (тоже готовые из Total Uninstall))
 - В текстовом редакторе, в скрипте готового для сборки контейнера ThinApp исправьте нужные пути, следуя комментариям в файле скрипта.
Всё!
По моему это легче чем зачитать FAQ, не говоря уже о других тонкостях сборок, а желающие всегда смогут углубиться и более детальное изучение! )))

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 12:13 16-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Имеет ли такая "сумасбродная идея" право на жизнь? Да наверное имеет, почему бы и нет? Но по-моему Вы сильно все усложняете. Разве что приведете конккретный пример, когда вообще имеет смысл городить такую монстроподобную систему. Кроме этого, универсальное всегда менее конструктивно, чем конкретное. Да, часто приходится изгаляться, чтобы заставить сборку полнофункционально работать. Но универсальных путей нет, в каждом конкретном случае, как правило, ищется свое решение. Хотя общие моменты, конечно, есть.

Цитата:
Скажем чайник знать не знает как правильно собрать портабл, а мы ему готовый контейнер со скриптом...И всё - нет больше кривых сборок!

Первый вопрос, который напрашивается лично у меня, когда я читаю подобное - какая Вам разница,  знает чайник как правильно собрать портабл или нет? Это его личное горе. Хотя снова-таки, каждый сам выбирает свой путь. Если Вы претендуете на роль наставника чайников, ну тогда конечно...

Цитата:
Собственно новичку будет нужна всего лишь подобная конструкция инструкции:...По моему это легче чем зачитать FAQ, не говоря уже о других тонкостях сборок

При таком подходе еще легче дать новичку ссылку на тему по заказу портабл софта, где, за очень редким исключением, приблизительно такие же как он "умельцы" ему эту сборку соберут.
 
ps. Вы, наверное, гуманитарий, учитывая все эти лирическо-исторические отступления?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:26 16-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent, судя по тому, что затронутая мною тема, до сих пор не нашла отклика у других посетителей, возможно, или Ваша правда, или ещё не время для подобных извращений! ))) Ладно. Мне очень жаль, что в реале род моей деятельности стремительно и кардинально меняется... Вполне возможно, я, увы, не смогу заниматься не то, что скриптами, но и портабельными сборками. Причём всё это, начиная прямо с завтрашнего дня. Пока ещё я не могу спрогнозировать наличие у меня какого-либо свободного времени под свои старые дела. Если такое время будет находиться, я постараюсь развить идею в рамках своих возможностей и изысканий, а пока, пока... )))
 

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 18:37 16-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

Цитата:
подобных извращений

Вы сами сказали. Просто идея изготовления ThinApp-сборки, при которой изменения отслеживаются не самой же ThinApp, которая для этого предназначена, а сторонней программой, например Total Uninstall, с последующей конвертацией ключей реестра в формат все той же ThinApp и рассовыванием вручную всех файлов и папок на свои места с заданием изоляции (не вдаваясь в подробности, что изоляция будет разной в зависимости от конкретной программы и от того, как она должна работать), вместо того, чтобы использовать родной инструмент ThinApp, выглядит более, чем странно, мягко говоря. Для полноты идеи осталось найти стороннее приложение, которое еще и скомпилирует ThinApp-сборку.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 20:22 16-06-2014
SunOK_ZM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! С выходом ThinAPP 5.0.1 удалось склепать Nero WaveEditor и SoundTrax, так как разработчики из-за нового АвтоКАДа исправили загрузку большого числа DLL (я давно догадался что проблема в их подключении, но только тинаповцы могут её решить).
Так что, можно пробовать увесистые проекты собирать...
Листинг:Package

Всего записей: 255 | Зарегистр. 19-02-2012 | Отправлено: 13:37 23-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Друзья, и всё же так просто я не отстану...
 
Нужен скрипт.
Реестр мы опускаем, так как этот этап был уже успешно пройден в обсуждениях ранее. Тоесть скрипт добавления и удаления значений реестра из файлов install.reg и uninstall.reg соответственно, уже имеется.
- Есть программа TeraCopy, которая хранит свои файлы в "%ProgramFilesDir%\TeraCopy" а лицензию в "%AppData%\TeraCopy".
- Надо, чтобы при запуске программы, скрипт копировал файлы:
из "%ProgramFilesDir%\TeraCopy" в "C:\Program Files\TeraCopy"
и
из "%AppData%\TeraCopy" в "C:\Documents and Settings\текущий_юзверь\AppData\Roaming\TeraCopy"
- Далее скрипт должен запустить C:\Program Files\TeraCopy\TeraCopy.exe, а по завершению программы убрать все следы.
 
Проблемы, которые сам вижу:
Запуск портабельного приложения и запуск в реальной системе скопированных в неё файлов не одно и тоже, возможно, TeraCopy.exe должна оставаться исключительно в виртуальном контейнере, а значит, копировать в C:\Program Files\TeraCopy нужно или не все файлы, или заранее подготовленные файлы из какой-то другой папки, например папки "Script" рядом с екзешником, где у меня уже и так располагаются файлы install.reg и uninstall.reg
 
Грубо говоря, при запуске портабельного приложения скорее всего должно быть так:
- Стартует скрипт, который вносит значения в реестр (уже имеется в наличии), и параллельно стартует скрипт, который копирует заранее приготовленное содержимое из папки рядом с екзешником портабельной сборки (у меня это папка "Script"):
из "Script\Program Files\TeraCopy" в "C:\Program Files\TeraCopy"
и
из "Script\AppData\TeraCopy" в  "C:\Documents and Settings\текущий_юзверь\AppData\Roaming\TeraCopy"
- По завершению портабельного приложения стартует скрипт удаления следов папок.
При этом, сам TeraCopy.exe, я оставляю в виртуальном контейнере, чтобы виртуальное приложение могло стартануть и завершиться без проблем.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 10:52 29-06-2014 | Исправлено: AVanti473, 10:54 29-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашёл кое-какие ответы в мануале http://www.vmware.com/pdf/thinapp50_manual.pdf
Страницы 75-76.
Но мой вопрос выше всё ещё актуален!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 01:53 30-06-2014 | Исправлено: AVanti473, 01:53 30-06-2014
soname

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ищу совета...
Есть программа (http://forum.ru-board.com/topic.cgi?forum=35&topic=35883&start=760#lt), использующая OpenGL для визуализации, проблем с портабелизацией её Thinapp не возникает (работает как на WinXP, так и на Win7x64), но при работе чувствуются затормаживание (подергивание) картинки при вращении на Win7x64. Конечно, много чего перепробовал (делал порт и на XP и на 7х64, играл с настройками и пр.), уже смирился, но попробовал Spoon и (не считая горы "мусора" после себя и не возможности использовать одну сборки на разных архитектурах) заработало без притормаживаний. Сейчас сижу и сравниваю сборки между собой...
Может кто сталкивался с подобной ситуацией в Thinapp? Есть идеи, как побороть OpenGL?

Всего записей: 5 | Зарегистр. 26-10-2005 | Отправлено: 16:50 30-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ищу совета...

 
Раз никто пока не ответил, рискну предположить:
Не использовать (оставить по умолчанию) ;Wow64=0 в Package.ini
Не использовать компрессию обозначив CompressionType=None

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:47 30-06-2014
soname

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
... это были одни из провереных сразу вариантов ...
Кажется тут надо копать в сторону драйверов или библиотек, но пока пути не вижу

Всего записей: 5 | Зарегистр. 26-10-2005 | Отправлено: 11:30 01-07-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavlaf

Цитата:
Что такое распакованная версия ThinApp?  Чем она отличается от просто установленной программы?

Установленная версия не позволяет распаковывать готовые сборки.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 12:10 01-07-2014
aiki



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
хм.. Довольно таки спорное утверждение  а что именно в ней не позволяет-то?  

Всего записей: 673 | Зарегистр. 25-12-2002 | Отправлено: 12:40 01-07-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У нераспакованной версии основной exe-шник упакован самой же ThinApp. В теме вроде не раз уже обсуждалось.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 13:51 01-07-2014
Regi07

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
очень интересно..., но а как же быть если программа активируется в мемору?

Всего записей: 47 | Зарегистр. 30-04-2008 | Отправлено: 00:38 04-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет.
 
Не поможете с ответами на несколько вопросов:
1. У меня есть плеер, который при загрузке считывает HWID, UID системы
 
hwid=c1b989363842d4e58ce27444d4cdfe79
uid=b8ff7b9ecc683f797b786534af6d533a
 
и в случае несоотвествия их с ранее сохраненными(при первом запуске программы) сбрвсывает све настройки программы на дефолтные. Поэтому использование на разных системах с ранее выставленными настройками не получается. Поэтому появиласьидея следать портативку. Вот и вопрос, как при создании портативной версии thiapp.v5.0.1 обойти проверку HWID, не дать программе доступ к реестру, где хранится HWID, UID в реальной системе, ну или с ветвям реестра, где описано железо исходя из которого оно высчитывает ключи?
 
2. Скачал VMWare ThinApp.v5.0.1Build1801916.Enterprise.exe - весит 62 мб. Установил - папка весит - 210мб. А потом со мной поделилсь установленой версией тут на форуме. Так вот эта версия весит 44,5мб
 
                               Моя установка:                            С форума:      
Setup Capture.exe -        194891кб (PE)                                        2338кб  (PE, MS linker9.0.EXE32)
log_monitor.exe                   126кб (PE)                                          9592кб  (PE, MS linker9.0.EXE32)
relink.exe                            404кб (PE)                                             95кб  (PE, MS linker9.0.EXE32)
tlink.exe                              404кб (PE)                                          1538кб  (PE, MS linker9.0.EXE32)
vftool.exe                            404кб (PE)                                           681кб  (PE, MS linker9.0.EXE32)
vregtool.exe                        404кб (PE)                                           680кб  (PE, MS linker9.0.EXE32)
 
Вопрос 1 - в чем разница?, почему Setup Capture.exe в моей установке такой большой. Я просканировал файлы прогой Detect it easy v0,85 - результы в скобках. Четкого определения сомпресора нет ни там ни там.
 
Тут выше писали, что есть распакованная версия ThinApp и не распакованная
 
Вопрос 2 - это как раз я понимаю, что с форума получил распакованную версию?
Вопрос 3 - Чем распакованная отличается от просто установленной программы? (по функционалу)
Вопрос 4 - Так же писалось, что запакованная не умеет распаковывать готовые сборки. А как пользоватся распаковывание сборок распакованным ThinApp?. Я знаю только один метод - запуск ThinApp с начала в системе, а потом в вируальной среде и сравнение результата - в новый проэкт.
Вопрос 5 - чем запаковывается Thinapp? Каким компресором(упаковщиком)?
 
Спасибо заранее за ответы.
Жду с нетерпением

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 00:13 06-07-2014 | Исправлено: LCF84, 21:24 06-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет парни. Как то давно видел где-то чьи то наработки тут с .NET Framework для VMware ThinApp. Если не выдаю желаемое за действительное киньте линк.
 
LCF84
 
Хорошо что вы еще не стали дизассемблировать, я искренне рад, иначе вы заполнили бы собой весь топик.
Может без велосипеда? Вот такая рабочая устроит? Ссылка

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 21:09 06-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
dinis124Newbie

 
 
Спасибо за ссылку. Но у меня уже есть рабочая распакованная версия 5.0.1.
Меня конкретно интересует обьяснение и ответы на конкретные вопросы, которые я задал выше

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 21:25 06-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LCF84
 
Это не то?
Q16
 
;VirtualDrives=Drive=c, Serial=605ade39, Type=FIXED  
;VirtualComputerName=MY_COMP  
   Две опции, позволяющие эмулировать Volume ID винта и имя компа. Обычно в первой опции  
указываются все винты, имеющиеся на компе, но, как правило, программы устанавливаются на  
диск C:\, поэтому эмуляция остальных дисков не нужна. Что это дает? Например, программа  
регистрируется серийным номером, который жестко привязан к Volume ID винта. При запуске  
такой портабельной сборки на другом компе, она гарантированно перейдет в режим триала или  
демо и потребует повторной регистрации, поскольку Volume ID винта не совпадет. Удаление «;» в  
этих двух опциях позволяет виртуальному контейнеру зафиксировать Volume ID винда и имя  
компа, независимо от того, где сборка будет запущена. Если такой привязки нет, то можно отключить обе эти опции, добавив «;» в начале.
 
Иногда хватает и: Merged, Full, Write смотря по ситуации.  
 
Del...

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 21:38 06-07-2014 | Исправлено: dinis124, 19:51 12-07-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LCF84
Это плохая практика задавать одни и те же вопросы в разных темах.

Цитата:
У меня есть плеер, который при загрузке считывает HWID, UID системы

Что за плеер, если не секрет? Пробовали уже делать сборку? Эмуляции Volume ID недостаточно?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 12:23 07-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 

Цитата:
Это плохая практика задавать одни и те же вопросы в разных темах.

Не ругайте меня за это. Я не злостный нарушитель. Так получилось.
Не знал какую тему затрагивают вопросы и поэтому написал в обе темы.
 
Спасибо за ответы в той теме. Кратко и лаконично. Ссылку на прогу в шапке завтыкал.
Все же очень интересно, как и чем распаковывают эти "заводские" версии. Какой способ.
По поводу того, что там где в начале тебы есть ответы на вопросы - простите, мне не было времени просматривать 180 страниц форума при отсутствии 100% уверенности в наличии там ответов.    
 
Эмуляция Volume ID серийника включена по умолчанию, поэтому могу сказать, что не работает
VirtualDrives=Drive=c, Serial=6eeef09e, Type=FIXED
VirtualComputerName=UNDERWORLD
 
Вот ссылка на плеер. Ставить надо так Player.v0.28.1.883 2+ VLC.v2.0.4.
VLC версии 2.1 имеет баги и работает не корректно на семерке(плеер не регулирует звук), а с версией VLC 1.1.11 часто при запуске на семерке идет только звук без видео.
 
О причинах необходимости виртуализации - писал ранее. Прога привязывается к железу и при запуске на новой системе обнуляет полностью настройки. Разрабы удалять это не хотят и сказали, что это целенаправленая защита плеера от использования в различных сборках систем и програм.  
http://borpas.info/iptvplayer
Если сможете помочь со сборкой - спасибо. Если есть идеи по обходу проблемы другими способами - пишите в личку.

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 01:25 08-07-2014 | Исправлено: LCF84, 01:31 08-07-2014
SARA1994

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NickOnToluca
 
Скайп брал обычный, не PortableApps точно. Надо попробовать, как вы сказали, убрать все лишнее. Кстати, PortableApps мне не нравится, программы этой сборки прописывают в реестр ключи, только после завершения программы они удаляются. А если свет вдруг выключат? . А как еще можно сделать прогу портативной? У меня вот аська есть не одним файлом, а как нормальные программы, со всеми папками и файлами, но это и не PortableApps.  
Вообще есть ли такой скрипт, чтоб заставить программу обращаться не к реестру, а к ini-файлу с ключами реестра? Потом поместить его в папку с программой...

Всего записей: 2 | Зарегистр. 08-07-2014 | Отправлено: 01:36 08-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
dinis124Newbie

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

Цитата:
Да, и добавлю лишь что если анализаторы выдают компилятор Microsoft Visual C++ 9.0 - Visual Studio 2008 (E8) то программа не накрыта ничем.  

Спасибо - по поводу этого - в курсе. Не первый год пользуюсь анализаторами и взломщиками. То, что перечиленные мною файлы в левой колонке являются ссылки - чего-то завтыкал. Не удачный вечер. Там и по размеру понятно было - у всех одинаковый.

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 01:37 08-07-2014 | Исправлено: LCF84, 01:39 08-07-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LCF84

Цитата:
Все же очень интересно, как и чем распаковывают эти "заводские" версии. Какой способ.

Чтобы здесь не повторяться, рекомендую почитать FAQ от Astra55. Если мне не изменяет память, там даже с картинками и на русском.
 
Касательно привязки к hwid и uid, голословным быть не хочу, раньше с таким не сталкивался. Надо бы поэкспериментировать, но сейчас со временем не очень. Я и проверить его толком не смогу, потому что мой провайдер такую услугу не предоставляет.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 11:53 08-07-2014 | Исправлено: coherent, 11:58 08-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет парни. Как то давно видел где-то чьи то наработки тут с .NET Framework для VMware ThinApp. Если не выдаю желаемое за действительное киньте линк.
 
Извиняюсь за дубль. Но тупо улетело все молча из-за  объемных постов.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 12:19 08-07-2014
Satanachia

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При включении OptionalAppLinks=Plugins/*.*
Нужно ли создавать в папке с проектом, дополнительную папку Plugins?
Или же простое включение опции позволит использовать папку Plugins, уже непосредственно в собранной сборке, при создании этой папки рядом с файлом запуска?
Если необходимо создавать папку в проекте, то какую изоляцию выставлять для нее?

Всего записей: 948 | Зарегистр. 22-10-2012 | Отправлено: 14:21 08-07-2014 | Исправлено: Satanachia, 14:21 08-07-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Satanachia

Цитата:
Нужно ли создавать в папке с проектом, дополнительную папку Plugins?

Нет.

Цитата:
Или же простое включение опции позволит использовать папку Plugins, уже непосредственно в собранной сборке, при создании этой папки рядом с файлом запуска?

Да

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:32 08-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как то давно видел где-то чьи то наработки тут с .NET Framework для VMware ThinApp.

 
Были, были такие, Вы не ошиблись. Я, правда не помню кто выкладывал, но я скачивал и в коллекции осталось только это:
 
Microsoft .NET Framework 4.0-DonDD.rar
MD5: 1D776DD27E07BF68379612E45602AA6C
 

Цитата:
Не знал какую тему затрагивают вопросы и поэтому написал в обе темы.

 
Ага, в обе ))) В темы четыре запостили одни и те же вопросы ))) И это только там, где у меня подписка, а так, может и ещё где по форуму ))) Впрочем, смотрел на это с пониманием - кто ищет, тот находит!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 20:43 08-07-2014 | Исправлено: AVanti473, 20:45 08-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вечер добрый, или какое там время суток у Вас ))) Очередной вопрос из серии "идея":
 
Некоторые программы требуют запуска в определённый период времени. Это не относится к шароварам (Shareware), триал которых лечится убийством песочницы, либо RemoveSandboxOnExit или RemoveSandBoxOnStart в Package.ini Это относится к программам, которые, скажем, работают даже в зарегистрированном виде, всего год. Да, есть и такие разрабы-извращенцы, у которых очередная версия программы выходит, допустим, в 2013 году, а уже через год надо покупать обновление, или переводить системное время винды. Вроде бы мелочь, но заноза в одном месте.
И вот как запустить портабельную версию так, чтобы она считала, что запущена совсем в другое время?
Из очевидных способов, встроить в сборку одну из утилит вроде "Cracklock" или "RunAsDate". Но это приличное извращение, да и спорное. Ещё вариант, встроить в сборку .bat фаил с содержимым, что-то вроде:

Код:
set tempdate=%date:~-10%
date 01-01-13
notepad.exe
date %tempdate%

ну или:

Код:
set tempdate=%date:~-10%
date 01-01-13
start notepad.exe
date %tempdate%

Примером выступил блокнот "notepad.exe", а команда "start" обозначит, что дату нужно вернуть на текущую сразу после запуска программы.
И опять же, хоть здесь, в результате извращений, будет стартовать не ярлык от "RunAsDate" или не сторонний софт "Cracklock", а .bat фаил, тем не менее костыль и в Африке костыль. И ещё неизвестно как сработает. А всё потому, что на виртуальных машинах типа PortableVirtualBox этот фокус не проходит, а нет никакой гарантии, что программу не придётся использовать именно на виртуальной машине (той же портабельной VirtualBox), не используя родную ОС.
Порывшись в сети, понял, что программа получает (запрашивает) системную дату у винды. Но суть так и не понял. Что вообще в виндовс отвечает за дату и время? Понятно, что винда берёт эти значения у BIOSа, и корректирует (по желанию конечно), согласно серверов точного времени в инете. Значит винда с датой как-то работает! А раз работает, значит в реестре для этого что-то должно быть! Почему интересует реестр? По принципу отключения сборок от инета! Сколько хочешь встраивай и меняй не меняй системные файлы, а сборка слушается только своих ключиков реестра. Как бы так (для примера, ради интереса), с помощью ключей реестра, намекнуть сборке, что ей неоткуда получить системную дату? ))) Или изменить что-то в реестре так, чтобы программа получала какую-то статическую дату?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 19:09 11-07-2014 | Исправлено: AVanti473, 19:14 11-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
 
Ребята. Не знаю в какой точно топик писать. У меня проблема с vregtool.exe ExportReg, когда пытаюсь сконвертировать реестр проэкта в reg файл.
 
Файл .tvr делается нормально, а вто при при выполнении второй команды вылетает vregtool.exe.
Ошибка происходит как на Win7, WinXP, так и в виртульных системах Win7, WinXP(Vbox)
Происходт как и на распакованной Thinapp 4.0.4 так и на 5.0.1. Проэкт захватывался на 5.0.1
 
Пользуюсь таким батником.  
 
echo on
set PROJECT_DIR=%CD%
set THINSTALL_BIN=%PROJECT_DIR%
"C:\1\vregtool.exe" "%THINSTALL_BIN%\Registry.TEMP.tvr" ImportDir "%THINSTALL_BIN%\"
"C:\1\vregtool.exe" "%THINSTALL_BIN%\Registry.TEMP.tvr" ExportReg "%THINSTALL_BIN%\Registry.TEMP.reg"
 
Хотя при указании фиксированных путей ничего не меняется - тоже ошибка. При попытке конвертировать реестр других проэктов - тоже самое.  
В чем может быть проблема?

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 14:16 12-07-2014 | Исправлено: LCF84, 14:28 12-07-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LCF84
Пролистайте пару страниц назад, похожий вопрос уже задавался. Если ошибка такая же, то проблема в версии 5.0.1, а именно "проект захватывался на 5.0.1".

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 16:15 12-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ошибка повторяется таже в Thinapp 4.0.4 и проэке, сделанным ним же.
Ни в какую не хочет конвертить реестр в reg. Правда в этот раз успело конвертнуть 70% файла до ошибки.
 
Добавлено:
Подскажите еще по одному вопросу
 
Что это такое,  
A new kernelmode component "DefragFS" was installed, this is not supported by ThinApp.
Пытаюсь сделать портативку PerfectDisk.v10.0.129.Server.x86 и PerfectDisk.v8.00.67.Pro.x86.Rus.P

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 00:57 13-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
A new kernelmode component "DefragFS" was installed, this is not supported by ThinApp.

 
Установлен компонент "DefragFS" (скорее всего драйвер, отвечающий за дефрагментацию диска). Не поддерживается ThinApp (что и так понятно, ведь ThinApp не поддерживает установку драйверов).

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 09:01 13-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Не поддерживается ThinApp (что и так понятно, ведь ThinApp не поддерживает установку драйверов).

 Я бы уточнил официально не заявлено.
 
Но Вашим же словом отвечу, о неких костылях для решения задачи, другой вопрос нужно ли и оправдана ли такая сборка будет.  
(как то увидел портированный DAEMON Tools, удивился, ни имени автора, ничего. Качаю,..  и думаю если в Apps кину на флешку, мало ли пригодится по работе, скачал. Открываю, а там архив и сборки в ThinApp и Spoon на выбор и вкус) Упрежу, в системе установлена лайт версия DAEMON Tools Lite. Так вот запустил в ThinApp, жуть, что там и как было не в курсе, но в момент запуска стоял в вирт приводе диск с доками по работе. Я в него, ан фиг вам, отказано в доступе и все. И никаких ошибок, ничего. Естесно прога зависла, не закрывалась, процесс висел и думпился. Грохнул, перегрузил, захожу с опаской в рабочий диск своей установленной DAEMON Tools Lite а там фигурально написано. Нехер ставить всякий шлак...
LCF84
 
Извиняюсь, видимо замучен был. Так если суть была распаковать VMware ThinApp то вопрос распаковки менее минуты занимает.  
 
AVanti473
 
Microsoft .NET Framework 4.0-DonDD.
 
Спасибо, посмотрю.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 09:43 13-07-2014 | Исправлено: dinis124, 09:48 13-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1) По драйверу я впринцыпе и сам догадался, но решил переспросить у вас в надежде, что вы предложите вариант решения или костыли!! Но я так понял, что решения нет.
Все дело в том, что мне нужно попользоватся именно восьмой версией прораммы. А она не хочет устанавливаться на всем выше ХР. В последующих версиях нужную мне опцию - дефрагментация папок на ФАТ32 разделе - отдибилили(убрали, упростили - не работает ка мне нужно). Поэтому и пыюсь придумать, как её можео запустить на всяких мини сборках систем ХР или Семерке без установки. Я так понял, последний вариант - portableapps?
 
2) Есть ли все таки мысли, почему не работает конвертация реестра. Кто нибудь сталкивался с такой проблемой?   А может кто-нибудь у себя попробовать на версии Тинапа 5.0.1 конвертнуть?

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 12:51 13-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Есть ли все таки мысли, почему не работает конвертация реестра.

 
Ошибку в студию. На какой строке ошибка, что было на этой строке изначально?
 

Цитата:
 дефрагментация папок на ФАТ32 разделе

 
ИМХО ФАТ32 ущербна уже только потому, что не поддерживает файлы размером более 4 Гб. Остальное будет офтоп с моей стороны.
 

Цитата:
что вы предложите вариант решения или костыли

 
Костыль только один - вынос dll в реальную систему. Об этом написано в FAQ от Astra55, правда я уже высказывал сомнения, что этот вариант работоспособен на новых версиях ThinApp. Мог бы спасти ситуацию скриптовой джентльменский наборчик, о котором я просил ранее, но желающих помочь с этим так и не нашлось, а следовательно и Ваш вопрос зависнет в воздухе.
coherent мог бы нам помочь, но не считает мои задумки сколь-либо оправданными или полезными, а следовательно не видит смысла в поиске таких решений. Куда-то подевался SLasH... Ну так, лето, возможно люди отдыхают

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 13:46 13-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
AVanti473

 
VMware ThinApp 4.6.2 сборка от NickOnToluca Не то?
 

Цитата:
LCF84

 
Не понял
 

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 14:21 13-07-2014 | Исправлено: dinis124, 14:23 13-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
VMware ThinApp 4.6.2 сборка от NickOnToluca Не то?

 
В каком именно смысле?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 14:28 13-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
AVanti473

 
Джентльменский наборчик
 
VMware ThinApp 4.6.2RUS\Extra\VBS ...
 
Ребят, Вы извините, но Вы так много строчите что глаза разбегаются а смысла нет от прочитанного.  
 
если речь идет о драйверах и приводах как я ранее читал Вас мельком то там имеются скрипт установки и удаления. На примере программы UltraISO. Я ничего не перепутал? Так я запутался что Вам необходимо Но там безусловно интересно открыть скрипты в текстовике и почитать.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 14:30 13-07-2014 | Исправлено: dinis124, 14:41 13-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Джентльменский наборчик

 
Понял, извиняюсь, но а там имеется необходимые мне скрипты? Если да, прошу поделиться ссылкой на сборочку. )))

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 14:31 13-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dinis124
 
На данный момент у меня три острых вопроса по работе с Тинапом.
 
1. Возможность запуска IPTV плеера на разных системах, который делает проверку  
HWID. Пока решения нет.
 
2. Пытаюсь сделать портативную Оперу 11.64. Мне нужно сконвертировать реестр Тинапа с проэкта в файлы reg. У меня это не получается, т.к выдаются просто завершение vregtool.exe на пол дороги и все.
 
3. Я хочу сделать портативку дефрагментаттора PerfectDisk.v8.00.67.Pro.x86.Rus, но там есть драйвер. И без него, прога не работает. Пытаюсь найти костыли.

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 15:26 13-07-2014 | Исправлено: LCF84, 15:28 13-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
LCF84

 
 
Да я уже понял что дел выше крыши у Вас.  
Не стоит кричать на меня только, шрифт убавьте. Просто заинтригован до нельзя стал,  потом выше про fat32 и прочее непонятно к чему пришить...
 
Этак примерно на страницу 50 ткните, и начните читать оттуда, может про обозреватель Opera попадется полезная информация. И просто на будущее совет если хотите, упоминайте полное имя программы в теме разговора. И имя этой программы пишется не на русском языке к слову. Так будет грамотнее в разы.
 
Сдается мне, не только я тут недоперепонял но и любой кто прочтет Вас, хрен что выудит информативного нет? Я не прав?
Ну не прошло и год а как появилась таки та жертва программа. Спасибо, буду ждать с нетерпением ее.  
 
Я совет дал, грамотно заданный вопрос ... понимаете?  
 
Я рад что Вы все таки добавили имя программы.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 15:38 13-07-2014 | Исправлено: dinis124, 15:42 13-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Вот данные по ошибке. Там архив с проэктом.
http://my-files.ru/l5v2k4
 
с проэкта нормально делается файл Registry.TEMP.tvr, а вот дальше, второй этап - конвертация его в reg крашится.
 
Сам тинап взят из шапки 5.0.1
Прошу кого-нибудь попробовать сконвертировать. Что бы исключить ошибку чисто моей локальной машины.

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 15:41 13-07-2014 | Исправлено: LCF84, 15:42 13-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Там архив с проэктом.

 
Да, в точности как было у меня, и уже давали мне здесь ответ, я даже законспектировал себе:
 
Ошибка при конвертации из-за следующего значения ключа:
REG_SZ=
Решение: Заменить везде это значение на:
REG_SZ=#00
 
и вот он ваш фаил реестра: http://rghost.ru/56870907
 
Дружно благодарим coherent за правильную подсказку!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 16:14 13-07-2014 | Исправлено: AVanti473, 16:23 13-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473,
Спасибо. Я проделал совет и получили тот же результат. Но содержание результирующего файла значительно отличается от исходных. Нехватает очнб много ключей особенно с ветки HKEY_LOCAL_MACHINE\SOFTWARE\Classes\

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 16:58 13-07-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LCF84

Цитата:
Я хочу сделать портативку дефрагментаттора PerfectDisk.v8.00.67.Pro.x86.Rus, но там есть драйвер. И без него, прога не работает. Пытаюсь найти костыли.

Костыли - это временная установка нужного драйвера при запуске и удаление при завершении работы. Копирайт забил Astra55. Рабочий вариант для FinePrint приводил Alex_Piggy. Поищите поиском в версии для печати.
 
Добавлено:
Reg-файл: http://rghost.ru/56873341

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 18:19 13-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
coherent

 
Не подскажите, в чем было проблема. Почему у меня и у AVanti473 не получились сразу нормальные файлы? Какой версией Thinapp делали?
 
А по поводу костылей и Alex_Piggy - а есть ли готовый шаблонный скриптик для извлечения и удаления файлов изи системы и реестра? Можете поделится. Я видел переписку выше о таком(касательно RegOrganizer по моему), но я так не понял, есть ли уже окончательный вариант?

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 19:41 13-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

 
О, глядишь вместе и допросимся )))))))) Хотя, что-то мне подсказывает, нас отошлют к бессмертному творению, где ответ на нужные вопросы совсем иной.
 
Напомню-ка задачку

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 19:53 13-07-2014 | Исправлено: AVanti473, 19:54 13-07-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LCF84

Цитата:
Не подскажите, в чем было проблема. Почему у меня и у AVanti473 не получились сразу нормальные файлы? Какой версией Thinapp делали?

REG_SZ= и REG_NONE=

Цитата:
А по поводу костылей и Alex_Piggy - а есть ли готовый шаблонный скриптик...

Драйвер драйверу - рознь, поэтому вряд ли может быть универсальный скрипт. Хотя подход, в принципе, общий. Нужно отследить какие файлы и куда устанавливаются, какие записи вносятся в реестр, какие службы запускаются. Все применительно к драйверу, естественно. А потом это все проделывать скриптом. А в конце все это удалять. За основу брать скрипт Alex_Piggy.
 
AVanti473

Цитата:
coherent мог бы нам помочь, но не считает мои задумки сколь-либо оправданными или полезными, а следовательно не видит смысла в поиске таких решений.

То, что одному кажется важным, другому может быть просто неинтересно.
То, что Вы хотите на самом деле рутина. Но у меня сейчас со временем не очень. Кроме этого, постановка задачи должна быть вылизана от и до. Что-то мне подсказывает, что изначальная задача

Цитата:
...стартует скрипт, который копирует...из...в...По завершению ... стартует скрипт удаления следов папок.

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

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 21:46 13-07-2014 | Исправлено: coherent, 21:46 13-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
перерастет в "а если на компьютере имеется установленная версия

 
Не перерастёт. Разумеется, такая мысль не могла не появиться в самом начале размышления ещё три страницы назад, но я её отбросил, так как уже обжёгся с подобным (если помните) на RegOrganizer. Поэтому, хотелось бы решить хоть что-то конкретное. В конце концов, легко запомнить, или приписать в инструкции для посторонних пользователей, что сборку не стоит запускать, если в системе имеется такой же установленный софт.
Не буду лукавить, дальнейшие размышления на тему, как Вы её обозначили - "а если...", возможны, но никак не в ближайшей перспективе, да и только в случае реального успеха первых шагов. К тому же, я уже прилично понимаю, насколько сложнее создать скрипт с различными бекапами и восстановлением, в отличии от простого "скопировать-удалить".

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:08 13-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не так давно я тут подымал вопрос портизации Fraps.v3.5.99.
 
У меня появились сложности.
Сам экзешник накрыт TheMida и поэтому я не мог сделать локализацию на руский язык, а те патчи, которые позволяли получить русский перевод погружаясь самостоятельно не позволяли работать портативной сборке. Рабочая была только английская версия(с защитой themida) на вин7 и ХР сделана как на Thinapp 5.0.1 так и 4.0.4.
 
Потом сдесь добрые люди мне помогли снять защиту и я сделал перевод экзешника и сделал портативку.  
Как ни странно, Frap с русской локализацией работает только на ХР, а на семерке крошится. Портативка с оригинальной версией распакованого экзешника тоже крашится только на семерке. Т.Е на семерке работает только портативка FRAPS сделаная из оригинального английского экзешника с защитой TheMida.
В чем может быть причина? Почему не работают распакованные экзешники на вин7? Есть мысли? Может куда посоветуете обратиться с этой проблемой?

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 00:40 15-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как упаковать файлы программы в формат .dat? Объясните какие параметры нужно прописывать в Package.ini? Хочу создать портабелизацию на подобии этой портации, но не знаю что и где прописывать...Кто знает, пожалуйста, помогите!!!

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 21:09 17-07-2014 | Исправлено: dodakaedr, 21:37 17-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как упаковать файлы программы в формат .dat

 
Зачем?
ThinApp сама создаёт .dat файл, если вес сборки достаточно большой.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:29 17-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Зачем?  
ThinApp сама создаёт .dat файл, если вес сборки достаточно большой.

Вопрос обновил!

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 21:38 17-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вопрос обновил!


Цитата:
Объясните какие параметры нужно прописывать в Package.ini?

 

 
Знакомая картинка?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:45 17-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Знакомая картинка?

Даже очень!
 
Добавлено:
AVanti473 Спсибо! Еще вопрос есть? В мануале нашел как изменить инфо о исполняющем файле, но что-то не работает. Пример:
Цитата:
 [MyProg.exe]
Shortcut=App\MyProg.dat
Source=%ProgramFilesDir%\MyProg\MyProg.exe
;Change ReadOnlyData to bin\Package.ro.tvr to build with old versions(4.6.0 or earlier) of tools
WorkingDirectory=%ProgramFilesDir%\MyProg
Shortcuts=%Programs%\MyProg;%Desktop%
Version.ProductName=Portable

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 21:50 17-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер.
Я там на 182 странице писал про проблемы с Fraps. Но что-то пока мне никто не оветил. Есть у кого какие мысли.
 
Второй вопрос - по ссылке я приложил портативку Fraps c русским, распакованным от Themida экзешником.
Он прекрастно работает на ХР, но не вкакую не хочет запускатся на семерке х86. Проэкт собирался на Thinapp 5.0.1 (распакованный).
 
Прошу, кому не тяжело, проверьте на своих компах(ХР, семерка, восьмерка - х86-х64) и опишитесь - работает ли у сказание тестоваой системы.
Спасибо.
 
http://my-files.ru/otyzsd

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 22:40 17-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В мануале нашел как изменить инфо о исполняющем файле

 
Немного непонятно, изменить информацию об екзешнике самой сборки, об исполнительном файле программы, или о местонахождении исполнительного файла портабелизируемой программы?
И, если я правильно помню, у исполнительного екзешника должна быть запись:
ReadOnlyData=Package.ro.tvr

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:41 17-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LCF84
 
Почту читал письмо от меня? Не работает на windows XP. Вываливается с ошибкой
Скрин:
Ссылка
 
Почту в ру-боард свою прочти...
 
И тут не тема по локализации программ дружище. Все.
ЕЩЕ РАЗ ЧТОБ ЗАМЕТИЛ, НА  WIN XP НЕ РАБОТАЕТ!  
 
Завязывай тут с фрапсом. Определись сперва сам чего хочешь и что пишешь.
 

Цитата:
Второй вопрос - по ссылке я приложил портативку Fraps c русским, распакованным от Themida экзешником.

 
А теперь поступи как поступил я. Распаковав твою портативку фрапса и прогнав анализаторами ехе файл. Точно что ли ничем не накрыт? А?

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 22:43 17-07-2014 | Исправлено: dinis124, 23:17 17-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
об екзешнике самой сборки

Да!

Цитата:
ReadOnlyData=Package.ro.tvr

Эта строка у меня прописана в .dat файле. Можно два раза использовать её?

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 22:47 17-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Можно два раза использовать её?

Скорее всего, уверен, что - нет.
 

Цитата:
Да!

но в Package.ini прописывается параметр не екзешника сборки, а екзешника самой упаковываемой программы... Таким образом Shortcut=App\MyProg.dat может быть некорректным.....

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:50 17-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Небыло письма от тебя. Может в спам попало - на какой меил писал, когда?
Можешь повторить.
 
Кстати - поробуйте тот файл, что в архиве, пожалуйста.

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 22:50 17-07-2014 | Исправлено: LCF84, 22:53 17-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Shortcut=App\MyProg.dat

У меня так и прописано, ошибок не заметил, работает корректно.
 
Добавлено:

Цитата:
Скорее всего, уверен, что - нет.  

Вы правы. Ошибка!
 
Добавлено:

Цитата:
но в Package.ini прописывается параметр не екзешника сборки

А где надо?

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 22:53 17-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А где надо?

 
На этот вопрос я увы ответа не знаю. Могу предположить, что умельцы как-то меняют сам екзешник. Мне тоже показалось странным, что в вашем примере WinUtilities.exe находится отдельно, а WinUtilities.dat лежит в папке App. Возможно, этих тонкостей я пока не знаю.
 
LCF84
Ваш Fraps везде просит DirectX9, а на виртуалках у меня он не стоит. Увы, из-за этого, проверить не могу...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:13 17-07-2014 | Исправлено: AVanti473, 23:20 17-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
На этот вопрос я увы ответа не знаю. Могу предположить, что умельцы как-то меняют сам екзешник. Мне тоже показалось странным, что в вашем примере WinUtilities.exe находится отдельно, а WinUtilities.dat лежит в папке App. Возможно, этих тонкостей я пока не знаю.  

Пробовал через Resource Tuner подправить инфу, после чего финаповская зашита прерывает работоспособность экзешника, по край мерее я так думаю что из-за финапа.

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 23:19 17-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr, кажется нашёл:  
Вместо:  
SandboxPath=.  
указать (в Вашем случае):  
SandboxPath=LocalSandbox\App

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:20 17-07-2014 | Исправлено: AVanti473, 23:21 17-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
кажется нашёл:

Нет, с этим проблем нету...все создается как и планировалось, вот только инфу не получается изменить, как в той портации которую скидывал..
 
Добавлено:

Цитата:
SandboxPath=LocalSandbox\App

Оно так и создается, папка в папке...

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 23:23 17-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
вот только инфу не получается изменить, как в той портации

понятно... папки создаются как надо, а .dat всё равно появляется рядом с екзешником, если я верно понял. Увы, тогда не знаю, но разбирает любопытство, а зачем? Если юзверь, по незнанию, снесёт (как он думает) песочницу App, то с ней канет в лету и .dat, без которого екзешник не запустится?!... Смысл таких рискованных манипуляций?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:27 17-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если юзверь, по незнанию, снесёт (как он думает) песочницу App, то с ней канет в лету и .dat, без которого екзешник не запустится?!... Смысл таких рискованных манипуляций?

Я над этим не задумывался. И по логике можно понять что папка Арр не песочница так как там лежит файл в 20 мб, который "говорит" что это его "программа". В каждого свои тараканы))

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 23:37 17-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Пробовал через Resource Tuner подправить инфу, после чего финаповская зашита прерывает работоспособность экзешника, по край мерее я так думаю что из-за финапа.

 
Судя по инфе из файла WinUtilities.exe, в данном случае, к изменению екзешника приложили руку товарищи из SoftsPortateis.Blogspot.com
Возможно, тут одним Resource Tuner не обойтись. Сам .dat править мне кажется бессмысленно, а вот сэмитировать запускаемый екзешник, думаю наверняка возможно. По сути, ведь, екзешник является точной входа в .dat файл, а следовательно, должен содержать информацию о местонахождении .dat файла рядом с собой. Но это теория, а практику быстрее подскажут более компетентные участники форума. )))

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:43 17-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ваш Fraps везде просит DirectX9, а на виртуалках у меня он не стоит. Увы, из-за этого, проверить не могу...

 

Цитата:
AVanti473

А на стационарной можешь проверить?

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 23:45 17-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Но это теория, а практику быстрее подскажут более компетентные участники форума. )))

Найти бы их)

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 23:47 17-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr, Мы наверное сейчас вместе посмеёмся. Ради интереса, переименуйте WinUtilities.dat в WinUtilities.exe и я думаю, всё станет понятно )))
А тот WinUtilities.exe, что лежит рядом с папкой App, просто запускает .dat, как исполняемый exe файл )))
 

Цитата:
Найти бы их

Желательно самонаводящейся крылатой ракетой, чтобы перестали фигнёй страдать ))) Ой, соури, это я про товарищей из SoftsPortateis.Blogspot.com    
 
Добавлено:

Цитата:
А на стационарной можешь проверить?

 
Стационарный Win7x64 - Ошибка и вылет.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:47 17-07-2014 | Исправлено: AVanti473, 23:57 17-07-2014
LCF84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А теперь поступи как поступил я. Распаковав твою портативку фрапса и прогнав анализаторами ехе файл. Точно что ли ничем не накрыт? А?

 
Да - точно
Detect It Easy.v0.85.Win32
на запакованній - писало:
MS Linker(10.0)[EXE32]
Themida/Winlicense(2.X)[EXE32]
 
а теперь на распакованный
MS Linker(10.0)[EXE32]
 
Вот тебе ссылка на ярлык с экзешниками - запакованным и нет
http://my-files.ru/hgqig6

Всего записей: 46 | Зарегистр. 16-06-2013 | Отправлено: 23:52 17-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ради интереса, переименуйте WinUtilities.dat в WinUtilities.exe

 
С другой стороны, любой .dat от ThinApp, переименованный в .exe, стартует с дефолтной точкой входа. Значит, дело всё же в изменённом WinUtilities.exe, который дописывает в путь до .dat файла папку App. А что если открыть этот екзешник в, скажем Visual Studio, или чём-то подобном?... Не знаю, надо пробовать варианты, жаль времени нету )))

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 00:05 18-07-2014 | Исправлено: AVanti473, 00:06 18-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LCF84
 
В ЛС ответил. хватит тут об этом уже. Я еще раз только повторю. Тот исполняемый файл что я вытащил из твоей упакованной портативки и тот который ты мне дал сейчас без темиды. Контрольные суммы разные. Больше тут по теме фрапса не общаюсь. На 7-86 тоже твоя не пашет.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 00:11 18-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
WinUtilities.exe

 
Попробовал открыть в Visual Studio результат такой же как и у всех открывашек типа Resource Hacker - фаилы иконок и инфа о самом екзешнике.
Открытие в ollydbg даёт лишь (насколько я понял) точку входа
 

 
но это на первый взгляд бесполезно... Нигде не вижу упоминания про папку App или .dat файл... Пробовал запускать через программу и смотреть что происходит, но для меня там ничего понятного...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 01:37 18-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
 
dodakaedr
 
http://softsportateis.blogspot.it/2014/05/segredos-do-thinapp-dicas-e-truques.html
 
Вроде там гугл нормально с португальского перевод дает.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 08:08 18-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dinis124
Понятно, спасибо, будем знать )))

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 10:25 18-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dinis124
Спасибо! А по поводу изменения инфы экзешника можете подсказать?
 
Добавлено:
Никто не в курсе как создать свой экзешник з ссылкой запуска на dat файл?

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 18:59 18-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr
 

Цитата:
Никто не в курсе как создать свой экзешник з ссылкой запуска на dat файл?

 
Как это можно было бы реализовать при помощи VMware ThinApp даже не знаю. Но думаю, что не без помощи nsis. У него на сайте сборка VMware ThinApp которая собрана так же с лаунчером. Написал amigo, надеюсь он понимает сибирско-английский диалект.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 20:03 18-07-2014 | Исправлено: dinis124, 17:20 20-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dinis124
Спасибо!

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 20:08 18-07-2014
SunOK_ZM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
как создать свой экзешник з ссылкой запуска на dat файл?

можно. С помощью Quick Batch File Compiler на основе батника (cmd-файл) создать лаунчер, прописав во вкладке "Информация о версии" всё что душе угодно. А команда такой должна быть:
Код:
if exist "my program.dat" call "my program.dat"
кавычки из-за пробелов в имени файла.

Всего записей: 255 | Зарегистр. 19-02-2012 | Отправлено: 20:54 18-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
можно. С помощью Quick Batch File Compiler на основе батника (cmd-файл) создать лаунчер,

Я уже обдумывал такой вариант, но не то. Надо как-то финаповский экзешник редактировать.
 
Добавлено:
SunOK_ZM
Хотя через предложенную вами программу получилось, но также запускается окошко командной строки, не удобно.

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 22:46 18-07-2014 | Исправлено: dodakaedr, 22:58 18-07-2014
SunOK_ZM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr, еще думал сразу написать о скрытном запуске (в настройках переключить на "Ghost application"), но будут паралельно висеть еще 3 процесса - cmd.exe, conhost.exe, и лаунчер - плюс основное приложение = итого 4 процесса. Наверно этот способ самый морочный.
А параметр Version.ProductName= ничего не дает, странновато.

Всего записей: 255 | Зарегистр. 19-02-2012 | Отправлено: 03:35 19-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr
 
Думаю Вы этого хотели достигнуть? Все сделано как в WinUtilities у amigo.
 
Файл Package.ini всунул внутрь, для наглядности что и куда вписано. Хотя там по идее его половину и более снести нужно...
 
Скачать: Ссылка
 
 
Скриншот:
 
http://savepic.org/5822259m.htm
 
Поясню, я не выносил папку App как увидите после распаковки. Папка с именем Exe Protect создана для удобства и не более. Если папку App и лаунчер вынуть то проблем не возникнет но лаунчер и папка App всегда рядом должна быть. На лаунчере в свойствах файла ввел дополнительную информацию.
 
SLasH
 
Писал:
 
Подробнее...
 
 
Что касаемо amigo, только вот вот пришло письмо с ответом где сказано:  
Привет, извини я буду краток, так как не говорю на твоем языке. Я (то есть он) использую nsis ThinApp Spoon.  
 
Вобщем, мы не поняли друг друга и мой английский видимо ему не понятен.
 
SunOK_ZM

Цитата:
А параметр Version.ProductName= ничего не дает, странновато.

 
Проверил, все дает. Хоть анекдот туда впишите.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 09:01 19-07-2014 | Исправлено: dinis124, 09:38 19-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Думаю Вы этого хотели достигнуть?

Именно этого. Спасибо! И еще вопрос есть: как указать свою версию?

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 12:33 19-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr
 
Version.FileVersion= Версия файла
 
Version.ProductVersion=Версия продукта  
 
Это не то?  

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 13:00 19-07-2014 | Исправлено: dinis124, 13:02 19-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Это не то?  

Почему-то не то. Мне надо указать 11.15.0.0 а она ставится 11.1.5.0

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 13:09 19-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Почему-то не то. Мне надо указать 11.15.0.0 а она ставится 11.1.5.0

 
А в исполняемом файле программы как указано? Так же: 11.1.5.0? Если да то наверно и правильно что оттуда берет. Возможно до второго снимка можно было исправить информацию о файле. Хотя я если честно не понимаю смысла о чем конкретно речь идет.
 
SunOK_ZM
 
Ну да. И еще если автор не заблокировал от изменений. Бывает и не раз сталкивался, что просто нет возможности визуально изменить. Но и в таком случае можно иногда дописать отсебятину, правда как правило защищенный файл станет неработоспособен. Ни в PE Explorer - Restorator и т.д  Я просто как писал выше не понял для чего и что именно сперва требуется. Возможно и есть как то решение при правке проекта, фиг знает.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 13:16 19-07-2014 | Исправлено: dinis124, 16:48 19-07-2014
SunOK_ZM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dinis124, да параметры Version.*=* в основном работают. Только версия файла берется нагло из exe-шника. НО, работает если у exe-шника создатель прописал всякие версии. А вот в блокноте Dimoniusis TigerPad вообще нигде не действует - я случайно его взял для проверки (поэтому и написал сгоряча что не дает эффекта), другие проекты подписываются.

Всего записей: 255 | Зарегистр. 19-02-2012 | Отправлено: 16:25 19-07-2014 | Исправлено: SunOK_ZM, 16:28 19-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Хотя я если честно не понимаю смысла о чем конкретно речь идет.

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

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 17:13 19-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr
 
Да это понятно, не понятно, зачем. Я не знаю как.
 
Прочтите личную почту пожалуйста у себя в ящике ру-боард. Кое что перекинул туда.
 
SunOK_ZM

Цитата:
А вот в блокноте Dimoniusis TigerPad вообще нигде не действует

Не пробовал, но он аспаком накрыт по моему.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 18:42 19-07-2014 | Исправлено: dinis124, 17:24 20-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dinis124

Цитата:
не понятно, зачем

Чтобы исправить с 11.1.5.0 на 11.15.0.0

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 20:23 19-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr
 
Amigo пишет, о программе WinUtilities. Как я и предположил после портирования VMware ThinApp последующая работа делалась в nsis. Если тебе важно это.
 

Цитата:
Чтобы исправить с 11.1.5.0 на 11.15.0.0

 
А зачем Если в исполняемом файле так указано, то зачем менять.Нет я конечно понимаю внутреннее имя файла, версия файла и все такое прочее, но по моему это все лишнее.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 21:48 19-07-2014 | Исправлено: dinis124, 22:01 19-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Чисто ради интереса хотел поинтересоваться. Вполне возможно, что я когда-то мог уже задавать подобный вопрос, но, к сожалению не помню на него ответа. Давным давно мне был интересен Windows Media Player девятой версии. Интересен этот плеер был исключительно тем, что к нему идеально подходил один звуковой плагин, и при этом сам плеер без ненужных пришибленных наворотов! Беда в том, что работало это всё дело лишь на WinXP... На семёрке, ни инсталлировать эту версию плеера, ни запустить её в портабельном варианте (а такой когда-то даже имелся в сети, понятия не имею кто пытался его соорудить) было невозможно! Так уж выходит, что виндовс весьма капризна к вшитым в неё программкам, и если уж требует определённую версию, то хоть лопни!
Вопрос в следующем - как можно обойти, и можно ли вообще обойти подобные ограничения, и сделать портабельную версию Windows Media Player v9 для Win7 ?
Вопрос не из праздного любопытства! Действительно хочется вспомнить приятное привычное звучание этого плеера с плагином, а так же сделать его для личного пользования в портабельном варианте.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:51 19-07-2014
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Amigo пишет, о программе WinUtilities. Как я и предположил после портирования VMware ThinApp последующая работа делалась в nsis. Если тебе важно это.  

В смысле "последующая"? Что там можно еще после портации сделать? Жаль nsis я не знаю, мне ближе inno setup.

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 00:55 20-07-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr
Даже не представляю о чем он, и что делалось.
 
В блоге у него нажмите вкладку nsis, но это все поверхностно, там только подготовка инструментария. Касаемо темы WinUtilities это несколько иное. На примере псевдопортативной сборки версии в nsis используя nsis, Total Uninstall etc.
 
Все началось с сообщения:
 
Подробнее...
 
После просмотра я как помните предположил что там nsis. Но я предположил это не по лаунчеру а по ini файлам в песочнице портативной программы WinUtilities: WinUtilPortable.ini; Settings.ini; tmp_winutil.ini
 
К примеру при запуске его программы мы видим всплывающий наг by петя. А в той папке я сразу увидел файл с именем WinUtilPortable.ini, открыл его а там:
 
[WinUtilPortable]
AllowMultipleInstances=false
DisableSplashScreen=false
 
Параметр DisableSplashScreen= Меняем на DisableSplashScreen=true и картинка by петя не показывается.
Делает Тиистал так? Либо до, либо после, но я не копался и нет желания. Но что то там делалось это факт.
 
И еще, возможно я криворук и дело в руках, но я так и не смог распаковать его данную портативку для разбора и анализа.
 
Вобщем портаблеаппс нас окружает)

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 07:47 20-07-2014 | Исправлено: dinis124, 08:40 20-07-2014
distortion



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
поделитесь опытом - делал ли кто-то thinapp снимки внутри sandboxie или других песочниц?
 
p.s. вопрос вызван не праздным любопытством, нет возможности использовать виртуальные машины в корпоративном окружении. ищу альтернативные варианты...

Всего записей: 3708 | Зарегистр. 07-04-2001 | Отправлено: 23:13 30-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
вопрос вызван не праздным любопытством

 
Снимки нет, а вот процесс работы одной портабельной программы внутри другой портабельной программы (по сути песочнице), как правило приводит к ошибке (да Вы и сами в курсе). Впрочем, сейчас об интересном опыте:
Если у Вас семёрка (не ХР), и взять вот такую вот мою игрушку https://yadi.sk/d/cjmdCAotHsUtE то через неё невозможно проинсталлировать ThinApp в систему. Зато в ней запускается распакованная версия, но при создании снимка вылетает с ошибкой где-то на ветках реестра. Впрочем, всё зависит от того насколько и чем забита система.
 
Всё это не имеет особого значения, а написал к тому, что, скорее будут ошибки, чем что-то успешное.
 

Цитата:
нет возможности использовать виртуальные машины в корпоративном окружении

Даже такие портабельные? http://yadi.sk/d/iM5LeWvIJXje6

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:36 30-07-2014 | Исправлено: AVanti473, 23:37 30-07-2014
Gambit47

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем форумчанинам доброго вечера, тут столкнулся с проблемой при создании портативных игры с помощью программы VMware ThinApp, которая в принципе неплохо справляется с созданием игр и многие из них запускаются без проблем, НО сама проблема заключается в сохранении профиля данных игр на диске С, к которому у меня нет прав администратора, а наши учетные данных хранятся на сетевом ресурсы вместе с файлами моих документов, изменить папку хранения Моих документов не получается, доступ к реестру закрыт. Чаще всего игры сохраняют свои профили в C:\Users\XXXXX\Documents\My Games
Пытался решить данную проблему создавая в папку bin папку Thinstall в которой должные сохранять данные запускаемого приложения и засовывал в виртуальную оболочку  PortableApps, НО ни каких результатов не добился.
 
Если есть умные головы помогите решить эту ситуёвину.

Всего записей: 1 | Зарегистр. 31-07-2014 | Отправлено: 20:20 31-07-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
НО сама проблема заключается в сохранении профиля данных игр на диске С, к которому у меня нет прав администратора, а наши учетные данных хранятся на сетевом ресурсы вместе с файлами моих документов, изменить папку хранения Моих документов не получается, доступ к реестру закрыт. Чаще всего игры сохраняют свои профили в C:\Users\XXXXX\Documents\My Games

 
Как бы пока очевидно, что надо, во первых - заставить песочницу появляться рядом с запускаемым файлом сборки, а это добавление параметра SandboxPath=. в Package.ini И во вторых - сделать изоляцию папки C:\Users\XXXXX\Documents (что в сборке значится как %Personal%) при помощи файла ##Attributes.ini - WriteCopy Или же я не понял Вашего вопроса, тогда соури...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 20:37 31-07-2014
obla4ko4240019



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
при запуске некоторых программ начали возникать ошибки такого плана
 
http://c2n.me/iEK5EP
 
Единственное нагугленное упоминание ошибки https://communities.vmware.com/message/2282324?tstart=0#2282324
 
На 5-10-ую попытку запуска программа наконец-то запускается.
Эффект проявляется на домашнем и рабочем компе с Win8 и Win8.1. В том числе и на свежеустановленной системе.  
 
Установка программы происходила на чистой виртуалке с 8.1.
Сборка на домашней системе с 8.1.
 
Эффект проявляется с программами SQLyog и aMule. Другие программы пока не заметил.
 
Использую 5.0.1.
 
package.ini

Всего записей: 3275 | Зарегистр. 14-09-2005 | Отправлено: 14:37 03-08-2014
SkyRE

Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
obla4ko4240019 13:37 03-08-2014
Цитата:
при запуске некоторых программ начали возникать ошибки такого плана
У вас случайно не Symantec Endpoint Protection стоит?

Всего записей: 2840 | Зарегистр. 07-09-2005 | Отправлено: 12:19 06-08-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ThinApp 5.0 - Справочник по параметрам Package.ini
https://yadi.sk/d/ToccV3g9ZGc2f
 
Это первая редакция перевода справочника, которую буду править после перевода руководства пользователя. Надеюсь, что найдётся грамотный рецензент, хорошо знающий программу.

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 11:40 08-08-2014 | Исправлено: pavlaf, 00:34 10-08-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Это первая редакция перевода справочника

 
Скажу одно - как замечательно придумано, сначала дать русский перевод, а затем оставить замаркированный оригинальный текст в файле thinapp50_packageini._RusEng.chm !!! Читать одно удовольствие! Если что-то непонятно (для меня лично пока таких мест не встретилось, но начинающим юзерам), то всегда можно попробовать перевести и додумать самому! Лично я бы предпочёл иметь конечный вариант этого руководства именно в таком виде! Понравилась цветовая схема маркировки (светло розовая и светло бирюзоваая), она легко читаема и приятна глазу - это совсем не напрягает!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:27 08-08-2014 | Исправлено: AVanti473, 21:29 08-08-2014
delphif

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
что может быть ошибкой,когда почти собрал портативную версию у меня активно только dat файл,не могу переключить на exe, не активен, кто встречался с таким делом

Всего записей: 1 | Зарегистр. 16-08-2014 | Отправлено: 21:08 16-08-2014
SunOK_ZM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delphif, я не видел такого, но если оно позволяет продолжить - потом вручную править package.ini (подробности в мануалах) не составит труда. Главное уже при компиляции чтобы не чихалось...

Всего записей: 255 | Зарегистр. 19-02-2012 | Отправлено: 01:38 17-08-2014 | Исправлено: SunOK_ZM, 01:38 17-08-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
которую буду править после перевода руководства пользователя

 
Прочёл до 11 главы - очень интересно! Не могу сказать за точность перевода, но у меня практически ничего не вызвало вопросов из того материала, что я уже сам знаю, следовательно, возможно перевод верен!
 
Хотя и для себя я открыл кое что достаточно новое, на что ранее внимания не обращал. Вот тут возникли вопросы, но не по переводу, а по сути материала:
 

Цитата:
Параметр ExcludePattern исключает файлы или папки в процессе сборки приложения........Вы можете исключить любой путь, который заканчивается расширением .bak или .msi.

 
А, зачем? Тоесть, нам, привыкшим вручную перелопачивать весь проект и вычищать его это кажется слегка странным... Хотя, это возможно избавляет от некоторой головной боли чистки различных .bak .log .msi и им подобных, дабы знатоки не кричали о том, сколько "мусора" нырнуло в сборку... ))) Надеюсь я верно понял эту функцию (вернее параметр)!?
 
Да, заметил парочку грамматически ошибок типа "слово начинается не с той буквы (пример: чтобы локальные приложения могли с ними ызаимодействовать), или неверное окончание, но это ерунда. Их крайне мало и смысл и так всем понятен!
 
С удовольствием продолжу читать и изучать далее!!!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:31 17-08-2014
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473 тема с обсуждением перевода находится здесь http://forum.ru-board.com/topic.cgi?forum=2&topic=5252
Если снова потеряете в шапке есть ссылка.

----------
Раздачи и акции

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 16:20 18-08-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
AVanti473 тема с обсуждением перевода находится здесь

 
Я дико извиняюсь, а тема Параметр ExcludePattern тоже в теме перевода обсуждается? Мне так показалось, что это уже относится к обсуждению работы ThinApp... Всё остальное, добавлено в контексте

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:25 18-08-2014
antan222

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
помнишь я у себя переводил статью Peter Bjork на эту тему?
http://datbaze.ru/soft/optimizatsiya-razmera-paketa-bez-udaleniya-iz-proekta-kontenta.html

Всего записей: 72 | Зарегистр. 29-04-2008 | Отправлено: 21:07 19-08-2014 | Исправлено: antan222, 21:08 19-08-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
помнишь я у себя переводил статью Peter Bjork на эту тему?

antan222
Сейчас почитал, благодарю! Я это и предположил выше. Приятно, что не ошибся! Ещё раз спасибо за полезную инфу!!!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:32 19-08-2014
antan222

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
наверно все таки не то что замена удалению, а типа не уверен исключи, если ошибся потом просто вычеркни из списка ExcludePattern.

Всего записей: 72 | Зарегистр. 29-04-2008 | Отправлено: 09:49 20-08-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

 
Да, я это и имел в виду, только возможно иначе выразился. Я бы сравнил этот параметр с работой в Spoon, когда файлы в программе удаляются из состава сборки, но остаются в проекте.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 10:14 20-08-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос: Нужно убить процесс 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

НО, он не помогает!
- Для исследования ситуации была взята программа Sysinternals Process Explorer, которая, собственно, по поиску .rw так же выводит на Workspace Macro Pro X.X.exe
- Программа Unlocker, при работе портабельного приложения, выдаёт PID(ы) блокированных процессов 4468, 4384, 5804 которые так же выводят на Workspace Macro Pro X.X.exe А при закрытии портабельного приложения остаётся висеть процесс Workspace Macro Pro X.X.exe с PID-5804
 
Как эту хрень выгрузить при помощи скрипта?

 
Примечание: Нужную мне портабельную сборку делаю на VMware ThinApp v4.7.3-891762 (7101)

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 15:35 30-08-2014 | Исправлено: AVanti473, 15:45 30-08-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

Посмотреть

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 16:32 31-08-2014 | Исправлено: dinis124, 16:39 31-08-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вопрос: Нужно убить процесс 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

 
Собсно ))) Эта конструкция и завершает программу, выгружая висящий процесс.
 
Добавлено:
dinis124
 
Искренне благодарю, но похоже ситуация разрешилась. Остались мелкие тесты, и если не будет сюрпрайзов с другими висящими процессами, то вопрос можно будет считать закрытым! Но ваши варианты безусловно интересны, возьму в коллекцию!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 19:08 31-08-2014 | Исправлено: AVanti473, 19:12 31-08-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Вам нравится экспериментировать с виртуальными приложениями. Предлагаю попробовать решить одну маленькую проблемку:
Те, которые говорят, что виртуальные приложения можно запускать на чужих компах и не оставлять следов, слегка лукавят или не знают, что после запуска абсолютно любого исполняемого файла создаётся маленький файл в системной папке и запись в системном реестре. Они предназначены для ускорения повторного запуска. Нужно придумать скрипт, удаляющий эти элементы при закрытии виртуального ThinApp-приложения. Тогда работа приложения на самом деле не оставит несанкционированных следов.

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 20:57 04-09-2014
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavlaf 20:57 04-09-2014
Цитата:
Те, которые говорят, что виртуальные приложения можно запускать на чужих компах и не оставлять следов, слегка лукавят или не знают, что после запуска абсолютно любого исполняемого файла создаётся маленький файл в системной папке и запись в системном реестре. Они предназначены для ускорения повторного запуска. Нужно придумать скрипт, удаляющий эти элементы при закрытии виртуального ThinApp-приложения. Тогда работа приложения на самом деле не оставит несанкционированных следов.

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

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


----------
Раздачи и акции

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 00:00 05-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

Вы про 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

 
Удаление ключей из реестра по завершению программы, из файла uninstall.reg

Код:
Origin = GetEnvironmentVariable("TS_ORIGIN")
RegFilesPath = Left(Origin, InStrRev(Origin, "\") - 1)
UninstallReg = RegFilesPath + "\Script\uninstall.reg"
Function OnFirstParentExit
id = ExecuteExternalProcess("regedit /s " & chr(34) & UninstallReg & chr(34))
WaitForProcess id, 0
End Function

 
Ессесно содержимое uninstall.reg что-то вроде:

Код:
Windows Registry Editor Version 5.00
 
[-HKEY_LOCAL_MACHINE\SOFTWARE\раздел]

 
А сам uninstall.reg должен находится в папке Script, рядом с исполнительным файлом готовой портабельной сборки. Или можете прописать другой путь в скрипте...
 
Как-то вот такие вот решения были найдены в предыдущих беседах с помощью других участников форума. Возможно, они Вам помогут...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 00:13 05-09-2014 | Исправлено: AVanti473, 00:20 05-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто подскажет?:
 
Программа, при установке и регистрации, создаёт такой вот хитрый ключик:

Код:
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"

 
ThinApp, при создании сборки, понимать его не желает, и сбрасывает сборку в failed.
Казалось бы, можно внедрить этот ключ в систему скриптом, но при простой попытке импорта этого ключа, следующие значения:
"R1"="B4F7879D849025AE9598938583480773176E5F04090B531A0F6C"
"R2"="53375447354D5A4C4B383B4D244B2542452826442449453D5134"

НЕ ИМПОРТИРУЮТСЯ!
Именно эти два последних значения не импортируются, и как следствие, программа стартует незарегистрированной.
 
Почему это происходит, и как это всё обойти?
 
P.S. Первый раз сталкиваюсь с таким выкрутасом программы. Ладно бы если все значения ключа не импортировались и тогда можно было бы грешить на его хитрое название, но когда часть значений импортируется, а часть нивкакую...... такого ещё не видел...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:26 10-09-2014 | Исправлено: AVanti473, 23:27 10-09-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

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

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

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

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

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:41 11-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

 
Это не зависит от версий ThinApp, так как такой ключ при установки программы попадает в физический реестр. А программа ))) вот тут:
http://forum.ru-board.com/topic.cgi?forum=55&topic=11525&start=3840#13
там же ниже рег.данные.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 15:12 11-09-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, сборка, если ее зарегистрировать после запуска, с таким "некошерным" реестром работает без проблем. А если конвертнуть рабочий tvr в txt и закинуть его в проект, то уже выкидывает ошибку.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 17:10 11-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

 
Вот собственно что за ключик хитровымученный такой? Хотелось бы конечно разобраться, да только моей компетенции здесь явно маловато... Поскольку ключик находится в CLSID, он, по идее, должен иметь такой формат {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}. Мне больше интересно, если даже расшифровать юникод в этот формат, то, примет программа такой ключ, или только в виде юникода? Если только в виде юникода, то программу надо ломать, а это уже не просто снифер для ключей регистрации, а работа с кодом программы. Нужны знатоки...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 20:04 11-09-2014 | Исправлено: AVanti473, 20:05 11-09-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Русский перевод мануалов 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

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 12:46 12-09-2014 | Исправлено: pavlaf, 03:08 13-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavlaf
 
Супер!    
 
Теперь надо всё внимательно изучить и закинуть в шапку!
 
Я же говорил, что всё получится!!!    

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 13:28 12-09-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет парни. нет случайно в загашничке  плагина для VMware ThinApp flash player active x 10, для опытов.  

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 13:28 15-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent, по вышеизложенной проблеме с ключом реестра. Вы писали:
 

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

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

Код:
Function OnFirstSandboxOwner
Origin = GetEnvironmentVariable("TS_ORIGIN")
Set WSHShell = CreateObject("Wscript.Shell")
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\Software\Classes\CLSID\Ey4w    h-
`{{,"
End Function

 
Но как прописать в этот скрипт добавляемые значения? В мануале дан пример только с выносной dll-кой, и там в ключе видимо только одно значение в виде пути к файлу. А если нужно вписать шесть значений? Через запятую? В кавычках? Или как правильно?
 
Добавлено:
--------------

 
Впрочем, уже ответил сам себе практикой...
 

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

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:07 15-09-2014 | Исправлено: AVanti473, 21:19 15-09-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent,
 

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

 
Вот и не проще удалить данные из реестра после закрытия портативки? По моему проще. Зажали Flash плагин мне Пошел сам делать.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 21:33 15-09-2014 | Исправлено: dinis124, 21:35 15-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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 -не запрашивать подтверждение у пользователя

 
И то неясно, как это всё будет работать... Загвоздка в юникоде (названии ключа). Вполне возможно, что из виртуального контейнера с ним вообще ничего сделать будет нельзя... Тогда останется физическая среда.
Ещё хочу попробовать один финт, но пока не выбрал нужную программу... Что-то типа автоустановки, на подобии самой Easy AutoInstaller, чтобы при старте сама ввела все данные в нужные поля окна регистрации. Но там и окно тоже мудрёное, непонятно получится, или нет...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:31 15-09-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

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

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

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

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

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 11:14 16-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

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

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

 
Ок! Спасибо! Сегодня вечерком туда наведаюсь...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 13:12 16-09-2014
kaesda

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

Всего записей: 68 | Зарегистр. 20-03-2014 | Отправлено: 08:11 17-09-2014 | Исправлено: kaesda, 08:31 17-09-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Жжете. Да в чем угодно. Например в самой идее создания.
 
ChildProcessEnvironmentDefault=External  
 
Возможно так.  
 
Но я бы на вашем месте забыл эту идею. Разве что совет дать, взять не половину коллекции если так уж хочется, а пару софтин, смотреть и пробовать, что как и куда. А проверять работоспособность на виртуальной машине, там где вы собирали портативную программу нет смысла. В вашем случае проще виртулаьную машину на флешку кинуть чтобы носить с собой коллекцию. Я примерно о том же о чем и у вас.
 
В сети куча к примеру Adobe Photoshop Portable, большая часть из них Г. А это всего одна программа.  
Я для себя делал Adobe Photoshop CS6 шлифуя его с пол месяца только, я уже не пишу о плагинах с которыми намучался...

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 08:59 17-09-2014 | Исправлено: dinis124, 09:17 17-09-2014
kaesda

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ага, я примерно так же и поступил. Решил сделать две сборки: одна с двумя программами для видео, другая - с двумя программами для фото. Посмотрим что получится. Уж больно не удобно таскать с собой виртуальную машину и работать в ней.

Всего записей: 68 | Зарегистр. 20-03-2014 | Отправлено: 09:05 17-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

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

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:17 17-09-2014 | Исправлено: AVanti473, 21:18 17-09-2014
kaesda

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, все так. Печально как-то.
Видимо оптимальным вариантом в данном случае остается таскать с собой виртуальную машину, максимально ее облегчив...

Всего записей: 68 | Зарегистр. 20-03-2014 | Отправлено: 07:08 18-09-2014 | Исправлено: kaesda, 07:56 18-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

 
Не совсем... Тут тоже спрятан подводный камень: Увы, при редактировании тяжёлого видео, доступа ко всем возможностям видеокарты не получить, а оперативной памяти, отданной виртуалке, как правило не хватит даже для сносного рендеринга (если конечно у Вас в компе не 8Гб оперативы и 4 Вы отдали виртуалке)... Так же, нельзя подключить виртуалку для снятия входного сигнала через PCI карты захвата. При работе с тяжёлой трёхмерной графикой будут проблемы с подключением дров 3D на виртуалку, тем более если она портабельная. И вообще, будет напряг подключения любых внешних устройств типа RAW камер. Так что не всё так просто...
 
Есть один нескладный выход, но он не лежит в области портабелизации... Сам я не пробовал, но подумывал о нём, как о возможном. Имеется в виду загрузка с внешнего или виртуального диска, на котором будет ваша система со всеми прогами, но с одной разницей. Есть какая-то мелкософтовская технология, предотвращения записи данных. эту методу применяют для загрузочных флешек типа 2k10. Суть в том, что готовая система на флешке защищена от изменений, а все изменения пишутся или в оперативную память, или в определённое место на диске, но, после перезагрузки слетают. Такой способ помогает быстро установить все необходимые дрова из любого (можно встроенного) драйверпака и работать на компе уже с дровами и на своей системе, не трогая установленную. Определение и установка дров из драйверпака обычно занимает от 1,5 до 5 минут, в зависимости от сложности конфигурации железа и его возможностей. Зато, будет прямой доступ ко всем физическим средствам компа. Этот вопрос конечно требует изучения. Если пойдёте по этому пути, пожалуйста, дайте знать потом в личку, что у вас получиться так-как результат мне тоже интересен!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 11:28 18-09-2014
VitRom

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

Всего записей: 3098 | Зарегистр. 18-06-2006 | Отправлено: 12:41 18-09-2014
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

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

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

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

Всего записей: 11126 | Зарегистр. 12-10-2001 | Отправлено: 14:54 18-09-2014 | Исправлено: KLASS, 15:14 18-09-2014
VitRom

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
на разном железе начнется процесс установки драйверов с последующей перезагрузкой
может быть это можно обойти, если использовать трюки типа MergeIDE.bat (который "сливал" кучу разных контроллеров в "стандартный ИДЕ")

Всего записей: 3098 | Зарегистр. 18-06-2006 | Отправлено: 16:59 18-09-2014
kaesda

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как много новых для меня технологий! Придется все изучать. Ведь можно же как-то побороть эту проблему?!

Всего записей: 68 | Зарегистр. 20-03-2014 | Отправлено: 17:32 18-09-2014
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ведь можно же как-то побороть эту проблему?

Юзайте VHD-динамический+VHD-дифференциальный. Все изменения будут сохраняться в дифференциальном, а основной VHD изменяться не будет. Или я не понял о какой вы проблеме?

Всего записей: 11126 | Зарегистр. 12-10-2001 | Отправлено: 18:09 18-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Юзайте VHD-динамический

 
Мне год назад на одном форуме дали ещё такой полезный совет:
 

Цитата:
насчёт VHD наберите в Гугле Stea VHD, там хватает ресурсов, где они выложены и всё подробно растолковано

 
по поводу:
 

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

 
Вообще-то я имел в виду: EWF
 
А в целом, много информации здесь: Windows на USB HDD

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:44 18-09-2014
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Цитата:
Вообще-то я имел в виду: EWF  

"Вообще-то" UWF включает в себя EWF, FBWF, и Registry Filter, а также плюшку "servicing" для автоматизации и применения обновлений...

Всего записей: 11126 | Зарегистр. 12-10-2001 | Отправлено: 23:13 18-09-2014
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я конечно сильно извиняюсь, что прерываю вашу беседу, но название темы прочтите.

----------
Раздачи и акции

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 10:28 19-09-2014
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пытаюсь собрать сборку одной программы, там есть кнопка для перезапуска программы от имени админа. Для запуска с повышенными привилегиями используется метод перезапуска приложения посредством ShellExecuteEx с глаголом runas. Для получения имени исполняемого файла используется функция GetModuleFileName, которая должна возвращать настоящее имя файла. В непортативной версии она возвращает корректное имя - и это имя передается в ShellExecuteEx. В портативке она возвращает путь к файлу, где он лежит виртуальной среде (то есть тот путь, где он лежал будь программа штатно инсталлированная). А так как для физической среды этот путь является несуществующим поэтому ShellExecuteEx не отрабатывает. Это можно как-нибудь исправить настройками проекта?  

----------
Раздачи и акции

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 15:06 19-09-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123
Глава 9 справочника по параметрам Package.ini. Может, это поможет.

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 20:49 19-09-2014 | Исправлено: pavlaf, 21:22 19-09-2014
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavlaf если вы о принудительном запросе на повышение прав при запуске сборки (параметр UACRequestedPrivilegesUIAccess ), то это не то. Программа отлично в общем-то работает и без прав админа, но в ней есть кнопка для перезапуска от имени админа. Вот хочется заставить работать и эту кнопку и заодно и для себя лучше разобраться в ThinApp.
А если вы имели что-то другое, то пожалуйста, поясните что именно.

----------
Раздачи и акции

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 00:11 20-09-2014
Lovec



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, плиз, как решить.
 
Ставлю ПО, которое вносит изменения в файл "hosts" Windows.
Как сделать правильно так, чтобы при запуске портированной программы этот файл брался из нее (исправленный), а нет тот что находится на реальной системе?
В файле "hosts" прописывается блокировка определенных сайтов, куда портированной программе лезть нельзя.
 
Спасибо.

Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 23:06 21-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как сделать правильно так, чтобы при запуске портированной программы этот файл брался из нее (исправленный), а нет тот что находится на реальной системе?

 
1) Есть проверенный вариант полного отключения портабельной программы от инета. (но он не подходит для блокировки отдельных сайтов).

Цитата:
В фаил HKEY_LOCAL_MACHINE.txt внести запись:
isolation_full HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip

Автор решения Meoow (May 1, 2010)
2) В виртуальном реестре сообщить портабельной сборке искать фаил "hosts" в другом месте (в другой папке), где будет лежать исправленный. (но этого я не тестировал, знаю лишь по советам).

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:15 21-09-2014 | Исправлено: AVanti473, 23:17 21-09-2014
Lovec



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Полное отключение устроит. Щас проверю. Спасибо.

Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 23:32 21-09-2014
fram



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lovec
Этот уже давно проверенный способ

Всего записей: 3476 | Зарегистр. 15-01-2003 | Отправлено: 00:57 22-09-2014
Lovec



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С выходом в Инет вроде все норм. Не лезет.
Теперь борюсь с подзависшими процессами после закрытия портативной программы. Точнее с одним.
 
Создал файл vbs, в нем код:

Код:
Function OnFirstParentExit
ExecuteExternalProcess("cmd.exe /c taskkill /F /IM " & chr(34) & "Adobe Dreamweaver CC.exe" & chr(34) & " /T")
End Function

 
Он запускается как надо после закрытия портированной программы, но не убивает процесс "Adobe Dreamweaver CC.exe".
Что здесь не так?
 
Добавлено:
Просто запущенный почти такой же код (где вместо CHR(34) кавычки) из командной строки - убивает процесс.
При закрытии программы мелькает досовское окошко с надписью, но быстро исчезает, а как добавить в этот код паузу - не придумал...

Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 01:38 22-09-2014 | Исправлено: Lovec, 01:42 22-09-2014
fram



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lovec
 
http://forum.ru-board.com/topic.cgi?forum=5&topic=31117&start=3440#14

Цитата:
из чего понятно, что выставляя full на пустую ветку с tcpip, любой процесс виртуализированного приложения окажется один на один с не сконфигурированным tcpip, т.е. без сети

Всего записей: 3476 | Зарегистр. 15-01-2003 | Отправлено: 01:47 22-09-2014
Lovec



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fram
Я понял, понял что так портативка сети не получит. Спасибо, еще раз
 
По убиению процесса, что описал выше, никто не подскажет? Что он у меня не убивается? ...

Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 20:29 22-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
По убиению процесса, что описал выше, никто не подскажет?

 
Чтобы видеть в диспетчере задач реальные процессы, а не процесс точки входа нужно добавить в package.ini в раздел [BuildOptions] следующую запись:
ProcessExternalNameBehavior=Original
 
Чтобы определить зависший процесс, понадобиться программа Sysinternals Process Explorer в поиске которой "Find -> Find Handle or DLL (Ctrl+F)" нужно ввести:
.rw
Таким образом, будут найдены все процессы, блокирующие программу.
 
И, в заключении, скрипты для убийства процесса:
 

Код:
Function OnFirstParentExit
    Dim objWMIService, objProcess, colProcess
    Dim strComputer, strProcessKill
    strComputer = "."
    strProcessKill = "’ieuser.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

 
Вместо ieuser.exe подставьте имя файла процесса, который необхоимо завершить.
 

Код:
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 = 'Notepad.exe'")
For Each objProcess in colProcessList
    objProcess.Terminate()
Next
End Function

 
Вместо Notepad.exe подставьте имя файла процесса, который необхоимо завершить.
 
P.S. Обратите внимание на ProcessExternalNameBehavior=Original, так как процесс екзешника готовой сборки действительно может быть весьма трудно убиваем, а вот когда видны реальные процессы портабельной программы, задача упрощается.
Скрипты не мои - найдены в своё время на просторах инета...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:50 22-09-2014 | Исправлено: AVanti473, 21:51 22-09-2014
Lovec



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Спасибо за исчерпывающий ответ. Не все понял, но возьму на заметку.
 
Сегодня моя программа уже как-то по другому ведет себя.
Вчера реагировала на оба события - и на OnLastProcessExit и на OnFirstParentExit.
Т.е. в скрипте у меня была всего одна строчка на тест:
msgbox "!!!"
Когда вставлял ее в Function OnFirstParentExit - скрипт срабатывал кучу раз, начиная от запуска, заканчивая выходом из программы.
Когда вставлял ее в Function OnLastProcessExit - срабатывал один раз, при выходе.
 
Сегодня на OnLastProcessExit вообще не реагирует, на OnFirstParentExit срабатывает один раз при выходе.
Что за бред??
 
Ладно. Пробую использовать для убийства процесса пример на  WMI что вы дали выше и запихиваю такой код в OnFirstParentExit:

Код:
Function OnFirstParentExit
strComputer = "."
msgbox "1"
strProcessKill = "'Adobe Dreamweaver CC.exe'"
msgbox "2"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
msgbox "3"
Set colProcess = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = " & strProcessKill )
msgbox "4"
For Each objProcess in colProcess
    objProcess.Terminate()
    msgbox "!!!"
Next
msgbox "готово"
End Function

Здесь как видно каждый шаг скрипта контролируется появлением соответствующего сообщения.
Так вот. Первые 4 мессаджа появляются и на этом все!
Т.е. не то чтобы процессов "'Adobe Dreamweaver CC.exe'" вообще не найдено - тогда хотя бы появился последний мессадж, что то затыкается на цикле и выходит из него безо всяких сообщений об ошибках или успехе.
 
Вообще. Эта возможность сабжа запускать скрипт на VBS который лежит у него в папке сборки - там VBS обычный? не какой не урезанный? Ибо вчера была похожая ситуация - просто скрипт на VBS отлично работает, внутри сборки - выплевывает ошибку.
 
Добавлено:
В общем я четко знаю какой процесс мне надо убить, знаю как это сделать на VBS, но скрестить VBS и ThinApp - никак...

Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 23:29 22-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В общем я четко знаю какой процесс мне надо убить, знаю как это сделать на VBS, но скрестить VBS и ThinApp - никак...

 
Бегло прочитал, тороплюсь, тоже не всё понял. Давайте ещё раз попробуем так:
Ставьте в package.ini в раздел [BuildOptions] следующую запись:  
ProcessExternalNameBehavior=Original
Временно, поместите в сборку такой скрипт:

Код:
Function OnFirstSandboxOwner
 
   strMessage = "OnFirstSandboxOwner: " & GetCurrentProcessName
   MsgBox(strMessage)
 
End Function
 
Function OnFirstParentStart
 
   strMessage = "OnFirstParentStart: " & GetCurrentProcessName
   MsgBox(strMessage)
 
End Function
 
Function OnFirstParentExit
 
   strMessage = "OnFirstParentExit: " & GetCurrentProcessName
   MsgBox(strMessage)
 
End Function
 
Function OnLastProcessExit
 
   strMessage = "OnLastProcessExit: " & GetCurrentProcessName
   MsgBox(strMessage)
 
End Function
 
strMessage = "OnEveryProcess: " & GetCurrentProcessName
MsgBox(strMessage)

 
Посмотрите на результаты (какие процессы будут запускаться). После, попробуйте убить эти процессы скриптами, что я приводил выше.
 
Если ничего не поможет, то вот ещё советы одного пользователя этой ветки: http://forum.ru-board.com/topic.cgi?forum=5&topic=31117&start=3702&limit=1&m=1#1

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 11:00 23-09-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 13:02 23-09-2014 | Исправлено: coherent, 12:11 24-09-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 19:23 23-09-2014 | Исправлено: coherent, 12:11 24-09-2014
Lovec



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 

Цитата:
У Вас в скрипте ошибка. Похоже должно быть так:  

Вы не правы. Тут формируется и передается строка, а вы внутрь строки запихали переменную - т.е. она не будет использоваться как переменная, а просто пойдет как часть строки " = strProcessKill".
Кроме того скрипт проверен не раз простым запуском - он работает и выполняет свою функцию - убивает указанный процесс.
 

Цитата:
Путь к Adobe Dreamweaver CC.exe должен быть полным.

Снова ваша неправда. Стоит посмотреть справку по этой команде. Так четко написано "имя образа процесса". И примеры есть.
 
 
 
Добавлено:
AVanti473
Сделал как вы написали. Добавил строчку "ProcessExternalNameBehavior=Original".
Какие процессы блокирует папку с портативной программой я контролирую прогой Unlocker.
До внесения изменений после закрытия программы она показывает следующие открытые процессы:

После добавления вашей строки уже другие процессы:

 
Что это означает? Что теперь используются другие процессы или что используются те же процессы, но отображаются другие?..
Ну и собственное какие мне убивать - какие в первом окне или какие во втором?
А если список этих процессов изменится? Нельзя ли как-то скопом убить все процессы, которые порадила программа?

Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 10:37 24-09-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lovec
Это не мои посты!!!
У нас тут есть умелец, которого никак не вычислим и который развлекается, заходя под чьим-то логином на форумы. И это не первый раз. Люди из-за этого имели уже большие проблемы.
 
По сути. Естественно, как с taskkill, так и с WMI - это стандартные рабочие скрипты. И в теме они уже не раз выкладывались Лично я чаще использую taskkill, т.к. консольное окно для меня не проблема. И пока ни разу не сталкивался, чтобы процес не удавалось убить, что одним, что вторым способом.
 
Таки повезло, что "мои" посты были без ругательств и оскорблений!

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 12:05 24-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lovec
 
В первом, представленном Вами скриншоте (без строки "ProcessExternalNameBehavior=Original") все процессы программы маскируются под процессы портабельного контейнера.
После добавления строчки, мы видим оригинальные процессы программы так, как будто она не находится в портабельном контейнере, а работает как установленная на компе. Разумеется мы видим и процесс екзешника портабельной сборки, наверняка он чуть выше места, заснятого во втором скрине, но он нам уже не нужен. Я не супер специалист в этом деле, но предположил бы, что нужно вписать в скрипты убиваемых процессов:
adobe_licutil.exe
CEPServiceManaqer. exe
LogTransport2.exe
Если конечно именно они остаются висеть, после завершения портабельной программы. Смущает:
svchost.exe
Но, может быть, при закрытии вышеперечисленных процессов, он сам отомрёт?...
 
Таким образом, я бы попробовал бы такую нелепую конструкцию:
 
Конечно же оставляем строку ProcessExternalNameBehavior=Original и вставляем в сборку фаил скрипта, например такой:
 

Код:
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 = 'adobe_licutil.exe'")
For Each objProcess in colProcessList
    objProcess.Terminate()
Next
End Function
 
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 = 'CEPServiceManaqer. exe'")
For Each objProcess in colProcessList
    objProcess.Terminate()
Next
End Function
 
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 = 'LogTransport2.exe'")
For Each objProcess in colProcessList
    objProcess.Terminate()
Next
End Function

 
Названия процессов снимал ABBYY Screenshot Readeroм, так что убедитесь в правильности их записи. Объявление Dim наверняка можно вынести одной строкой, чтобы не дублировать трижды, да и сам скрипт можно записать компактнее со знанием дела, но это уже не ко мне, так как я не зря уже упоминал, что скрипты я просто находил от случая к случаю. Сам же vbs скриптами не занимаюсь, и так же иногда прошу помощи форумчан по вопросам скриптов

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 18:34 24-09-2014
Lovec



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Только что попробовал 5-ю версию программы. Впечатления только негативные. На одной и той же программе работала на порядок дольше чем 4.7 и образ создала на 300 МБ больше чем 4.7. (у 4.7 образ получился около 700 метров, у 5-й версии около 1ГБ - это все с включенной компрессией)
 
Мне интересно ваше мнение по 5-й версии.
 
AVanti473
Я понял насчет процессов отображаемых с помощью строки "ProcessExternalNameBehavior=Original".
Какие мы видим названия процессов - не важно. Скрытые или настоящие... Один фиг и те и другие зависают после закрытия программы. А поскольку без использования строки "ProcessExternalNameBehavior=Original" я вижу блокирующих процессов меньше (пусть и на самом деле внутри одного процесса прячутся многие), то и убивать их легче.
Поэтому раз разницы нет - "зачем платить больше".
Для себя решил - не использовать эту строку. Но за знания спасибо)
 
Скрипт написать для меня не проблема (в том числе объединить предложенные вами в один).
Моя то проблема в том что процессы в принципе не убиваются скриптом. Ни с использованием WMI, ни с использованием taskkill.
Щас буду читать справку по программе и продолжу эксперименты. Должно же оно как то убиваться! Наверняка какая то простая херня во всем виновата. Найдем...

Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 21:37 24-09-2014
Lovec



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Собираю портативное приложение и внутри него есть VBS, который содержит такой код:

Код:
Function OnFirstParentExit
 
Dim WshShell
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "taskkill /F /IM " & chr(34) & "Adobe Dreamweaver CC.exe" & chr(34) & " /T"
msgbox "готово"
 
End Function

 
Функция срабатывает при закрытии приложения, но выплевывает ошибку

На реальном хосте данный VBS отрабатывает без проблем.
Что тут может быть? Не весь код VBS может выполниться внутри контейнера?
 
Добавлено:
При попытке запуска внешнего VBS скрипта

Код:
Function OnFirstParentExit
 
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("111.vbs")
 
End Function

тоже ошибка:

Хотя код простейший и никакой ошибки в нем нет.
Походу объект WshShell нельзя использовать внутри скрипта внутри контейнера.

Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 12:22 25-09-2014 | Исправлено: Lovec, 12:22 25-09-2014
Lovec



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не нашел я решения как побороть всю эту ситуацию с процессами и приделал к приложению костыль.
Написал внешний скрипт, который запускаем приложение, дожидается его закрытия и убивает все его зависшие процессы.
Пока так.

Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 17:33 25-09-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lovec

Цитата:
При попытке запуска внешнего VBS скрипта...тоже ошибка:

Запускайте vbs-файл не напрямую, а через WScript.exe.
Хотя должно работать и напрямую. Но путь к vbs-файлу должен быть полным.
Такой скрипт:
 
Function OnLastProcessExit
  Dim WshShell  
  set WshShell = CreateObject("WScript.Shell")
  WshShell.run "taskkill /F /IM MyProcess.exe /T"  
  WshShell.run "D:\...\Proba.vbs"  
End Function
 
отрабатывает нормально (т.е. и taskkill прибьет MyProcess.exe и запустится внешний Proba.vbs), но при условии, что задано
ChildProcessEnvironmentDefault=External
 
Не знаю почему, но конструкция
set WshShell = WScript.CreateObject("WScript.Shell")
под ThinApp не прокатывает.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 21:16 25-09-2014 | Исправлено: coherent, 00:13 26-09-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Удалось ли решить проблему с "хитрым" ключем в реестре?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 10:52 26-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Удалось ли решить проблему с "хитрым" ключем в реестре?

 
Нет, не удалось. Моей компетенции здесь маловато. Я узнал одно решение от гуру здешнего форума, и оно реально работает, НО, чтобы мне самому его воспроизвести, нужны определённые навыки и знания. С другой стороны, я сам бы хотел сделать что-то попроще, но идея временно зависла в воздухе.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 19:29 26-09-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Вопрос к знатокам и не только.
Есть такая программа, как Duplicate Cleaner, которая может работать как в Win x86 так и Win x64. Но, если собрать эту прогу через ThinApp (5.0.1, 5.1.0),  то эта самая прога запускается только в версии x86 и ни в какую не хочет запускаться в x64. Устанавливал и запускал ThinApp на Win x86\x64, безрезультатно.
Пробовал параметры Package.ini по умолчанию и с изменением:
[BuildOptions]
LargeAddressAware=1
Wow64=0
 
В чем может быть причина?
 
P.S. Если собрать сборку в Spoon или даже в Cameyo то все работает.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 21:01 26-09-2014
Lovec



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
На 4-й версии не пробовали собирать? Мне 5-я показалась сильно глючной и вернулся к 4-й.

Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 21:25 26-09-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А четвертая версия разве поддерживает x64?  

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 21:32 26-09-2014 | Исправлено: 007Alex007, 21:45 26-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А четвертая версия разве поддерживает x64?  

 
Нет, не поддерживает виртуализацию х64 битных приложений. С другой стороны, что касается х86, возможно версия 4.7.3 самая безглючная. Если нет необходимости виртуализовывать приложения х64, то работаю исключительно на ней. Даже последнюю свою поделку на версии 4.7.3 делал.
 
007Alex007 вы указали виндовс, но не указали какая версия винды? Так же непонятно, программа работает в 64 битной системе, но является ли исключительно х64 битным приложением? Если программа инсталлируется в виндовс х86, то Вы вполне можете использовать ThinApp v4.7.3 для её виртуализации.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 01:34 27-09-2014 | Исправлено: AVanti473, 01:40 27-09-2014
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
Какой смысл собирать x86-битную версию Duplicate Cleaner в ThinApp 5. . . ?  
Какие плюсы, по вашему, могут быть, по сравнению со сборкой в ThinApp 4.7.3 ?
 
добавлено:
Ради интереса собрал Duplicate CleanerPro 3.2.5 в ThinApp 5.1.0, запускается и работает от Win ХР до 8.1 x86\x64 (при установленном .NET Framework 2+).

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 12:10 27-09-2014 | Исправлено: bumburbia, 13:42 27-09-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробую более подробно объяснить.  
Duplicate Cleaner - это если так можно выразиться микс программа (т.е. x86 и x64 в одном флаконе), она сама определяет разрядность Win и в зависимости от этого может запускаться как x86 или как x64.
Duplicate Cleaner я инсталлировал на Win7 x64, и программа запускалась как x64 битная версия.  
Если произвести сборку программы в ThinApp 5, в Win7 x64, то после запуска сборки открывается Duplicate Cleaner x86, а не x64.  
Если произвести сборку программы в Win7 x64 при помощи Spoon или Cameyo, то программа работает, как и положено и сама определяет разрядность системы (в Win7 x64 - запускается Duplicate Cleaner x64, а на WinXP x86 - Duplicate Cleaner x86).  
 
Отсюда и вопрос как заставить ThinApp 5 запускать программу как положено?  
Почему Spoon справляется с этой задачей, а ThinApp 5 нет?
Или ThinApp 5 еще сырой для создания программ x64 разрядности?

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 13:54 27-09-2014 | Исправлено: 007Alex007, 13:55 27-09-2014
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
По большому счёту, 86-битная версия будет работать на на 64-битной системе так же, как и на 32-битной, а уж если дело принципа: "и сама определяет разрядность системы" и "как заставить ThinApp 5 запускать программу как положено?" - ,скорее всего, никак.  
Это зависит от установщика программы, к примеру, сборка Driver Magician только в двух (или трёх(?)) последних версиях при запуске стала правильно определять битность системы, а до этого - только х86, вне зависимости от того, где собрано, в Win x86 или x64. Но в случае с Driver Magician это очень существенно, чтобы предложить к скачиванию драйверы нужной разрядности, а с Duplicate Cleaner не даёт ровным счётом ничего.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 14:32 27-09-2014
SunOK_ZM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007, точно такой же єффект с программой Better Explorer - его запускаемый файл реально 64-разрядный, но в свойствах "О программе" пишет 32-бит. Почему - непонятно.
А у Duplicate Cleaner запускаемый файл 32-разрядный, да еще и нагло грузит 32-битную DLLку. Замена файлов не поможет. Параметры LargeAddressAware=1, ReserveExtraAddressSpace=1 бесполезны оказались. Видать недороботка тинаповцев, ждем-надеемся на устранение этого досадного недоразумения с подгрузкой DLLок (их недавно Автокад осенил на подвиг, ждем следующего "прометея").

Всего записей: 255 | Зарегистр. 19-02-2012 | Отправлено: 14:46 27-09-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia
Совершенно верно - дело принципа. Сама сборка работает и ни каких нареканий к ней нет, кроме x64.
 
"зависит от установщика программы" -  я же написал что другая программа, как например Spoon с этой задачей справляется.  
 
Просто хочется узнать, есть ли какой то способ заставить сборку, сделанyню в ThinApp 5, работать как положено. Может какие то дополнительные параметры надо добавить в Package.ini.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 14:55 27-09-2014 | Исправлено: 007Alex007, 14:57 27-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если произвести сборку программы в ThinApp 5, в Win7 x64, то после запуска сборки открывается Duplicate Cleaner x86, а не x64.  
 Если произвести сборку программы в Win7 x64 при помощи Spoon или Cameyo, то программа работает, как и положено


Цитата:
Просто хочется узнать, есть ли какой то способ заставить сборку, сделанyню в ThinApp 5, работать как положено.

 
Хм, теперь понял. А это интересно... Но всё равно, а как собирается проект??? Попробую пояснить:
Итак мы имеем:
- Вы собираете программу в ThinApp 5
- Система сборки Win (предположим 7) x64
- Программа х64 архитектуры и ставится в систему как х64-битное приложение.
- При сборке проекта и запуске готовой портабельной программы в 64-битной системе она сообщает что 32-битная.
Мои вопросы:
- А точно программа ставится как приложение х64 архитектуры? Тоесть в папку Program Files а не в папку Program Files (x86) ?
- Программные файлы проекта ложатся в папку %ProgramFilesDir(x64)% или в %ProgramFilesDir% ?
Почему спрашиваю:
- Сама ThinApp не влияет на процесс установки приложения. Если приложение в системе х64 изначально ставится в Program Files, ThinApp, по идее, запишет файлы в папку проекта %ProgramFilesDir(x64)% ... Встречал случаи, когда х64-битное приложение ставится и в Program Files (x86) и дописывает файлы в такую же папку в Program Files - но это уже к разрабам софта за разъяснениями... Хотя, вопрос на чём Вы собираете проект? Может на WinXP x64 ?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 16:44 27-09-2014 | Исправлено: AVanti473, 16:45 27-09-2014
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Архитектура  Duplicate Cleaner х86, при сборке на Win х64 программа устанавливается в Program Files (x86) и при запуске пишет х64, но портативная сборка тут же запустится с надписью х32. В этом то и проблема (в данном случае надуманная, на мой взгляд).

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 17:43 27-09-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

Цитата:
А точно программа ставится как приложение х64 архитектуры? Тоесть в папку Program Files а не в папку Program Files (x86) ?  

Нет программа устанавливается только в папку Program Files (x86).

Цитата:
Хотя, вопрос на чём Вы собираете проект? Может на WinXP x64 ?

Я писал об этом выше. Проект я собирал в Win 7 SP1 x64.
 
Почему то никто не замечает что я написал что, если проводить сборку в Spoon, то все ОК. И еще интересно, оказывается, если сборку создавать на Win XP x86 в программе Spoon, то в дальнейшем эта сборка в Win 7 x64 открывается как x64 битная.
 
Походу глюк в ThinApp 5.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 17:57 27-09-2014
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Походу глюк в ThinApp 5.  

Какой глюк ? С чем сравнивать ? Со Spoon ? - это из другой оперы.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 18:10 27-09-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как же заявления разработчиков ThinApp о полной поддержке x64 приложений, и вот такая вот ситуация. Значит не доработка и, следовательно, продукт пока что сыроват.
По поводу Spoon - я им практически не пользуюсь, только уж когда возникают вопросы к ThinApp.  А Cameyo вообще только вчера попробовал и сразу удалил.
Так что ThinApp остается лучшим решением для создания портабельных программ.
А так присоединяюсь к SunOK_ZM

Цитата:
ждем-надеемся на устранение этого досадного недоразумения

 
 
Всем спасибо. И отдельное спасибо тем, кто занимается переводом мануала по ThinApp.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 18:44 27-09-2014 | Исправлено: 007Alex007, 18:45 27-09-2014
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007

Цитата:
А как же заявления разработчиков ThinApp о полной поддержке x64 приложений

Но в данном то случае приложение всё же х86, устанавливается в папку Program Files (x86) на Win х64, а разработчики заявили о поддержке программ именно х64.  
 
Когда-то спрашивал, но нормального ответа так и не получил:  
Портативные сборки Duplicate File Remover , AnyReader не видят языковые файлы (папку Languages) и запускаются только с дефолтным английским, хотя в настройках можно выставит любой возможный (в том числе русский). Если папку Languages положить рядом с песочницей (запускаемым файлом), программа языки видит и переключает на выбранный.  
Примерно тоже самое происходит с BurnAware Pro, только здесь речь о папке со скинами, портативка запускается только с дефолтным скином и не видит остальные. Но если папку skins положить рядом ... всё O'key.
Что можно предпринять ?

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 19:14 27-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
Я не буду цитировать всё вышесказанное, но bumburbia прав! Если прога ставится в Program Files (x86), как ThinApp должна угадывать архитектуру программы, если саму программу она только складывает в контейнер, а не видоизменяет?! Никаких недоработок в ThinApp в этом смысле нет, все претензии к разрабам Duplicate Cleaner. Софт априори не может быть х64 архитектуры и устанавливаться по умолчанию в папку Program Files (x86). Что там в этом плане со Spoon и Cameyo? Да наверное ничего особенного! Просто эти программы не обращают внимание на критические ошибки объявления х32 приложений х64-ми. Кстати, что Вам мешает установить программу Duplicate Cleaner не по умолчанию в Program Files (x86), а принудительно в Program Files? Может тогда и решиться вопрос в ThinApp?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 20:03 27-09-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
Попробуйте установить программу не в папку по умолчанию, а просто на диск С:, например С:\Duplicate Cleaner Pro.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:07 28-09-2014
serafim18



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите или ткните в ветку, описана секция  Package.ini параметра RemoveSandboxOnExit  Не удаляется песочница, хотя все процессы приложения завершены. В справочнике всё описано достаточно просто, перечитал, установлено значение 1,но песочница не удаляется. Находится рядом с ланчером. Спасибо.

Всего записей: 424 | Зарегистр. 30-07-2006 | Отправлено: 22:18 28-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
описана секция  Package.ini параметра RemoveSandboxOnExit

 
Просто в Package.ini расскомментировать (удалить в начале точку с запятой) параметр:
;RemoveSandboxOnExit=1

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:36 28-09-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473, coherent  
По поводу папок – все это не то. Конечно, я попробовал, как и советовали, но ничего из этого не вышло. Я так предполагаю, что все дело в изоляции реестра ThinApp. Хотя я пробовал удалять ветки реестра в сборке, я даже попробовал удалить все файлы Attributes.ini во всех папках, но безрезультатно. По ходу ThinApp по умолчанию что-то изолирует от системы, и определить, что именно он изолирует, пока что не представляется возможным. Но если попробовать собрать сборки из похожих программ (например Total Commander x86/x64), то сборки работают правильно.
 
bumburbia  

Цитата:
Портативные сборки Duplicate File Remover , AnyReader не видят языковые файлы (папку Languages) и запускаются только с дефолтным английским

 
Попробуй в программе ThinApp, после второго сканирования и сравнения snapshot-ов, при выборе основного запускаемого exe, установить галочку напротив DuplicateFileRemover.exe, у которого путь:  
C:\Program Files\Essential Data Tools\Duplicate File Remover\Launcher.exe.  
Если надо, то потом можешь заменить Launcher.exe в Package.ini на DuplicateFileRemover.exe, после этого Launcher.exe можно удалить из папки.
 
[Duplicate File Remover.exe] (это в качестве примера, я ничего здесь не менял)
Source=%ProgramFilesDir%\Essential Data Tools\Duplicate File Remover\Launcher.exe
;Change ReadOnlyData to bin\Package.ro.tvr to build with old versions(4.6.0 or earlier) of tools
ReadOnlyData=Package.ro.tvr
WorkingDirectory=%ProgramFilesDir%\Essential Data Tools\Duplicate File Remover
Icon=%ProgramFilesDir%\Essential Data Tools\Duplicate File Remover\Application.ico
Comment=Easily find and remove duplicate files wasting hard disk space
 
serafim18
Сама папка песочницы не удаляется, она только очищается.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 22:41 28-09-2014
serafim18



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Просто в Package.ini расскомментировать (удалить в начале точку с запятой) параметр:
;RemoveSandboxOnExit=1

 Так и было сделано
 

Всего записей: 424 | Зарегистр. 30-07-2006 | Отправлено: 22:51 28-09-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть ли у кого-то скрипт для очистки папки prefetch? Можете поделиться им, пожалуйста?

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 22:55 28-09-2014
serafim18



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
serafim18
Сама папка песочницы не удаляется, она только очищается
007Alex007

Папка отчищается, Вы правы, но не удаляется

Всего записей: 424 | Зарегистр. 30-07-2006 | Отправлено: 22:56 28-09-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Так и было сделано

 
А папка просто остаётся, или остаётся с содержимым? Её ничего не блокирует? В ручную удаляется без проблем? Если всё так, то проверьте орфографию RemoveSandboxOnExit=1 в Package.ini. Думаю больше даже в мануале не написано, ведь всё просто...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:58 28-09-2014
serafim18



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
007Alex007

Вы правы папка очищается, но ...Не удаляется...
Значит удаляться не будет?
 
Добавлено:
AVanti473
Орфография проверена, папка ничем не заблокирована, родительский и дочерний процесс завершены

Всего записей: 424 | Зарегистр. 30-07-2006 | Отправлено: 22:58 28-09-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serafim18

Цитата:
Значит удаляться не будет?  

Не будет. Возможно, есть какой-нибудь скрипт для удаления. Или если так важно, чтобы удалялась папка, то попробуйте Spoon, в нем есть такая функция. Но от сборки, сделанной в Spoon, остается много лишнего в реальной системе, по сравнению с ThinApp.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 23:18 28-09-2014
serafim18



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
007Alex007

Спасибо за ответ...Скрип написан...перехват хэндла окна программы и всё удаляется

Всего записей: 424 | Зарегистр. 30-07-2006 | Отправлено: 23:30 28-09-2014
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007

Цитата:
это в качестве примера

Пример положительный, проблема решилась .
Менять что-то местами или пути в Package.ini не обязательно, достаточно к записи в Package.ini исполняемого файла (какой выбран при сборке: Launcher.exe или DuplicateFileRemover.exe) добавить WorkingDirectory=... и сборка увидит папку с языками.  
Осталось непонятным, зачем нужен Launcher.exe в этих программах, программы, вобщем-то, работают и без него, но это уже к разработчикам.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 11:26 29-09-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serafim18

Цитата:
Скрип написан...перехват хэндла окна программы и всё удаляется

Может выложите его, мне бы он пригодился. И не могли бы помочь со скриптом для очистки папки prefetch, который срабатывал бы после закрытия портабельной программы?
 
 
 

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 21:39 29-09-2014
maklar47

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ув. coherent
К вопросу об установке/удалении sys-драйверов. ИМХО, простой способ с использованием загрузчика драйверов loader.exe.
Файлом  loader.exe  не поделитесь? а то Ваша ссылка уже не рабочая. Спасибо.

Всего записей: 19 | Зарегистр. 28-12-2013 | Отправлено: 17:35 30-09-2014
serafim18



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
007Alex007

В ПМ

Всего записей: 424 | Зарегистр. 30-07-2006 | Отправлено: 18:02 30-09-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maklar47

Цитата:
Файлом  loader.exe  не поделитесь?

http://rghost.ru/58284744

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 19:45 30-09-2014
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Программа (AVS Video Converter) при установке добавляет Visual C++ 2005, сборка нормально запускается и работает на чистой виртуалке (ХР-8), но если исполняемый файл поместить в корень диска С - запуск не происходит "Приложению не удалось запуститься, поскольку MSVCR80.dll не был найден". Если здесь же создать папку, переместить в неё файл - запускается без проблем.  MSVCR80.dll в вирт. системе (ХР SP3) нет, AVS Video Converter при инсталляции её не устанавливает, то есть, надо полагать, MSVCR80.dll для работы этой программы не требуется. Почему же сборка не хочет запускаться из корня диска С без этой dll-ки ?

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 00:25 01-10-2014
SunOK_ZM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia, с диска С: вообще ThinApp-портативки практически не запускаются, иногда из корня других дисков тоже. А стоит поместить в любую подпапку - вуаля. Где-то этот момент описан, у Астра55 что-ли.

Всего записей: 255 | Зарегистр. 19-02-2012 | Отправлено: 18:48 01-10-2014
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SunOK_ZM
Вобщем-то, я где-то так и предполагал, просто у пользователя портативки AVS Video Converter возникла блаж запускать её из корня диска, отсюда и напрасные хлопоты.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 19:00 01-10-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serafim18

Цитата:
Скрип написан...перехват хэндла окна программы и всё удаляется

 
А можно мне тоже в личку скриптик?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 10:53 04-10-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serafim18

Цитата:
Скрип написан...перехват хэндла окна программы и всё удаляется

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

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:46 04-10-2014
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007 14:55 27-09-2014
Цитата:
Совершенно верно - дело принципа. Сама сборка работает и ни каких нареканий к ней нет, кроме x64.    "зависит от установщика программы" -  я же написал что другая программа, как например Spoon с этой задачей справляется.     Просто хочется узнать, есть ли какой то способ заставить сборку, сделанyню в ThinApp 5, работать как положено. Может какие то дополнительные параметры надо добавить в Package.ini.

007Alex007 наверно задам глупый вопрос, но параметр  Wow64=0 в вашем проекте включён или отключён? Дело в том, что в FAQ от Astra55 есть неточность, он рекомендует его всегда включать. А на практике включение этого параметра может как раз приводить к указанной вами проблеме.

----------
Раздачи и акции

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 18:22 05-10-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123

Цитата:
параметр  Wow64=0 в вашем проекте включён или отключён?

Я пробовал и с ним и без него.  
 
По поводу поведения Wow64=0 в других сборках, например сборка Total Commander x86-x64 с этим параметром, то сборка запускается и работает также как и без этого параметра.  
Но и поддерживаю то, что не нужно включать Wow64=0 бездумно в каждую сборку. Я считаю, что разработчики ThinApp не просто так сделали этот параметр выключенным по умолчанию.  
 
Кстати, а куда делись Astra55 и NickOnToluca?  
 

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 19:25 05-10-2014
serafim18



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
в ПМ
 
 
 
 
 
 





Личная переписка. /emx/

Всего записей: 424 | Зарегистр. 30-07-2006 | Отправлено: 00:22 06-10-2014
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
007Alex007
Здесь я. Не до виртуализации совсем. В тонкостях мало уже разбираюсь.
Тут немножко война... Новый город, новая работа.
Когда притрусь на новом месте, возможно, хоть посмотрю новые версии. Попакую немного программ для себя.
Инет вроде пропускает на руборд, уже хорошо.

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 01:44 06-10-2014 | Исправлено: NickOnToluca, 01:47 06-10-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Здесь я

 
Рад, что Вы с нами!




Личная переписка. /emx/

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 10:32 06-10-2014
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AVanti473
(c) "Жив, цел... орел"

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 13:27 06-10-2014 | Исправлено: NickOnToluca, 13:28 06-10-2014
antan222

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NickOnToluca
Уже хорошо. Присоединяюсь к AVanti473

Всего записей: 72 | Зарегистр. 29-04-2008 | Отправлено: 19:42 06-10-2014
Nikolaj123



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 218 | Зарегистр. 03-07-2011 | Отправлено: 21:06 06-10-2014 | Исправлено: Nikolaj123, 21:09 06-10-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NickOnToluca
Рад тебя слышать и надеюсь, что все будет хорошо, думаю многие по тебе соскучилась.
 
Может уже выкладывали, но все же. Если кому интересно, на просторах инета обнаружил утилиту, бесплатную ThinApp Configuration Editor (редактирования проекта в графической оболочке, перед сборкой).  Некоторые плюсы это, если навести курсор мыши на параметр, то появляется окошко с разнесением каждой функции (правда на английском) и утилита предлагает, в некоторых случаях, изменение-выбор параметров.  По мне, так удобнее все же редактировать в блокноте (но не реестр txt). Но если кто-то займется ее русификацией, то думаю она все же пригодиться в хозяйстве.
 
http://www.loginconsultants.com/de/downloads/freeware-tools/item/tooling-thinapp-configuration-editor

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 21:41 06-10-2014
SunOK_ZM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А вот этот ThinApp Configuration Editor для умельцев не желающих получать ссылку на мыло)
Только эта програмулька сжата или накрыта чем-то, портативная. Да и ошибки оф.мануала не исправлены авторами проги:  
BlockSize=1m засовывает в секцию [BuildOptions], а OptimizeFor=Disk и вовсе потеряла
Легче написать телегу разработчикам дабы исправляли глюки, чем потом её ошибки проверять (кто шпрехен зе дойч?).

Всего записей: 255 | Зарегистр. 19-02-2012 | Отправлено: 03:10 07-10-2014 | Исправлено: SunOK_ZM, 03:21 07-10-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
 
SunOK_ZM
 
ThinApp Configuration Editor
 
Программа обфусцирована. Компилятор Net 4.0
 
Оно нужно?  
Ок, идем дальше: ресурсы декодированы, все строки открыты для работы.
 
СКРИНШОТ
 
Делать локализацию файла на мой взгляд кощунcтво. Разве что перевести для радости глаза боковое меню. Как на скриншоте. Остальное трогать категорически не следует. Там идут функции к которым тем кто знаком с VMware ThinApp проблем не возникнет.  
 
Ну а если всетаки есть желание но не хочется возится стукните скину файлик.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 10:41 07-10-2014 | Исправлено: dinis124, 10:45 07-10-2014
antan222

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, я о всей этой фигне как-то спрашивал у astra55, его ответ:
- редактируйте руками, самый надежный способ
- делайте проект в младшей версии ТА, например, ThinApp 4.0.4-3574, а собирайте уже в последней.
Младшая версия не так захламлена не нужными строками, то что нужно потом добавите в Package.ini

Всего записей: 72 | Зарегистр. 29-04-2008 | Отправлено: 12:24 07-10-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
antan222

Цитата:
редактируйте руками, самый надежный способ

Полностью согласен.

Цитата:
делайте проект в младшей версии ТА, например, ThinApp 4.0.4-3574

Чтобы потом мучиться и перекидывать проект из одного ThinApp в другой? Для меня единственный плюс ThinApp 4 это его возможность использования скриптов  для выдергивания Package.ini из сборок (в новых версиях не работает), и то очень редко этим пользуюсь и то не на всех сборках работает.  

Цитата:
Младшая версия не так захламлена не нужными строками

Любая программа вышедшая раннее не так захламлена (например AcdSee 3 по сравнению с AcdSee 8), но в новой версии новые улучшения, удобство, возможности и т.д. и плюс исправления предыдущих косяков (правда иногда косяки наоборот добавляют например новая Opera).  Для меня на данный момент  минусами ThinApp 5.1 являются недоработка, при создании сборок из некоторых программ, которые одновременно могут быть как x86, так и x64, не удобство редактирования файлов содержащих ветки реестра и прописывание изолирования папок.
 
dinis124
А есть возможность перевести подсказки, которые всплывают при наведении указателя мыши на параметр. Мне кажется очень удобная фича, как для новичков, так и для любителей. Практически встроенный мануал ThinApp.

Цитата:
Ну а если всетаки есть желание но не хочется возится стукните скину файлик.

Если можно мне скиньте.
 
SunOK_ZM

Цитата:
Легче написать телегу разработчикам дабы исправляли глюки, чем потом её ошибки проверять (кто шпрехен зе дойч?).

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

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 16:49 07-10-2014
antan222

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
007Alex007


Цитата:
Чтобы потом мучиться и перекидывать проект из одного ThinApp в другой

 
ну во-первых не так и долго, во-вторых полезно если сборка в этой версии не пойдет, легко перекинуть в другую.

Цитата:
но в новой версии новые улучшения, удобство, возможности и т.д. и плюс исправления предыдущих косяков

тут малость о другом. сам процесс первого захвата, установки софта и второго захвата такой же. а момент редактирования наоборот проще, нет инфы о 64 битах, то бишь соответствующие папки и т.д. Главное не забыть дописать в Package.ini свои параметры. чем мне пытаться убедить, лучше просто попробуйте.
И вопрос для всех, может и был, но я не видел. можно ли в ТА как в спуне обойти запуск от имени администратора?

Всего записей: 72 | Зарегистр. 29-04-2008 | Отправлено: 18:00 07-10-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
 
 
ThinApp Configuration Editor х-86
 

Цитата:
А есть возможность перевести подсказки, которые всплывают при наведении указателя мыши на параметр.

 
Да, конечно.
 
Программа на Net. Это ее минус.
 
Кстати вспомнил, там файл архитектура 86. 64 не имею.
 
А вот распакованный ThinApp Configuration Editor х-64  
 
Проверьте кто может.
 
P/S Там кстати поиграйте с параметрами ресурсов для улучшения окошка редактирования реестра вроде вы упоминали. кое что сможете  сделать.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 19:13 07-10-2014 | Исправлено: dinis124, 19:28 07-10-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dinis124
Возможно, я чего-то не понял, но у меня ThinApp Configuration Editor запустился только на English. Может не те файлы скинули? А так, все остальное работает также как и в оригинале – криво.
 
Минусы ThinApp Configuration Editor.
- Заметил, что утилита неправильно делает бекап. Создает бекап HKEY_CURRENT_USER.txt, но содержимое этого txt почему-то из старого файла Package.ini.  
- После того как были внесены и сохранены все изменения и потом попробовать запустить новый или старый файл Package.ini, то утилита показывает не все ветки реестра, которые прописаны в файлах HKEY_LOCAL_MACHINE.txt, а в HKEY_CURRENT_USER.txt, почему то добавило две лишние ветки.  
- Не понравилось и то, что в Package.ini идет сохранение только включенных параметров, все остальные выброшены.
- И еще, ни как не мог понять, почему не получается открыть файл, оказалось надо нажимать не на иконку, а на надпись, расположенной рядом с иконкой.
SunOK_ZM

Цитата:
BlockSize=1m засовывает в секцию [BuildOptions], а OptimizeFor=Disk и вовсе потеряла

В общем, в топку такую утилиту, пусть автор ее допиливает.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 21:06 07-10-2014 | Исправлено: 007Alex007, 21:08 07-10-2014
sn19



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет.  
 
Перевыложите пожалуйста FAQ, который тут встречался. Я в шапке что-то не нашел его. Если есть версия посвежее, тоже подойдет.
 
Вот этот FAQ. Даже после регистрации, не дает скачать отсюда, требует денег -  
https://ru.scribd.com/doc/145736704/Str-15-VMWare-FAQ-ThinApp-Spoon-2-1

Всего записей: 62 | Зарегистр. 13-08-2007 | Отправлено: 23:45 07-10-2014 | Исправлено: sn19, 23:47 07-10-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sn19
Не знаю как добавить сюда ссылку, но мануал выкладывал пользователь maK в ветке программы Spoon Studio
http://forum.ru-board.com/topic.cgi?forum=5&topic=25375&glp

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 23:55 07-10-2014
sn19



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, 007Alex007
 
Вначале думал, что архив битый, но потом вспомнил, что в WinRar 5 добавили новый формат сжатия. Скачал, распаковал. Вроде оно.
 
з.ы. Ссылка на сообщение, находится под самим сообщением, под названием "Отправлено"

Всего записей: 62 | Зарегистр. 13-08-2007 | Отправлено: 02:01 08-10-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
 
Я снял с файла защиту. Показал вам, что строки для перевода теперь готовы и можно работать. Перевел для наглядности пару строк из бокового меню. Затем написал что перевод программы кощунство, предложив занятся этим тем кто всеже хочет видеть ее по русски самому. Я скинул распакованный английский файл вам, вам скинуть мой переведенный с пару строками как на скриншоте? Или вы хотите чтоб я перевел всплывающие подсказки вам?
 

Цитата:
А так, все остальное работает также как и в оригинале – криво.

 
Я вам написал по этому поводу:
 

Цитата:
P/S Там кстати поиграйте с параметрами ресурсов для улучшения окошка редактирования реестра вроде вы упоминали. кое что сможете  сделать.

 
Кое что вы сможете и без вмешательства разраба улучшить в плане юзабилити программы.
Нет будущего у этой софтинки.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 08:14 08-10-2014 | Исправлено: dinis124, 09:04 08-10-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dinis124

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


Цитата:
Затем написал что перевод программы кощунство, предложив занятся этим тем кто всеже хочет видеть ее по русски самому

Признаюсь, я ступил, просто я сейчас болею и поэтому не правильно понял.

Цитата:
Или вы хотите чтоб я перевел всплывающие подсказки вам?  

Да было бы здорово.

Цитата:
Нет будущего у этой софтинки.

Это верно.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 11:51 08-10-2014 | Исправлено: 007Alex007, 11:51 08-10-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спешу поделиться, как по мне, так великолепной находкой на просторах инета
MCS ThinView  
http://www.mightycare.de/downloads/mcs_thinview
 
С помощью данной утилиты Вы сможете просматривать содержимое EXE упакованного ThinApp, например, узнать версию упаковщика, просмотреть ветви реестра, содержимое папок и просмотреть настройки параметров Package.ini. Также утилита имеет возможность извлекать иконки из EXE упакованного ThinApp и регистрировать или удалять регистрацию EXE в системе (насколько я понял таким образом можно регистрировать ассоциации расширений с EXE). Еще она может устанавливать и удалять EXE (пока что не понял для чего это нужно, может, чтобы потом можно было очистить систему от внесения изменений exe).
 
Работает она очень просто. Выбираем папку с нужным exe, затем в окне утилиты нажимаем ПКМ по строке с нашим файлом и выбираем из меню то, что мы хотим просмотреть.  
 
Из минусов:
- не может извлекать содержимое exe, только просмотр
- отсутствует возможность копировать строки
- неудобный просмотр реестра  
Конечно, если найдутся умельцы, то может быть ее подправят.
 
Кстати на сайте разработчика этой утилиты существуют и другие полезности, но не относящиеся к этой теме.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 14:07 09-10-2014 | Исправлено: 007Alex007, 14:22 09-10-2014
Satanachia

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
Так то неплохо, что выложили. Новичкам пригодится, кто не в теме был, когда выкладывали полный комплект, вместе BuildOptions_Unpack. А так ,тилита известная. Толку от  нее как от козла молока.

Всего записей: 948 | Зарегистр. 22-10-2012 | Отправлено: 15:22 09-10-2014
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Satanachia

Цитата:
когда выкладывали полный комплект, вместе BuildOptions_Unpack

Скрипт BuildOptions_Unpack.vbs видел, а ее раньше не встречал, хотя может тогда особо и не искал. А нет ли у Вас этого полного комплекта, может поделитесь?

Цитата:
Толку от  нее как от козла молока.

На вкус и цвет товарищей нет. Я уверен, что кому-то она все же пригодиться. Мне она точно пригодиться.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 15:49 09-10-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Satanachia

Цитата:
Новичкам пригодится,...Толку от  нее как от козла молока.

Все зависит от решаемой задачи. В большинстве случаев для того, чтобы оценить уровень сборки и ее функциональность достаточно просто просмотреть при помощи той же MCS ThinView структуру ее папок и реестра, а потом проделать пару-тройку простых манипуляций для проверки правильности соответствующих изоляций. Лишь после этого, если все ОК, имеет смысл погонять сборку "по полной". Естественно, полный комплекс мероприятий зависит от конкретной программы и от того, кто ее собирал. При чем очень часто бывает достаточно лишь заглянуть в сборку при помощи MCS ThinView, а дальше как в песне "ты все поймешь без лишних слов".

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 20:41 12-10-2014
distortion



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто-то может слить SDK от пятерки, пожалуйста?
https://developercenter.vmware.com/web/sdk/5.0.0/thinapp?h="SDK"

Всего записей: 3708 | Зарегистр. 07-04-2001 | Отправлено: 17:49 13-10-2014
alexchromets

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 3 | Зарегистр. 13-10-2014 | Отправлено: 22:39 13-10-2014 | Исправлено: alexchromets, 22:40 13-10-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexchromets

Цитата:
не получалось сделать portable версию Microsoft Project 2013

 
Не могу утверждать с большой точностью, но чтения многих страниц обсуждений на треккере по Microsoft Visual Studio 2010, за последнюю неделю приводит меня к неутешительному умозаключению, которое, собственно, подтверждается множеством постов в сети: - Всё мелкософтовское, что выше версий 2007 (типа офис) и 2008 (типа визуалстудия или сервер) имеет совершенно иной уровень защиты и не поддаётся портабелизации.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:59 13-10-2014 | Исправлено: AVanti473, 23:01 13-10-2014
alexchromets

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Всё мелкософтовское, что выше версий 2007 имеет совершенно иной уровень защиты и не поддаётся портабелизации.

Покопал немного в эту сторону. Оказалось, что, как я и думал, ключ привязывается к железу и да, нельзя просто так сделать portable версию MS Project 2013. Зато можно сделать portable версию на базе портативной машины.
Информация по запуску приложения
[spoiler=Смотреть раздел "Информация по запуску приложения"]http://cwer.ws/node/335803/[/spoiler]
Значит это всё-таки возможно...  
Теперь осталось продумать, как это можно реализовать с MS Project.

Всего записей: 3 | Зарегистр. 13-10-2014 | Отправлено: 00:47 14-10-2014 | Исправлено: alexchromets, 00:49 14-10-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexchromets
 

Цитата:
Зато можно сделать portable версию на базе портативной машины.

 
Да я Вас умоляю    - перестаньте так шутить... Я на такой виртуальной портабельной машине все портабельные программы собираю, но это совсем не значит, что работающее приложение на её базе можно считать портабельным. С тем же успехом можете таскать в рюкзаке системник реального компа с установленным 2013 офисом. Да что там системник - человечество уже придумало и ноутбук и планшет!    Вот Вам самая настоящая портативность получается    Не ожидал я от -A.L.E.X.- такого ляпа, ох не ожидал.    Кстати, как прикажете напрямую редачить файлы с физического компа, без переноса их в общую папку портабельной машины???    Во бред выходит - архиватор на физической машине, а офис на виртуальной, прям как в песне: - "Ты на суше я на море мы не встретимся никак..."    Давненько я так не смеялся. С тем же успехом -A.L.E.X.- может начать выпуск полноценных портабельных операционных систем, со всем необходимым таким же псевдопортабельным софтом    
 
P.S.
До чего дошёл прогресс - труд физический исчез,
Да и умственный заменит механический процесс.
 

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 08:44 14-10-2014 | Исправлено: AVanti473, 08:46 14-10-2014
antan222

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Ну, а в принципе пацан молодец, какое широкое поле деятельности впереди, напихал в виртуалку софта, сделал снимок, считай набор портативных программ. Ну а уж взаимодействие с основной системой другой вопрос, что нибудь удумает.

Всего записей: 72 | Зарегистр. 29-04-2008 | Отправлено: 10:17 14-10-2014
aiki



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кстати обидно да :)  Прежде чем сразу ругать, можно было хотя бы попробовать запустить разок или вбить в гугл  "remote app". Все взаимодействие с реальной машиной присутствует и диски видны локальные, но конечно только частичное взаимодействие и буквы дисков другие. И думаете легко было в такой размер (виртуальный диск не сжатый) вместить установленную семерку с работающим офисом? :)  Это не говоря о всем остальном. И кстати кто такой Alex? А насчет Project - виноват.. Вариант с виртуалкой был тупиковым и новых версий не планируется.

Всего записей: 673 | Зарегистр. 25-12-2002 | Отправлено: 14:17 14-10-2014 | Исправлено: aiki, 14:23 14-10-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Налетай Microsoft Project 2013 Portable
 
Сильно не ругаемся. Я на ХР сижу. Собрано на виртуальной 7-86 Протестировано на ноуте win7-86
 
На счет активации смотрите сами я так и не понял где ее глянуть то. Просто проба пера не более.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 15:28 14-10-2014
aiki



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dinis124
вся засада как раз в активации :)  Неспортивно делать портабл, который нужно переактивировать на каждом новом железе.

Всего записей: 673 | Зарегистр. 25-12-2002 | Отправлено: 15:32 14-10-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aiki
 
ты мне по факту говоришь или просто так от фонаря? Запускал проверял?
 
Не спортивно делать херню как на фуфло-барыжном сайте выше описано. Проще думать дальше и ковать костыль нежеле извращение такое как выше на qwer.
 
Поясни твои слова пожалуйста, Что значит через какое то время он прекратит работать? Это триалка или что там?
Просто нет возможности гонять софт такой, стоит ХР а в ноуте такая херня как Microsoft Office и все их компаненты даром ненужны.
Этим фуфлыжникам там похеру че выложить, лишь бы поболее да поувесистее. Одни аля игрушки пунша чего стоят, жесть. Там кроме ушастого по моему мнению здравомыслием никто не обладает.
 
А этот момент:
 

Цитата:
Неспортивно делать портабл, который нужно переактивировать на каждом новом железе.

 
Возможно следует автоматизировать. И будет занимать сеё действо одно нажатие кнопки, а после выключения удалять свои следы, вариантов сделать это полно, следует понять что там и как для начала.  
Либо использовать вариант с рюкзаком, он очень хорош Кто такой Алекс? Да барыга.

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 15:47 14-10-2014 | Исправлено: dinis124, 15:59 14-10-2014
aiki



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это я просто в том смысле что офис на основе виртуалки делал я и выкладывал тут :)  А уж кто его у куда там к себе на сайт утащил и торгует - это не мои проблемы :)
А вообще есть просто решение - запихивать в портабл на основе VL kms регистратор и регистрировать заново на каждом новом железе. По-другому никак.

Всего записей: 673 | Зарегистр. 25-12-2002 | Отправлено: 16:37 14-10-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
distortion

 
Забрать
 
MD5 checksums:2fd216d45be37f278b5f8079598a9cbb
SHA1SUM:62a090b42e72760367b003741c0ef4b9e63bea15
 
Добавлено:
aiki
 

Цитата:
Неспортивно делать портабл, который нужно переактивировать на каждом новом железе.


Цитата:
 
А вообще есть просто решение - запихивать в портабл на основе VL kms регистратор и регистрировать заново на каждом новом железе. По-другому никак.
 

Да ладно тебе. Неспортивная ху...я

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 16:51 14-10-2014 | Исправлено: dinis124, 16:53 14-10-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aiki

Цитата:
можно было хотя бы попробовать запустить разок или вбить в гугл  "remote app"

Ну чтож, бум расширать кругозор, и всё же:

Цитата:
И думаете легко было в такой размер (виртуальный диск не сжатый) вместить установленную семерку с работающим офисом?  Это не говоря о всем остальном.

Собственно одно другого не слаще, ведь:
- Во первых - ThinApp-ом здесь и не пахнет, следовательно уже офтоп выходит.
- Во вторых - Не важно что этот офис используют удалённо - всё равно на другой системе. (хотя идея заслужила внимания).
 

Цитата:
И кстати кто такой Alex?

Админ cwer.ws
 

Цитата:
барыга


Цитата:
Одни аля игрушки пунша чего стоят

В отношении последнего товарисча, как гриться, комментарии излишни. Сделал недавно этот "пунша" Corel, да ещё на ThinApp. На моё тонкое замечание о том, что он зря потел (конечно это было сказано в крайне вежливой форме), и эта работа относительно недавно была небезуспешно проделана мною - мой коммент с ссылкой на яндексдиск был удалён в тот же день. Таки да - ревнивые барыги не принимающие альтернативную реальность. К тому же яндексдиск это же пипец как нехорошо среди ссылок на его творение на летитбит, турбобит, юнибайт, гигабазу и випфаил. Месье старался, выкладывал, а тут я с яндексдиском и он с правами модерирования ))) Не забанил, и то слава богу.
 

Цитата:
кроме ушастого по моему мнению

KpoJIuK? Ну да ну да... Если бы ещё так рьяно не вырезал справки со своих репаков - цены бы ему не было )))

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 19:03 14-10-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Налетай Microsoft Project 2013 Portable  
Сильно не ругаемся. Я на ХР сижу.

 
А чего ругаться-то? Работает на Win7 x32/x64 Кушать вроде не просит. Из замеченного в ходе работы:
- По завершению песочница самоликвидируется, что не будет оптимальным для пользователей, настраивающих программу под себя - остальным не критично.
- Из следов в системе после работы остаётся папка C:\Windows\System32\Tasks\OfficeSoftwareProtectionPlatform
 
А так - даже понравилась реализация!
 

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 12:09 15-10-2014
dinis124

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
 
Ну я почему и написал сильно не ругаемся.  

Цитата:
C:\Windows\System32\Tasks\OfficeSoftwareProtectionPlatform  

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

Всего записей: 143 | Зарегистр. 12-09-2011 | Отправлено: 10:16 16-10-2014 | Исправлено: dinis124, 10:17 16-10-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Считаю первый блин не комом.

 
Не комом, разумеется. Теперь желательно бы узнать, как Вы решили вопросы с активацией мелкософтовского продукта 2013 ? К примеру, есть у меня пламенное желание иметь именно портабельную сборочку Microsoft Visual Studio 2010 Ultimate Но, таки, всё упирается в степень защиты новых мелкософтовских продуктов...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 11:09 16-10-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Объясните, кто может.
В руководстве ThinApp 5.1 добавлена отладочная точка входа iexplore.exe, но в самой программе как были две, так и остались. Секцию [iexplore.exe] в Package.ini нужно добавлять вручную, или в списке Мастера Setup Capture для каких-либо приложений она появляется сама?

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 22:00 24-10-2014
SunOK_ZM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavlaf (iexplore.exe) прописывается мастером, если перед постсканом нажать кнопку Internet Explorer и поставить точку напротив Include entry point for IE.

Всего записей: 255 | Зарегистр. 19-02-2012 | Отправлено: 22:47 24-10-2014 | Исправлено: SunOK_ZM, 22:50 24-10-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SunOK_ZM
Значит всё как и в прежних версиях. Автор руководства решил упомянуть забытую ранее третью отладочную точку входа, но её создание описал неправильно.

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 01:53 25-10-2014
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
pavlaf
Это давно так, кажется. Эксплорер вынесли в отдельный блок в GUI захвата. Там он выбирается с опциями. А что не так в мануале?

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 02:17 25-10-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NickOnToluca
  В последней версии руководства написано, что если отметить показ точек входа для отладки, в список добавятся iexplore.exe, regedit.exe и cmd.exe, но реально при этом добавляются только две последних, как и раньше. Точку входа для нативного IE нужно добавлять отдельно.
  Раньше был описан только захват IE 6, а про отладочную точку входа, запускающую нативный IE в виртуальном контексте написано не было. Теперь её упомянули, но смешали с двумя другими.
  В мануале написано, что эта отладочная точка позволяет тестировать виртуализированные элементы управления ActiveX.

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 03:20 25-10-2014 | Исправлено: pavlaf, 12:00 25-10-2014
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
pavlaf
Вот такие у них дела с вычиткой мануала. Это не первый ляп, как при переходе с версии на версию так и просто спонтанный.

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 13:16 27-10-2014
alexchromets

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А папку зевнул ага, нужно было в песочницу ее вынести.

А каким образом это сделать?
И, кстати, ссылка битая. Обновите, пожалуйста.

Всего записей: 3 | Зарегистр. 13-10-2014 | Отправлено: 16:43 29-10-2014
Makak



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сделал фотошоп 14года x32 портабельным - все работает  
но вот вопрос появился при выходе процесс фотошопа продолжает висеть в памяти ... надоело постоянно вышибать есть ли какие варианты это победить?

Всего записей: 135 | Зарегистр. 06-10-2004 | Отправлено: 20:14 09-11-2014 | Исправлено: Makak, 20:15 09-11-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Наверное америку я не открыл, но в результате долгой возни и сопоставления нашёл пару интересных моментов. К вопросу о полном удалении папки %drive_C% из проекта:
 
!!!!!
Папка "Documents and Settings" в Windows 7 при режиме изоляции (Merged) для диска "C:\" защищена лишь изоляцией папки "%drive_C%\Documents and Settings" в отличии от Windows XP, в которой за защиту этой папки отвечает изоляция папки %Profiles%
Папка "%drive_C%\Users" с должным режимом изоляции необходима для Windows 7, если в проекте нет папки %Profiles%
Папка "%drive_C%\Documents and Settings\Public\Documents" необходима для Windows 7, если в проекте нет папки %Common Documents%
Папка %drive_C%\Documents and Settings\Public\Desktop необходима для Windows 7, если в проекте нет папки %Common Desktop%
!!!!!
а так же:
!!!!!
Папкам:
%My Pictures%__________(Изображения)______________C:\Users\<user_name>\Pictures
%My Videos%___________(Мои видеозаписи)__________C:\Users\<user_name>\Videos
_______________________(Моя музыка)______________C:\Users\<user_name>\Music
_______________________(Загрузки)________________C:\Users\<user_name>\Downloads
Для Windows 7 соответствуют:
%Profile%\Pictures
%Profile%\Videos
%Profile%\Music
%Profile%\Downloads
Но и старые папки %My Pictures% и %My Videos% можно (если это необходимо) использовать в проекте, для совместимости работы сборки с Windows XP
!!!!!
 
Иными словами, удаляем %drive_C%\Documents and Settings из проекта и получаем на Win 7 решето в папке Documents and Settings (сам проверил ради интереса). К чему это может привести - подумать страшно... Другой вопрос, что в Win 7 папка Documents and Settings достаточно хорошо защищена от вмешательства пользователя, а в качестве её альтернативы предлагается папка C:\Users, которая полностью обрабатывается в проекте ThinApp. Но, у меня, например, специально в системе получены все права на Documents and Settings, и стоит лишь упустить в проекте "%drive_C%\Documents and Settings" как возникает решето в системную по сути папку! Понятно, что сами программы туда особо не полезут, но вот вирусы и трояны из взломов - очень даже могут. Да и для самой системы такая ситуация как-то не очень.
 
Может кому мои исследования будут полезны...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 00:23 13-11-2014 | Исправлено: AVanti473, 00:41 13-11-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
P.S. Наконец-то дошли руки, делал для себя, но может кому пригодится для работы и исследований:
https://yadi.sk/d/LNhlT8r5cgS3W
Не вижу смысла выкидывать в андеграунд, так как программка весьма профильная и для узкого круга присутствующих.
(описание особенности от базовой версии в текстовом файле к программе, ну или здесь)

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 11:17 13-11-2014 | Исправлено: AVanti473, 11:18 13-11-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
  Русский перевод руководства пользователя ThinApp 5.1.0:
http://msilab.net/rus.7956  (19.11.2014)
https://yadi.sk/d/a6yWCPmWchuw2  (19.11.2014)
  В одном документе объединены руководство пользователя и справочник по параметрам в файлах конфигурации проекта. В архиве три варианта – английский, русский и совмещённый русско-английский. В конце имени архива указана дата последней правки: день-месяц-год.
  Текущая редакция от 19.11.2014
  (Начальный вариант был от 14.11.2014)

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 10:14 15-11-2014 | Исправлено: pavlaf, 18:51 24-11-2014
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
pavlaf
Круто. В отличие от интерфейса программы, маны на русском многим будут интереснее и полезнее.
 
Как там насчет ошибок в исходнике?
Давно не заглядывал, но как минимум то, что одна опция была не в той секции, это точно. Не исправляли?

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 11:36 17-11-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NickOnToluca
   Об одной ошибке кратко упоминал Astra55. С вашей подачи перечитал его FAQ и нашёл краткое упоминание об ошибке в вопросе 2-14.
   В справочнике нет отдельного описания параметра OptimizeFor, который влияет на размер пакета. О нём говорится в разделе “13.2. Параметр CompressionType”. В трёх приведённых примерах указано так:
 
[Compression]
CompressionType=<Значение>
   
[BuildOptions]
OptimizeFor=<Значение>
 
Astra55 писал, что это ошибка, и параметр OptimizeFor должен быть в секции [Compression]. Я проверил, он работает и в той, и в другой секции. Попробуйте сами и напишите, что получилось. Логичней, конечно, этот параметр указывать в секции [Compression], раз он влияет на сжатие, поэтому мануал подправлю и обновлю архив.
 
P.S. Ваш вопрос заставил поразмыслить над оригинальным текстом. Там написано, что параметры в секциях [FileList], [Compression] и [Isolation] действуют как параметры секции [BuildOptions]. Они сгруппированы отдельно от других параметров [BuildOptions] для обратной совместимости. Я слегка исправил текст, но при следующей правке напишу понятней.

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 14:28 17-11-2014 | Исправлено: pavlaf, 16:50 17-11-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavlaf

Цитата:
OptimizeFor=<Значение>
Параметр важный и часто используемый, наверняка кто-нибудь заметил ошибку, но никто об этом не сообщил. Досадно. Это не мелочь.

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

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 15:06 17-11-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Перечитайте ещё раз пост. Я быстренько всё проверил на одном из проектов и исправил первоначальное заявление. Похоже, дело обстоит так. Параметры из секций [FileList], [Compression] и [Isolation] нормально работают в секции [BuildOptions]. Разрабы вынесли их в отдельные секции по назначению для удобства пользователя. ThinApp все четыре секции видит как одну [BuildOptions]. Можно в неё без ущерба закинуть все параметры, только будет ненаглядно и неудобно их просматривать.
Попробовал перенести OptimizeFor в другие секции. Не работает. Перенести можно только в одну сторону - в "родную" секцию [BuildOptions]. Скорее всего, так можно делать со всеми параметрами трёх выделенных секций, но пробовать не стал. Кому интересно, попробуйте и напишите. Оно не надо, но знать полезно.

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 16:03 17-11-2014 | Исправлено: pavlaf, 17:10 17-11-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavlaf

Цитата:
Я быстренько всё проверил на одном из проектов....Похоже, дело обстоит так. Параметры из секций [FileList], [Compression] и [Isolation] нормально работают в секции [BuildOptions]. Разрабы вынесли их в отдельные секции по назначению для удобства пользователя. ThinApp все четыре секции видит как одну [BuildOptions].

Если мне не изменяет память, то в первых версиях (наверное версия 4.5 или 4.6) параметр OptimizeFor= работал только в секции [Compression]. Можно, в принципе, полистать тему. Но разрабы по-видимому в какой-то последующей версии изменили положение дел и теперь все обстоит так, как вы описали. А этого никто не заметил, потому что уже привыкли.

Цитата:
Интересно, а будут ли работать в этих отдельных секциях "не свои" параметры?...Вы в теме давно, не пробовали?

Честно говоря, не приходило в голову. Но здесь есть любители поэкспериментировать...

Цитата:
Оно не надо, но знать полезно.

Согласен и приветствую, когда результаты наработок выкладываются для всеобщего пользования.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 16:46 17-11-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Попробовал и подправил пост.

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 17:13 17-11-2014
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
pavlaf
У нас уже было, когда мы фичу долго считали багом:
http://forum.ru-board.com/topic.cgi?forum=5&topic=31117&start=1080#6
 
В данном же случае ощущение, будто разработчики... не сразу решили, баг это или фича

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 18:27 17-11-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NickOnToluca
  Я в теме по сравнению с вами новичок. Освоение программы начал с публикаций Astra55, vyachko и перелистывания страниц ветки обсуждения, но быстро понял, что это полезно, но не лучший вариант. Начинать нужно с оригинального мануала, поэтому и взялся за перевод.
  Родной мануал оказался небрежно написанным и далеко не полным. Но так есть в мануале любой программы - обо всём не напишешь. Так что форум - великое подспорье. Только старые посты нужно читать осторожно. Последние версии программы заметно повзрослели, думаю, читать можно только то, что относится к актуальным 4.7.3 и 5.1.0.
  Насколько я понял, других русских форумов по программе нет. Подскажите, если другие ресурсы всё же есть.

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 22:22 17-11-2014 | Исправлено: pavlaf, 00:17 18-11-2014
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
pavlaf
Есть, но, наверное, я сейчас и не вспомню.
Сам давно не вникал в нюансы, хотя немного портаблю для себя.
 
В идеале все же листать еще и форум официальный, там корпоративные клиенты разбирают иногда интересные ситуации. Некоторые из них совсем... ну по-сути вынуждают разработчиков разжевать с нуля, зато некоторые — серьезные "внедренцы" и используют программу на полную.

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 11:53 18-11-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это интересно и полезно:
http://www.vmgu.ru/search/ThinApp

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 09:16 21-11-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Это интересно и полезно:  
http://www.vmgu.ru/search/ThinApp

 
Действительно интересно! Кто просветит пошагово по поводу данного механизма???:
 

Цитата:
Возможность P2P (Project to Physical) - администратор может взять уже готовый пакет ThinApp и "распаковать" его в ОС таким образом, чтобы приложение оказалось установленным на целевой машине (уже не в контейнере, а нативно). Это можно использовать, например, для поиска проблем - распаковал пакет, а при сборе данных с этого нативного приложения секвенсором проанализировать логи и поведение приложения.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 18:58 21-11-2014
pavlaf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Там оговорка и поспешные выводы, должно быть не "готовый пакет ThinApp", а "готовый проект ThinApp". О новой функции преобразования проекта назад в нативно установленное приложение - раздел 6.5 руководства. Функцию распаковки пакета разрабы вряд ли добавят.
Но, имхо, практически сегодня можно выполнить преобразование ThinApp-пакета в нативно установленное приложение в два этапа:
- Пакет в проект (FAQ от Astra55).
- Проект в нативно установленное приложение (руководство).
Должно работать, только зачем это нужно?

Всего записей: 90 | Зарегистр. 06-01-2014 | Отправлено: 20:21 21-11-2014 | Исправлено: pavlaf, 21:04 21-11-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavlaf

Цитата:
Должно работать, только зачем это нужно?

Предварительные условия
 

Цитата:
6.5
...
Перед извлечением существующего ThinApp-проекта в систему захвата и сборки убедитесь, что соблюдены следующие условия:
...
- Профиль пользователя в существующем виртуальном проекте такой же, как и в машине захвата и сборки.

 
Мда... Действительно - зачем?
 
И, кстати вполне понятно почему должны совпадать профили, иначе такие приложение как MS Word 2010 (и выше) просто не установятся на другой профиль, вот только тот же Total Uninstall с этой задачкой справляется в подобном случае намного проще.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 20:30 21-11-2014 | Исправлено: AVanti473, 20:34 21-11-2014
vashchukov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1.Создаю ThinApp пекадж последней версии Google Chrome, но при запуске получаемого exe-файла, обнаруживаю пропадание иконки Хрома, вместо иконки - пустая заглушка. Как это починить?
 
2. Хочу создать ThinApp пекадж Punto Switcher'а. Есть ли готовая инструкция или статья по виртуализации этого ПО? Планирую, что этим PS'ом будет пользоваться множество человек в компании и хочется, чтобы он автоматически загружался и у каждого пользователя был свой собственный словарь.

Всего записей: 1 | Зарегистр. 02-07-2013 | Отправлено: 14:53 24-11-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vashchukov
 

Цитата:
Создаю ThinApp пекадж последней версии Google Chrome, но при запуске получаемого exe-файла, обнаруживаю пропадание иконки Хрома, вместо иконки - пустая заглушка. Как это починить?

 
В Package.ini параметр InventoryIcon=
 

Цитата:
Есть ли готовая инструкция или статья по виртуализации этого ПО?

 
Не встречал готовых инструкций по виртуализации каких-либо конкретных программ.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 18:52 24-11-2014
jiko



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята как возможно с VMware ThinApp 5 создать Windows XP Sp3 Portable
Пример если работаю в Win 7/8 и надо Windows XP Sp3 просто открыл внутри Win 7/8 и все,
а не через VirtualBox 4.3 / VMware Workstation 10
Спосибо .

Всего записей: 140 | Зарегистр. 26-02-2003 | Отправлено: 05:17 26-11-2014
Sergey_AV



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jiko
Никак. Не для этого он

Всего записей: 2336 | Зарегистр. 05-03-2002 | Отправлено: 07:47 26-11-2014
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Просьба помочь.  
Есть портабельная сборка, к ней подключаются плагины *dat, некоторые из них при этом не запускаются, но если их dll вынести в реальную систему все работает.  
При сборке таких плагинов с параметром "ChildProcessEnvironmentDefault=External" и "ExternalDLLs=нужные dll" в песочницу также ничего не выносится. Что делаю неверно?
Или данный параметр применим только к основному хосту и с плагинами не работает?
(У плагинов ведь своей песочницы нет, как я понимаю, или она общая?)

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 16:34 26-11-2014 | Исправлено: oplrox, 16:40 26-11-2014
SunOK_ZM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oplrox, в *.dat находятся exe-шники для запуска? Проверял через файлменеджер(RollerNT) запускать "хуковые" проги(экранную клавиатуру, скриншотер ScreenHunter 6) - действует, но их dll-ки не появляются. При этом только песочница хоста используется.
Часом не мультимедиа в плагинах? такое вообще привередливое... Например, VST-эффекты часто приводят к вылету аудиоредактора.

Всего записей: 255 | Зарегистр. 19-02-2012 | Отправлено: 01:25 27-11-2014
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SunOK_ZM
У меня несколько VST работают и не жужжат.
Но в целом да, некоторые капризничают.
 
oplrox
Можно еще раз? В какой конфигурации работает, а в какой нет?

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 10:46 27-11-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oplrox

Цитата:
но если их dll вынести в реальную систему все работает.  


Цитата:
При сборке таких плагинов с параметром ... "ExternalDLLs=нужные dll" в песочницу также ничего не выносится.

Сталкивался с таким. Некоторые dll-ки, будучи заданными в ExternalDLLs=, все равно не выносятся в песочницу. В этом случае их надо выносить скриптом.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 11:24 27-11-2014
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NickOnToluca, coherent, SunOK_ZM, спасибо что отозвались. Опишу ситуацию подробнее.
 
В *dat запортабелен VST плагин, как обычно в его папке dll, в профиле библиотеки пресетов и записи в реестре. Если собрать этот dat без dll, а последние закинуть в реальную систему то все работает как надо (с регистрацией и подгрузкой пресетов). А вот если библиотеки оставить внутри контейнера (т.е. сделать все как обычно), зависает при запуске.  
Похоже, плаг хочет работать с процессами в системе, и по идее, с выносом его библиотек в песочницу должно работать, но как я писал выше ChildProcessEnvironmentDefault=External эффекта не дал.  
Читал у Astra55 что можно в портейбл поместить файлы с нулевым размером, а в песочницу подставить реальные, но пока что не проверял, да и каждый раз подставлять вручную файлы тоже не очень.  
 
coherent, если нет других то это вариант, у вас случаем нет примера такого скрипта?
 
На всякий случай, версия ThinApp 4.7.0

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 11:25 27-11-2014 | Исправлено: oplrox, 12:46 27-11-2014
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
oplrox
А что именно за плагин?

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 11:53 27-11-2014
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NickOnToluca, это любой из плагов Acon Digital и Sonoris (есть на рутрекере). С Sylenth1 такая же ситуация, думал тоже про скрипты, но к сожалению не силен в этой области...

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 12:32 27-11-2014 | Исправлено: oplrox, 13:36 27-11-2014
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вобщем с помощью скрипта удалось вынести dll в песочницу, теперь уже пишет ошибку при загрузке плагина: "fatal error plugin editor" как-то так... Перепробовал десятки вариантов, с разными плагинами, в том числе и с файлом нулевого размера в разных комбинациях... Возможно, тут дело в изоляции, ведь песочница для сборки - среда с заданными параметрами, получается, что даже вынося файл в песочницу, доступ к нему все равно происходит через параметры виртуальной среды...
 
Можно еще все настройки и файлы(кроме dll) оставить в сборке, а последние подгружать в систему. Это уже конечно не портейбл, но все равно мусора будет меньше, да и другой выход что-то не просвечивается...
 
Кстати забыл сказать, NickOnToluca, вам спасибо за видео-мануал по AppLinks, полезный материал...

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 16:17 28-11-2014 | Исправлено: oplrox, 16:50 28-11-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oplrox
Сталкивался также с тем, что иногда недостаточно вынести dll-ку только в песочницу, нужно также выносить ее рядом с исполняемым ехе-файлом сборки. dll-ку из сборки в песочницу нужно перемещать, типа fso.MoveFile. При этом dll-ка, если мне не изменяет память, все равно должна быть задана в ExternalDLLs=. Не факт, что в вашем случае сработает, но попробовать можно.

Цитата:
Можно еще все настройки и файлы(кроме dll) оставить в сборке, а последние подгружать в систему. Это уже конечно не портейбл

Это вы зря. Это давно известный и обкатанный метод: при старте - вынос в реальную систему (даже с регистрацией, если необходимо), а по завершении удаление (и дерегистрация, если необходимо).

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 18:56 28-11-2014 | Исправлено: coherent, 18:57 28-11-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Сталкивался также с тем, что иногда недостаточно вынести dll-ку только в песочницу, нужно также выносить ее рядом с исполняемым ехе-файлом сборки.

 
Аналогично! Например программа TeraCopy - dll-ки, при выносе, тоже не работают без екзешника.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:50 28-11-2014
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent, нашел ваш скрипт, файл все равно не появляется возле exe, и после выхода запускается бесконечный цикл старта программы.  
 
Есть некоторый прогресс.  
 
Кстати, метод fso.MoveFile при старте выдает ошибку, возможно я где-то допускаю ошибку в синтаксисе. Пошел другим способом: поместил dll в другую папку, методом fso.CopyFile скопировал в реальную систему, так работает. Но перед этим, в параметрах сборки с этого пути была снята изоляция, иначе файл копируется в песочницу, а оттуда он не работает.  
Но теперь вопрос по скрипту, каким методом удалить папку при завершении работы программы?
Вобщем, без знания оккультных путей VBS никуда.
 
 
AVanti473, по поводу решения с TeraCopy, если сохранился скрипт по выносу dll, скиньте пожалуйста...

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 23:15 28-11-2014 | Исправлено: oplrox, 17:10 29-11-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oplrox
1. А если просто нужные длл-ки положить рядом с ехе сборки, выкинув их из проекта? Даже просто руками.
2.
Цитата:
поместил dll в другую папку, методом fso.CopyFile скопировал в реальную систему, так работает. Но перед этим, в параметрах сборки с этого пути была снята изоляция, иначе файл копируется в песочницу, а оттуда он не работает.

Для копирования в реальную систему лучше использовать xcopy.
3. Судя по вашим вопросам, вам стоит просмотреть мануал в той части, которая относится к использованию скриптов.
4.
Цитата:
каким методом удалить папку при завершении работы программы?

Ответ на вопрос - например, fso.DeleteFolder. Все зависит от конкретной задачи. И если вы хотите получить конкретную помощь, то и задачу надо обрисовывать не в общем, а более конкретно: что, откуда и куда надо вынести, удалить и т.д...

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 18:18 29-11-2014 | Исправлено: coherent, 18:20 29-11-2014
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
...то и задачу надо обрисовывать не в общем, а более конкретно...
Портабельный хост Reaper, подключаемый плагин VST в виде *dat, в сборке это: "%ProgramFilesDir%\VstPlugins\Acon Digital\Verberate\Verberate.dll"
Имеющееся решение:  
- при сборке проекта задаются параметры ChildProcessEnvironmentDefault=External и ExternalDLLs=Verberate.dll
- Verberate.dll перемещается в %AppData%  
- снимается изоляция с %ProgramFilesDir%\Acon Digital\Verberate\
- добавляется скрипт, который копирует при запуске хоста файл Verberate.dll в реальную систему по указанному пути и при завершении работы хоста его удаляет (вернее должен удалять папку).
Код:
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile ExpandPath("%AppData%\Verberate.dll"), ExpandPath("%ProgramFilesDir%\VstPlugins\Acon Digital\Verberate\"), OverwriteExisting
Function OnLastProcessExit
 Set objFSO = CreateObject("Scripting.FileSystemObject")  
 objFSO.DeleteFolder ExpandPath("%ProgramFilesDir%\VstPlugins\Acon Digital")
End Function
После закрытия хоста удаляется только файл Verberate.dll, а директории остаются на месте!  
Как это можно исправить, т.е.чтоб директория VstPlugins оставалась, а Acon Digital со всем что внутри удалялась?

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 22:34 29-11-2014 | Исправлено: oplrox, 16:32 03-12-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oplrox

Цитата:
После закрытия хоста удаляется только файл Verberate.dll, а дирекории остаются на месте!

Сталкивался с таким, досконально причину не знаю, но думаю, что это связано с коллизией виртуальной и реальной папок Verberate при использовании метода .DeleteFolder.

Цитата:
Как это можно исправить, т.е.чтоб директория VstPlugins оставалась, а Acon Digital со всем что внутри удалялась?

Я бы пошел по такому пути:
- добавить в проект папку, которая не используется плагином, и куда закинуть Verberate.dll, предварительно удалив из %ProgramFilesDir%\VstPlugins\Acon Digital\Verberate, например %Drive_C%\VstPlugins\Acon Digital\Verberate\Verberate.dll.
- копировать папку VstPlugins со всем содержимым в реальную среду в %ProgramFilesDir% через cmd.ехе /C xcopy... в функции OnFirstSandboxOwner.
- удалять папку  VstPlugins из реальной среды через cmd.ехе /C rd... в функции OnLastProcessExit.
В обоих случаях запускать через ExecuteExternalProcess.
Более подробно сейчас не могу расписать, загружен работой.  
 
Добавлено:
Насчет папки VstPlugins в проекте в %Drive_C% я был не прав. Папка должна находиться вне проекта, рядом с dat-файлом плагина.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:00 30-11-2014 | Исправлено: coherent, 14:01 30-11-2014
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
...добавить в проект папку, которая не используется плагином...
coherent, шикарно и просто, если освободить папку VstPlugins все работает, как сам не додумался)
CMD не стал задействовать (но взял на заметку), воспользовался тем же скриптом с изменениями.  

Цитата:
Более подробно сейчас не могу расписать, загружен работой.
Да вам и так ОГРОМНЕЙШАЯ БЛАГОДАРНОСТЬ, сам бы копался невесть сколько, и не факт что докопался.

 

 
Итак, еще раз, описание задачи и решение, возможно кому-то пригодится:
Портабельный хост Reaper, подключаемый плагин VST в виде *dat, в сборке это: "%ProgramFilesDir%\VstPlugins\Acon Digital\Verberate\Verberate.dll". Плагин при портировке стандартным способом не запускается, но работает при выносе в реальную систему.
Необходимо: при запуске хоста вынести в реальную систему папку с плагином, и после завершения работы хоста ее удалить.
Решение:
1. При сборке проекта в Package.ini задаются параметры ChildProcessEnvironmentDefault=External и ExternalDLLs=Verberate.dll  
2. Папка с плагином Acon Digital перемещается в любую другую, к примеру в %AppData%, получается:%AppData%\Acon Digital\Verberate\Verberate.dll
3. Обязательно удаляется изоляция с папки %ProgramFilesDir%\VstPlugins, или выставляется в Merged.  
Важно! ! Изоляция с вышеуказанной папки должна быть снята не только во всех подключенных плагинах, но также и в сборке хоста.
4. В корень проекта добавляется VBS-скрипт c содержанием:
Важно! ! При подключении нескольких плагинов, собранных таким способом, дабы избежать накладки записей, название скрипта должно иметь уникальное, не повторяющееся имя.
Код:
Function OnFirstParentStart
Const OverwriteExisting = True
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  objFSO.CopyFolder ExpandPath("%AppData%\Acon Digital"), ExpandPath("%ProgramFilesDir%\VstPlugins\"), OverwriteExisting
End Function
Function OnLastProcessExit
  Set objFSO = CreateObject("Scripting.FileSystemObject")  
  objFSO.DeleteFolder ExpandPath("%ProgramFilesDir%\VstPlugins\Acon Digital")
End Function

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 16:06 30-11-2014 | Исправлено: oplrox, 12:53 05-12-2014
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Важно! ! Название скрипта (в корне проекта) в каждой новой сборке должно отличаться от предшествующих, иначе не сработает.

Даже при условии очистки песочницы?

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 10:49 01-12-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oplrox
Рекомендую закинуть первую часть скрипта в функцию OnFirstParentStart. Потому что так, как сейчас, objFSO.CopyFolder... срабатывает каждый раз при вызове любого родительского или дочернего процесса.
 
NickOnToluca
Речь по-видимому идет об одновременном подключении нескольких плагинов, собранных таким способом.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 11:34 01-12-2014 | Исправлено: coherent, 11:51 01-12-2014
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NickOnToluca

Цитата:
Даже при условии очистки песочницы?
Да, если таким способом собрано несколько *dat, и в каждом из них будет скрипт с одним названием, то при загрузке в созданной сборкой папке "ThinstallPlugins" окажется один скрипт, на который наложаться все записи, сборка это не поймет, в результате вообще ни один не сработает. Т.е. каждый скрипт в "ThinstallPlugins" должен иметь уникальное название.
 
coherent

Цитата:
Рекомендую закинуть первую часть скрипта в функцию OnFirstParentStart.
Пост с решением подредактировал.

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 14:35 01-12-2014 | Исправлено: oplrox, 15:14 01-12-2014
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
oplrox
Да, теперь понял. Показалось, что для одного и того же плагина каждую сборку надо переименовывать.

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 14:42 01-12-2014
popugai



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Выдает такую ошибку. Где копать? Оперативки 16 Гб
Not enough physical memory is available to power on this virtual machine with its configured settings.
 
To fix this problem, decrease the memory size of this virtual machine to 2028 MB, increase the amount of physical memory for all virtual machines to 1218 MB, or adjust the additional memory settings to allow more virtual machine memory to be swapped.
 
It is possible that native applications and/or services have locked down memory which could be preventing the virtual machine from launching. Shutting down unnecessary applications or services may free enough memory to launch this virtual machine.
 
If you were able to power on this virtual machine on this host computer in the past, try rebooting the host computer. Rebooting may allow you to use slightly more host memory to run virtual machines.

Всего записей: 523 | Зарегистр. 27-09-2007 | Отправлено: 16:50 08-12-2014
maK



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
popugai
http://forum.ru-board.com/topic.cgi?forum=5&topic=33901&start=4520#1

Всего записей: 5643 | Зарегистр. 19-12-2003 | Отправлено: 19:43 08-12-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поскольку один вопросик повис в воздухе http://forum.ru-board.com/topic.cgi?forum=2&topic=5252&start=200#14 да, и если честно, надо было бы изначально задать его здесь, решил его дополнить и поинтересоваться о следующем:
 
Друзья, кто сталкивался с такими вот параметрами Package.ini:
UACRequestedPrivilegesLevel=highestAvailable  
UACRequestedPrivilegesUiAccess=true
AllowExternalProcessModifications=1

 
Параметры из разных областей применения. Попробую описать мои вопросы более детальнее:
 
- По параметру
UACRequestedPrivilegesLevel=highestAvailable
Какой приоритет он даёт относительно UAC на Win7
 
- По параметру
UACRequestedPrivilegesUiAccess=true

Цитата:
Параметру UACRequestedPrivilegesUIAccess ThinApp присваивает начальное значение, блокирующее доступ к защищённым элементам.

Какие это могут быть защищённые элементы? (желательно пример, чтобы это можно было проверить)
 
- По параметру
AllowExternalProcessModifications=1
Допустим такой пример - в сборку я нечаянно, или специально (не суть важно) внедряю вирус, а папки системы закрыты под WriteCopy реестр так же закрыт под WriteCopy. Казалось бы, у вируса нет шанса заразить систему или повлиять на неё, но в Package.ini ставлю параметр, позволяющий вести запись в системные процессы. Вопрос: Могут ли вирусы вести запись в системные процессы (например, с целью маскировки)? Если да, то, что помешает вирусу изменить системный процесс так, чтобы тот создал (скопировал) и запустил уже в реальной системе, а не в виртуальном контейнере вирусный код, который повлияет на реальную (хостовую) систему? Или, обозначенный параметр работает как-то иначе?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:20 09-01-2015 | Исправлено: AVanti473, 21:21 09-01-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поработал над модификацией одной программки, точнее над улучшением своей версии:
Explorer++ v1_3_5_531 Portable ДСП by AVanti_473 R2
Думаю, знатокам пригодиться для исследования всего и вся в плане портабелизации. На сей раз в виртуальный контейнер удалось без проблем поставить и запустить (что не было полностью возможно в прошлой версии):
Adobe After Effects CC 2014 64-бит
Adobe Flash Professional CC 201 64-бит
Adobe Media Encoder CC 2014 64-бит
Adobe Premiere Professional CC 2014 64-бит
Adobe Dreamweaver CC 2014
Smith Micro Poser Pro 2014 64-бит

Традиционно встаёт без проблем в этот контейнер
SONY SpectraLayers Pro v2
и много другой мелочи вроде скайпа, браузера хрома и т.д и т.п.
Конечно же, это далеко не весь список, что можно было бы пробовать ставить в таком контейнере, но, учитывая, какие программы туда уже устанавливаются без особых проблем - даже меня впечатляет. Всё благодаря ThinApp!
 
Для обычных юзверей
 
Для спецов

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 00:46 10-01-2015 | Исправлено: AVanti473, 21:36 12-01-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
- По параметру  
AllowExternalProcessModifications=1

 
Пока ответ никто не дал, но в результате тестов имеется интересное наблюдение, а именно, изменение в ветке реестра реальной системы при установке в вышеупомянутый контейнер обыкновенного Google Chrome:
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules]
"{60BE4E73-7A47-43C6-8A2B-D8F574274655}"="v2.10|Action=Allow|Active=TRUE|Dir=In|Protocol=17|LPort=5353|App=C:\\Users\\AVanti_473\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe|Name=Google Chrome (mDNS-In)|Desc=Разрешить в Google Chrome передачу входящего трафика по протоколу mDNS|EmbedCtxt=Google Chrome|"
 
Если весь реестр закрыт под WriteCopy, для чего специально в сборку внесён параметр:
RegistryIsolationMode=WriteCopy
который и так должен работать по умолчанию. То каким же образом в реальную систему просочилась такая запись, как не благодаря параметру:
AllowExternalProcessModifications=1
?
Разумеется, более никаких следов программа не оставила в системе да и не могла бы, но ведь смогла таки получить для себя больше привилегий, а значит, в теории, может вполне комфортно шпионить, даже не меняя системные файлы...
 
Не то, чтобы это критично, да и без этого параметра явление данного ключа в реестре я не проверял, это лишь моё предположение (что повлиял какой-то параметр сборки), но, всё же, повод лишний раз подумать, что, для чего, и зачем...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 20:11 12-01-2015
svb777



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Подскажите плиз,чем отличаются :Explorer++ v1_3_5_531 Portable ДСП by AVanti_473 R2 от  
Pablo Commander,кроме того что оба не умеют работать с МСИ пакетами..спасибо.

Всего записей: 226 | Зарегистр. 11-04-2011 | Отправлено: 21:26 12-01-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
svb777

Цитата:
чем отличаются :Explorer++ v1_3_5_531 Portable ДСП by AVanti_473 R2 от Pablo Commander

 
Я бы рад был пересказать всё то, что дал в описании к программе (есть в архиве), но это уже будет оф.топ, так как совершенно некорректно, на мой взгляд, сравнивать программы, нацеленные на абсолютно разные задачи. Кто-то делал портабельный Pablo Commander, чтобы пользоваться им как полноценным файловым менеджером в целевой системе и это одна задача. А я делал портабельный вариант Explorer++ совсем для других целей! Продукт получился побочный, но полезный. А почему я выбрал для своей задачи Explorer++, а не Pablo Commander, или более продвинутый файловый менеджер - это более близкий к теме вопрос. Всё потому, что Explorer++ для своей работы использует три файла:
Explorer++RU.dll
config.xml

и собственно сам
Explorer++.exe
Ни один другой, попадавшийся мне на глаза файловый менеджер не использует столь мало файлов и ресурсов. К тому же, Explorer++ хранит все свои настройки в config.xml, а не в реестре (разумеется если ему это указать в настройках, что и сделано), и таким образом, он лучший кандидат на более чистое исследование установленного в контейнер софта, так как совсем не следит в контейнере, в котором сам работает. Приятным дополнением является его дружелюбный (привычный пользователю) фейс, очень схожий с фейсом проводника виндовс.
Собственно вот и ответ
 
P.S. Понимаю, что подобного никто не любит, но я пересобрал и перезалил сборочку. На сей раз песочница будет именоваться не:
Explorer++ v1_3_5_531 ДСП by AVanti_473
а просто
E++
(ссылка обновлена, двумя постами выше)
Думаю всем понятно, что это сделано дабы путь установки некоторых файлов не вылетал с ошибкой из-за слишком большого набора символов в названии пути. Простите меня за это, сразу не увидел, а во время тестов понял, что хоть длинный путь мне лично ни разу особо не помешал (так как стартую сборку почти с корня диска), но ведь может же в теории К данному времени 21 пользователь обзавёлся моей сборочкой, но в принципе и тот вариант и этот вполне рабочие, просто, если будут проблемы, то лучше этот, с коротким именем песочницы. Всё повторно обкатал и перепроверил, так что проблем быть не должно. И, пользуясь случаем - спасибо всем пользователям, что тестят подобный софт.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:01 12-01-2015 | Исправлено: AVanti473, 22:14 12-01-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

Цитата:
спасибо всем пользователям, что тестят подобный софт

 
Это тебе Спасибо (пробовал что-то подобное сделать, не получилось, множество программ не запускалось). Практически твоя сборка это Shadow Defender или Sandboxie (но над этими прогами трудятся команды программистов).

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 21:55 15-01-2015
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подсобите решить такую, казалось бы, тривиальную задачу.
 
Есть папка с установленной программой, в которой пусковой .exe, библиотеки и другие необходимые для её работы файлы. Нужно сделать так, чтобы программа запускалась в реальной системе со своей папки, но данные реестра и некоторые другие файлы брала с портабельного формата *.dat (или другого) находящегося возле .exe программы. Т.е. тут нужна частичная портабелизация, но неясно как назначить обращение программы к портабельному файлу. Насколько понимаю, тут необходима скриптовая комбинация с ThinApp, так как должна оставаться возможность подключения портабельных плагинов.  
Если кто-то разбирается в этом вопросе, просьба пояснить подробнее.
 

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 12:02 17-01-2015 | Исправлено: oplrox, 13:20 17-01-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oplrox Я как-то так понял...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 14:53 17-01-2015 | Исправлено: AVanti473, 14:57 17-01-2015
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473, насчет тривиальной я так и написал "казалось бы", понимаю что это далеко не так.  
Зачем это? Способ выноса файлов в систему решает большинство проблем, но некоторые плагины не переносят виртуальной среды и хотят чтоб даже хост, из которого они запускаются, также был в реальной системе. Стараюсь добить этот вопрос, в ту или другую сторону.  
Вобщем, после вашего ответа и в очередной раз поразмыслив, вижу что способа реализовать это нет, так что вопрос снимается. Спасибо.

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 16:41 17-01-2015 | Исправлено: oplrox, 16:58 17-01-2015
rooleg



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
последняя версия проги стабильно работает? не глюкавая?
никто ничего случайно не заметел?

Всего записей: 140 | Зарегистр. 26-03-2006 | Отправлено: 18:18 17-01-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oplrox

Цитата:
Стараюсь добить этот вопрос, в ту или другую сторону.

Вы всё правильно поняли из моего ответа. Про вышеуказанный способ я уже читал ранее, так как переодически читаю содержимое этих страничек. Ваша задача в способе была противоположна поставленной сегодня задаче. Там был вынос плагина в реальную систему, когда сам Reaper портабельный. Данная задача выполнима, но по описанным Вами причинам не совсем удобна... Нынешняя задача, поставленная Вами увы не нова. Если поворошить странички данной темы, я думаю Вы найдёте подобный вопрос, затрагиваемый мною в отношении плагинов PSPaudioware к SONAR X2. Тогда, я даже пытался использовать штатную функцию создания .msi в ThinApp, но плагины всё равно остаются как бы в виртуале и SONAR их физически не видит. Ранее, я сам не совсем точно представлял себе процесс происходящего и его причины. Детальнее всё изучив, я пришёл к такому же выводу:
 

Цитата:
вижу что способа реализовать это нет

 
Но, тем не менее. Всё же это не значит, что об этом не надо думать! Мне кажется надо! Хотя бы в теории представить себе как это могло бы происходить, и что для этого необходимо. А необходим некий хаб, который бы обеспечивал соединение (взаимодействие) именно между реальным приложением и виртуальным, когда реальное является доминантным, а виртуальное плагином к реальному. Как реализовать такой "хаб" - вопрос?
 
Например, я тоже совсем не против иметь в арсенале кучу виртуальных плагинов VST, чтобы их можно было легко подключать к реальному приложению, а не держать на машине постоянно. Кто-то скажет - идеотизм. Но, знает ли этот кто-то, как достаёт ситуация, когда вновь установленная очередная DAW студия начинает сканить все имеющиеся на компе VST-шки, рубит некоторым из них активацию (причём навсегдла), да и сама вешается, так как не поддерживает некоторые из них, пока не удалить из системы конфликтующие.
 
Добавлено:
rooleg

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

 
Ну SpectraLayers Pro на ней вылетает, при попытке масштабирования в программе. В остальном нареканий вроде нет. С чем такое поведение связано, я пока не устанавливал, да и особого желания нет. Взял на заметку не делать на ней портабл, требующий системных ресурсов для визуализации графики...
 
Добавлено:
oplrox
 
Я решил Вашу задачку!
 
Сейчас вместе посмеёмся, но решение было практически под носом девятью постами выше. Всегда хорошо, когда задумываешься над последовательностью. Значит нужен был некий "хаб", который бы видел портабельный контейнер, а кто сказал, что он сам не может быть портабельным приложением? Вот собственно и ответ. Единственное требование, запускать хостовую (установленную на компе) студию через этот хаб и всё. Делайте к нему плагины VST-шек, подключайте, а если лень, просто инсталлируйте их сразу в этот "хаб" и вот вам вся частичная портабелизация. Поскольку все прелести псевдомоей разработки (виртуального контейнера для установки приложений) я ещё и сам не полностью успел опробовать, поэтому и ответ Вам смог дать не сразу, а только когда задумался о применении своей разработки к Вашей задачке.
 
P.S. Гы-гы, и сам теперь буду пользоваться - спасибо за полезный вопрос!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 18:26 17-01-2015 | Исправлено: AVanti473, 18:59 17-01-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oplrox
Гляньте в сторону X-Launcher.
 
AVanti473
Не  тратьте свое время. Тыц, тыц, тыц. Особенно умиляет "заметел".

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 19:00 17-01-2015 | Исправлено: coherent, 19:04 17-01-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent

Цитата:
oplrox  
 Гляньте в сторону X-Launcher

 
А смысл? Он всё равно не даст взаимодействовать с портабельным контейнером, его содержимым и виртуальным реестром... Впрочем, решение уже найдено, и даже опробовано, о чём я выше написал. X-Launcher конечно и есть частичная портабелизация на основе других принципов, но надо ещё уметь собирать на нём плагины. К тому же, VST-плагины не имеют точки запуска, а следовательно встанет вопрос о том, как в систему при помощи X-Launcher будут попадать звуковые VST плагины, а так же, когда именно они будут выгружаться из неё...
 

Цитата:
Особенно умиляет "заметел".

Понятно - спамбот, который позже (спустя пару страничек) рассчитывает отредачить пост заменив всё на ссылки каких-нить порносайтов для пущей индексации в поисковиках... Спасибо за подсказку.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 20:01 17-01-2015 | Исправлено: AVanti473, 20:09 17-01-2015
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Я решил Вашу задачку!

AVanti473, эх, какая бы радость была, но увы. Дело в том, что когда такой плагин запускается с виртуальной среды, неважно, будь то портабельный хост, проводник или какой-нибудь другой вход, вступают в силу ограничения виртуальной оболочки. Я этот способ проверил еще давно, причем много раз, на разных версиях ThinApp, и через разные проводники. К сожалению, не проходит.  
По логике, вижу три выхода:  
1. переписывать функции обращения в самих exe и dll, которые отправляют запросы в реестр и другие файлы, но вместо них это все будет перенаправляться в контейнер. Даже при наличии опыта программирования с каждой сборкой так мурыжиться - совсем нездраво.
2. возможно когда-то в новых версиях ThinApp, такой случай будет предусмотрен и станет доступно более расширенное взаимодействие виртуальной среды с реальной памятью. Будет ли? И когда? - Риторика.
3. и наконец)) появится новая версия плагина, которая будет нормально работать при обычной портабелизации (а такое уже было с несколькими). И опять - риторика.  
 
А насчет хаба-моста тоже была мысль, но он должен сам быть не виртуальным, и уметь разговаривать на ты с ThinApp`овскими чадами. И тут все пути ведут к разработчикам.
 
coherent, с X-Launcher не доводилось иметь дело, вот разбираюсь что это.
 

Цитата:
Но, тем не менее. Всё же это не значит, что об этом не надо думать!

Хорошие слова, всеми и всями - ЗА, нерешаемые задачи чем не тренировка для ума, особенно если он в этом не уверен)

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 21:28 17-01-2015 | Исправлено: oplrox, 21:50 17-01-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oplrox
 

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

 
Те плагины, которые ограниченны в своих возможностях портабельной оболочкой я не вижу смысла вообще портабелизировать частично или ещё как-нибудь - это уже иная задачка В таком случае действительно лучше использовать X-Launcher, или ставить нужный плагин в систему. Мы же рассматривали случай, когда плагин уже портабельный, но надо подключить его к реальному приложению в системе:
 

Цитата:
Нужно сделать так, чтобы программа запускалась в реальной системе со своей папки, но данные реестра и некоторые другие файлы брала с портабельного формата *.dat (или другого) находящегося возле .exe программы. Т.е. тут нужна частичная портабелизация

 
Если не так, то я немного запутался и прошу прощения.
Что касается Вашего выбора VST плагина реверберации Acon Digital Verberate, то подобных ему море, и на мой взгляд даже более качественных.  
MAGIX - Variverb
OverLoud - Brverb
Wave Arts - MasterVerb
Из последних неплохой 2CAudio - Aether
и т. д. и т. п. от лёгкого рефлектора до эха и хоруса. Всегда есть из чего выбрать, главное, чтобы это подключалось к оригинальной программе

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:08 17-01-2015 | Исправлено: AVanti473, 22:09 17-01-2015
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473, верно, VST хватает, но если у вас будет время и желание, попробуйте запортабелить Lennar Digital - Sylenth1, любую версию начиная со 2-ой. Если возьметесь, могу скинуть портабельный хост (если нет в наличии), чтоб сэкономить время. Этот случай не единичный (уверен что у остальных такой же принцип), если получится, вопрос портабелизации VST можно считать решенным, насколько это вообще возможно.
PS. Acon Digitals брал вобщем для примера, а для ревера использую 2CAudio - Aether (очень хорош, но и аппетитный на ресурсы), плюс парочку простых - AriesVerb, RVB500, RoomVerb 2M2.

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 22:21 17-01-2015 | Исправлено: oplrox, 22:51 17-01-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
но если у вас будет время и желание, попробуйте запортабелить Lennar Digital - Sylenth1, любую версию начиная со 2-ой

 
Самое интересное в том, что Вы же уже решили вопрос портабелизации подобных плагинов с выносом их файлов скриптом в реальную систему, а затем удалением их следов тем же скриптом. Так что мешает уже готовый такой портабельный плагин по моей схеме (через портабельный "хаб") подключить к установленному хосту? (учитываем, что настройки изоляции плагина всегда приоритетней настроек портабельного приложения, в данном случае "хаба") Создавайте папку plugins рядом с екзешником портабельного "хаба", кидайте туда свой плагин, запускайте "хаб", через "хаб" хост, и ищите в хосте ваш плагин, он болжен быть там и работать в реальной системе...
Но, возможно я что-то не учёл. И, уж ради интереса, скинте в личку ссылку на указанные вами плагины, просто хочется взглянуть на них и попробовать в виртуальном контейнере. В свободное время конечно (надеюсь, такое найдётся)

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:44 17-01-2015 | Исправлено: AVanti473, 22:59 17-01-2015
oplrox

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скинул в личку... В любом случае, спасибо.

Всего записей: 209 | Зарегистр. 29-12-2010 | Отправлено: 23:03 17-01-2015 | Исправлено: oplrox, 23:20 17-01-2015
PRomanS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть портированное в версии 5.0.1 приложение (x32), работает начиная с Windows 7, можно ли переделать порт этого приложения под Windows XP? Когда-то на оборот переделывал.

Всего записей: 76 | Зарегистр. 03-01-2005 | Отправлено: 16:10 02-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PRomanS

Цитата:
Есть портированное в версии 5.0.1 приложение (x32), работает начиная с Windows 7, можно ли переделать порт этого приложения под Windows XP?

Все зависит от конкретного приложения. Если снимок изначально делался в 7-ке и собранное приложение в ХР не работает, то проще всего сделать снимок в ХР и собрать по-новой.  Сталкивался с таким. Легче сделать по-новой, чем искать, что ему не хватает для полноценной работы. Если, конечно, само приложение предназначено для работы в ХР.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 16:23 02-02-2015 | Исправлено: coherent, 16:24 02-02-2015
PRomanS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Спасибо, я имел в виду нет ли каких либо штатных средств у ThinApp, для преобразования сборки из XP в 7 была команда для ThinApp. Пересобрать не могу, поскольку не я собирал.

Всего записей: 76 | Зарегистр. 03-01-2005 | Отправлено: 16:43 02-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PRomanS

Цитата:
для преобразования сборки из XP в 7 была команда для ThinApp

Здесь речь идет просто о перекомпиляции в более старших версиях ThinApp, которые поддерживают 7-ку. А то, что Вы хотите, это совсем другое.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 17:23 02-02-2015
PRomanS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Спасибо.

Всего записей: 76 | Зарегистр. 03-01-2005 | Отправлено: 17:31 02-02-2015
NickOnToluca



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Люди, версия 5.1 не может сделать релинк с компрессией?
 
Поясню. Кажется, на данный момент релинк делается с учетом того, что параметры в исходнике называются так же и располагаются в тех же секциях, что и для версии релинка. Поэтому старые пакеты релинкаются, но без сжатия.

Всего записей: 4777 | Зарегистр. 26-05-2008 | Отправлено: 14:30 03-02-2015 | Исправлено: NickOnToluca, 15:28 03-02-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пожалуйста помогите разобраться.  
 
Делаю портативку RealPlayer 16 в ThinApp 5.1. После запуска портативки появляются зависшие процессы (realplay.exe, realsched.exe, rndlresolversvc.exe, RealUpgrade.exe).  Добавляю в сборку скрипт для удаления зависших процессов:
 
Function OnFirstParentExit
ProcKill1 = ExecuteExternalProcess("cmd.exe /c taskkill /F /IM realplay.exe /IM realsched.exe /IM rndlresolversvc.exe /IM RealUpgrade.exe /T")
WaitForProcess ProcKill1, 0  
End Function
 
В ThinApp 5.1 скрипт не работает, в ThinApp 4.73 работает.
 
Как переделать скрипт под  ThinApp 5.1?

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 21:26 10-02-2015
Leon_Ko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007

Цитата:
В ThinApp 5.1 скрипт не работает, в ThinApp 4.73 работает.  

Давным-давно, когда все здесь ещё были маленькими (старожилы помнят), я подбирал для версии 4.0.0-2200 требуемый scripting.dll и всё работало. 100 лет уже этим не занимался (другие дела, другие проблемы), но можете попробовать...

Всего записей: 1024 | Зарегистр. 26-11-2008 | Отправлено: 08:15 11-02-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Leon_Ko

Цитата:
подбирал для версии 4.0.0-2200 требуемый scripting.dll

Спасибо, что откликнулись на проблему, но можно по подробнее, как это сделать.  
Я в составлении скриптов не силен (выше представленный скрипт добыт из просторов этого форума), а тем более в создании или написании scripting.dll.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 19:28 11-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
Имелось в виду попробовать scripting.dll от других версий, например, от той же 4.7.3.
И убивать процессы, наверное, лучше используя функцию OnLastProcessExit.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 19:55 11-02-2015
Leon_Ko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
Собственно, вам уже ответили. Я тоже не силён в написании скриптов, да и занимался Thinstall'ом последнее время n-лет назад. Просто подбирал в своё время под себя - тоже столкнулся с подобной проблемой. У меня вообще сложилось впечатление, по поводу этих scripting.dll, что ф-ции содержащиеся в них весьма вольно "плавают" от версии к версии. И - недокументируются. Возможно, где-нибудь на западных форумах...

Всего записей: 1024 | Зарегистр. 26-11-2008 | Отправлено: 08:08 12-02-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подмена scripting.dll в ThinApp 5.1 не сработала. Зато оказалось, что скрипт работает во всех версиях ThinApp (в том числе и в 5.01) кроме версии 5.1. Для себя понял что если не нужны функции x64, то лучше пользоваться версией 4.73.
 
coherent

Цитата:
лучше используя функцию OnLastProcessExit

В моем случае срабатывает именно OnFirstParentExit, а с OnLastProcessExit скрипт почему то вообще не запускается.
 
NickOnToluca
Это не про релинк, а про обычную компрессию в 5.1, много раз сталкивался с тем, что после компрессии (даже с обычной Fast) сборка запускается с ошибками, например FontExpert.  

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 15:02 12-02-2015
orion885

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Решил сделать для себя портабельные версии используемых программ. Начал с программы WinDjView. Протестировал созданную сборку с помощью VMware ThinApp - она показывает, что изменения произошли только в песочнице. Поставил сканер реестра RegChange - он обнаруживает 29 новых записей в реестре после запуска, открытия файла и закрытия WinDjView. Поскольку я в реестре ничего не понимаю, не могу понять, относится ли эти ключи к программе или нет. Отсюда вопрос: стоит ли зацикливаться на этом, или отчета ThinApp будет достаточно? Заранее спасибо за ответы.

Всего записей: 2 | Зарегистр. 12-02-2015 | Отправлено: 16:14 12-02-2015
Leon_Ko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
orion885
WinDjView - по сути своей портабельная программа, нет смысла её заталкивать в контейнер Thinstall. Её влияние на реестр минимально, если вообще это можно назвать влиянием .

Всего записей: 1024 | Зарегистр. 26-11-2008 | Отправлено: 16:25 12-02-2015
orion885

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я понял, спасибо. Одной из задач было избавиться от Яндекс-бара, запихнутого в инсталлятор.

Всего записей: 2 | Зарегистр. 12-02-2015 | Отправлено: 17:22 12-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
orion885
Если Вы специально не предпринимали шаги для того, чтобы сборка делала записи в системный реестр, тогда программа ничего и не запишет туда. Поскольку по умолчанию глобальная изоляция WriteCopy, а изоляция на записи в реестре собственно портируемой программы - Full. Хотя, строго говоря, любой ехе-файл, в том числе и ехе-контейнер портативной сборки, оставляют при работе следы в реестре, что не есть крамолой.

Цитата:
Поставил сканер реестра RegChange - он обнаруживает 29 новых записей в реестре после запуска, открытия файла и закрытия WinDjView.

Он Вам отследил все, что в этот момент было запущено в системе.

Цитата:
Одной из задач было избавиться от Яндекс-бара, запихнутого в инсталлятор.

А просто извлечь из инсталлятора только то, что нужно, а всякое г..., типа Яндекс-бара, там оставить, не проще?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 19:33 12-02-2015 | Исправлено: coherent, 19:34 12-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как заставить pdf-файл (как правило, руководство пользователя) запускаться в песочнице, при рабочей опции ChildProcessEnvironmentDefault=External ? Для запуска внутри контейнера (при рабочей ChildProcessEnvironmentDefault=External) справки или документов Micrоsoft Оffice добавляется ChildProcessEnvironmentExceptions=hh.exe;WINWORD.EXE;EXCEL.EXE;POWERPNT.EXE;OUTLOOK.EXE. Что нужно прописать для PDF ?

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 18:45 16-02-2015 | Исправлено: bumburbia, 18:46 16-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia
PDF-файл открывается программой по умолчанию, которая ассоциирована с расширением .pdf. Нужно ее добавить в ChildProcessEnvironmentExceptions= . Если я правильно понял вопрос.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 19:48 16-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Всё правильно, но программы по умолчанию для открытия PDF-файлов у всех разные, у меня, к примеру, Foxit Reader, у других - другие. Хотелось бы универсального решения.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 20:28 16-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia

Цитата:
Всё правильно, но программы по умолчанию для открытия PDF-файлов у всех разные, у меня, к примеру, Foxit Reader, у других - другие. Хотелось бы универсального решения.

А у меня PDF-XChange Viewer. И как объединить Foxit Reader и PDF-XChange Viewer? Единственное, что с ходу приходит на ум - это добавлять в сборку какой-то мини PDF-просмотрщик, типа Sumatra PDF, который будет ассоциирован с pdf в виртуальном реестре и который и будет собственно запускаться.
А что, если тот же Foxit Reader запуститься не в виртуальном контейнере, это не устраивает чем-то?
 
Добавлено:
Конечно все зависит от конкретной сборки. Но, в принципе, можно задать наоборот, ChildProcessEnvironmentDefault=Virtual, а в исключениях (ChildProcessEnvironmentExceptions=) задать те процессы, которые будут запускаться в системе. И поскольку Foxit Reader, PDF-XChange Viewer и др. не будут в исключениях, то они будут запускаться в виртуальном контейнере.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 20:43 16-02-2015 | Исправлено: coherent, 20:52 16-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent

Цитата:
А что, если тот же Foxit Reader запуститься не в виртуальном контейнере, это не устраивает чем-то?

В сборке мне нужен работающий ChildProcessEnvironmentDefault=External и если не делать исключения для запуска PDF в контейнере, то сборка запускает Foxit Reader во внешней среде и FR ищет файл во внешней среде и, разумеется, не находит.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 20:53 16-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia

Цитата:
сборка запускает Foxit Reader во внешней среде и FR ищет файл во внешней среде и, разумеется, не находит

Не включил мозги в эту сторону.
В предыдущий свой пост добавил еще вариант.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 21:01 16-02-2015
whaleshark



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста, как лучше сделать нужно в один portable файл засунуть 2 программы. Если конкретно cisco anyconnect и vmware view client, чтобы при старте запускались обе.

Всего записей: 532 | Зарегистр. 28-06-2009 | Отправлено: 21:19 16-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Этот вариант известен, неизвестны заранее те процессы, для которых нужно будет делать исключение, так сказать, придётся повозиться , но за пояснения - спасибо .  
Ещё такой момент: дочерний процесс при запуске в контейнере ищет WINWORD.EXE, не находит и пытается установить со всякими предупреждающими окошками, вобщем, неприемлемый вариант. Если этот процесс запускать вне контейнера, то нужное окно открывается, а в диспетчере задач появляется ненужный WINWORD.EXE, который после закрытия и дочернего процесса и всей портативки остаётся висеть. Как бы от него (и подобных ему) избавиться ?

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 21:26 16-02-2015 | Исправлено: bumburbia, 21:27 16-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia

Цитата:
Если этот процесс запускать вне контейнера, то нужное окно открывается, а в диспетчере задач появляется ненужный WINWORD.EXE, который после закрытия и дочернего процесса и всей портативки остаётся висеть. Как бы от него (и подобных ему) избавиться ?

В принципе, всегда остается радикальный метод - убивать процесс (ы) скриптом при завершении работы сборки. В теме пару раз выкладывался скрипт на WMI. Если не напрягает консольное окно, то можно через taskkill.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 11:08 17-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Консольное окно - не есть хорошо ), но главное, в данном случае процесс WINWORD.EXE как бы и не является дочерним, если, к примеру, во время запуска дочернего процесса портативки открыт Word, то дочерняя программа запускается без появления дополнительного WINWORD.EXE в диспетчере задач. И ещё, сколько раз запустишь этот дочерний процесс, столько и появится WINWORD.EXE в диспетчере задач, а с открытым Word'ом не появится вовсе. Сможет скрипт убивать этот, на мой взгляд, не совсем дочерний процесс (ы) ?

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 13:12 17-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia

Цитата:
Сможет скрипт убивать этот, на мой взгляд, не совсем дочерний процесс (ы) ?

Так скрипту как-бы все-равно, что убивать. Указать имя процесса и он не будет разбираться, дочерний это процесс или вообще чужой, никак не связанный со сборкой. Грохнет, и все!
А что за программа, если не секрет? Fine Reader, PDF Transformer...?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:03 17-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Под рукой этого скрипта нет ? А программа PROMT.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 14:14 17-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia
Попробуйте такой:

Код:
Function OnFirstParentExit  
     Dim objWMIService, objProcess, colProcess  
     Dim strComputer, strProcessKill  
     strComputer = "."  
     strProcessKill = "WINWORD.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
 

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:29 17-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Благодарю, попробую.
 
Добавлено:
Скрипт, на сколько я понимаю, можно просто запустить из любого места и он убьёт этот процесс или он должен находиться внутри сборки ?

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 14:52 17-02-2015
Leon_Ko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia

Цитата:
Скрипт, на сколько я понимаю, можно просто запустить из любого места и он убьёт этот процесс или он должен находиться внутри сборки ?

Такое ощущение, что вы лепя свои портаблы, до сих пор не понимаете, что делаете
Шапку хотя бы читали? Мануал от vyachko, его более поздние перепевки от Astra55?

Всего записей: 1024 | Зарегистр. 26-11-2008 | Отправлено: 15:22 17-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia

Цитата:
Скрипт, на сколько я понимаю, можно просто запустить из любого места и он убьёт этот процесс или он должен находиться внутри сборки ?

В таком виде, как он приведен, скрипт помещается в сборку и автоматически запустится при завершении ее работы.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 15:24 17-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Leon_Ko
Спите спокойно, я знаю, что делаю, а если не знаю, то спрашиваю, уточняю. Мануалы из шапки не дают ответа на все вопросы и для этого существует форум.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 15:33 17-02-2015
Leon_Ko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia

Цитата:
...я знаю, что делаю

С трудом в это верится судя по вашим вопросам

Всего записей: 1024 | Зарегистр. 26-11-2008 | Отправлено: 15:48 17-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Leon_Ko

Цитата:
С трудом в это верится

Это ваши проблемы, мне они не интересны.  
coherent
К сожалению, скрипт не сработал, только удвоил процессы запущенной сборки.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 16:13 17-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia

Цитата:
К сожалению, скрипт не сработал, только удвоил процессы запущенной сборки.

Скрипт не может удвоить количество процессов сборки. Не думаю, что я что то напутал в скрипте, надеюсь по крайней мере, но для уверенности пройдитесь поиском в теме по какой-то фразе из скрипта, например, strComputer = ".". Для полной уверенности.
И на всякий случай, Вы весь текст скрипта скопировали в текстовый файл, сохранили его с расширением .vbs, типа kill.vbs, и положили его в корень сборки рядом с Package.ini?

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 16:38 17-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Всё именно так, проглядел сначала вот это окошко при запуске, оно и дублировало запущенный процесс

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 16:55 17-02-2015 | Исправлено: bumburbia, 17:01 17-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia
Странно, это же рабочий скрипт. Почему он выкидывает ошибку?
На всякий случай, " Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")" - это одна строка. И "Set colProcess = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = " & strProcessKill)" - это тоже одна строка. Кстати 7-я, в которой якобы ошибка.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 17:15 17-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Скрипт запускается без ошибки, если в строке strProcessKill = "WINWORD.EXE" название процесса заключить ещё в одни кавычки - "'WINWORD.EXE'", но, увы, завершает процесс при запуске сборки (если открыт Word - прибьёт), а при закрытии - молчок, тот же эффект и с этим скриптом  

Код:
 
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 = 'WINWORD.EXE'")
For Each objProcess in colProcessList
    objProcess.Terminate()
Next
End Function  
 

Я просмотрел стр. 186-188 и, как понял, всё же эти скрипты срабатывают не всегда, но тут-то процесс убивается, только не тогда, когда надо ).

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 18:33 17-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia

Цитата:
завершает процесс при запуске сборки

Это что-то из области фантастики! Ведь по определению функция OnFirstParentExit срабатывает при завершении родительского процесса (ов). Да и с дополнительными кавычками мне не понятно.
Для чистоты эксперимента можно добавить в скрипт вывод сообщения, типа MsgBox "Bla-bla-bla", и посмотреть, когда оно будет появляться. Потому что я не представляю, как функция OnFirstParentExit может сработать при запуске сборки!

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 19:39 17-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Bla-bla-bla появляется сразу (почти сразу). Дело, наверное, в том, что сборка запускается с помощью лаунчера, который сначала запускает exe'шник, заменяющий рег. данные на новые, а затем саму программу, т.е. запускаешь PROMTProfessional .exe (лаунчер), затем срабатывает Reactivation.exe (обновляет регистрацию) и, наконец,  PROMT Professional .exe (сама программа), два первых процесса после срабатывания выгружаются и, скорее всего, на это реагирует наш скрипт, запускаясь и прибивая WINWORD.EXE (если таковой запущен).
 
Добавлено:
про кавычки

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 20:15 17-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia
Ха, мы бы долго еще искали причину, если бы не выяснилось, что сборка не совсем стандартно запускается. Может в этом случае имеет смысл все запускать скриптом, который запустит все в нужном порядке, подождет завершения работы PROMT Professional .exe и тогда запустит скрипт "убиения".
Про кавычки спасибо!

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 20:34 17-02-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Поиск причины, по крайней мере для меня, был полезен, узнал что-то новое. А сборку, думаю оставить как есть, просто кто-то будет работать с Word'ом, запустит эту сборку PROMT'а, что-то переведёт, закроет PROMT и хана наработанным в Word'е данным ). В принципе, если не лезть в диспетчер задач, то и не узнаешь об этом подвисшем процессе, ну а кому приспичит, можно завершить вручную.  
Иногда зависшие процессы называются explorer.exe или svchost.exe, вот как быть с ними ?

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 21:01 17-02-2015 | Исправлено: bumburbia, 21:02 17-02-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто может подсказать, как переделать скрипт, чтобы он запускался в ThinApp. При запуске упакованной проги появляются ругательства на вторую строку.  
Сразу скажу, что Function я прописывал, просто выкладываю чистый скрипт, который нормально срабатывает в win. А вообще скрипт я взял отсюда:Скрипт  

Код:
 
Dim WshShell  
arrProcs = Array("realplay.exe", "rndlresolversvc.exe", "realsched.exe", "RealUpgrade.exe")
Set WshShell = WScript.CreateObject("WScript.Shell")
For i = 0 To Ubound(arrProcs)
    intTemp = WshShell.Run("taskkill /f /IM " & arrProcs(i), 0, True)
    Next
 

 
coherent
Подскажите, как в вашем скрипте, вот в этой строке прописать несколько процессов

Код:
 
strProcessKill = "’WINWORD.EXE’"
 

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 22:11 18-02-2015 | Исправлено: 007Alex007, 22:13 18-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007

Цитата:
При запуске упакованной проги появляются ругательства на вторую строку.

Хорошо бы посмотреть, что за ругательство. Как правило, там прямо указывается какая ошибка.
Наверное, не мешало бы определить массив:

Код:
Dim arrProcs
arrProcs = Array("realplay.exe", "rndlresolversvc.exe", "realsched.exe", "RealUpgrade.exe")


Цитата:
Подскажите, как в вашем скрипте, вот в этой строке прописать несколько процессов

Наверное никак, это строковая переменная. Но можно пойти по пути простого повторения удаления для всех 4-х процессов или использовать массив с добавлением цикла перебора имен процессов.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 10:36 19-02-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Хорошо бы посмотреть, что за ругательство

 
Source: Ошибка выполнения Microsoft VBScript
Description: Требуется объект: 'WScript'
File: (null)
Line 3, Character 0
at:
 
Line 3 - это та же строка:
arrProcs = Array("realplay.exe", "rndlresolversvc.exe", "realsched.exe", "RealUpgrade.exe")
 
пробовал убрать Array, тогда:
Source: Ошибка компиляции Microsoft VBScript
Description: Предполагается наличие ')'
Line 2, Character 26
at: arrProcs = ("realplay.exe", "rndlresolversvc.exe", "realsched.exe", "RealUpgrade.exe")  
 

Цитата:
повторения удаления для всех 4-х процессов

Не получается вылезает ошибка. Попробовал создать 4 скрипта для каждого процесса, сработало. Но это как то слишком.
 

Цитата:
использовать массив с добавлением цикла перебора имен процессов

Можно по подробнее, как это сделать?
 

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 13:02 19-02-2015 | Исправлено: 007Alex007, 13:16 19-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
Я уже с таким сталкивался. ThinApp почему-то не любит конструкцию wscript.CreateObject. Попробуйте определить WSHShell так:

Код:
Set WSHShell = CreateObject("WScript.Shell")

Массивами в скриптах, честно признаюсь, не пользовался. Но из общих соображений массив следует определить. Либо так, как я написал, либо как-то так:

Код:
Dim arrProcs(3)
arrProcs(0) = "realplay.exe"
и т.д.


Цитата:
Не получается вылезает ошибка. Попробовал создать 4 скрипта для каждого процесса, сработало. Но это как то слишком.

Под повторением имел в виду повторить кусок кода 4 раза для всех процессов

Код:
Set colProcessList = objWMIService.ExecQuery _  
     ("Select * from Win32_Process Where Name = 'realplay.exe'")  
 For Each objProcess in colProcessList  
     objProcess.Terminate()  
 Next  

Сам скрипт взять из поста bumburbia на этой странице выше.

Цитата:
Можно по подробнее, как это сделать?

Сейчас не имею возможности что-либо проверить, но из общих соображений, например как-то так:

Код:
For i = 0 To Ubound(arrProcs)
   Set colProcessList = objWMIService.ExecQuery _  
        ("Select * from Win32_Process Where Name = 'arrProcs(i)'")  
    For Each objProcess in colProcessList  
        objProcess.Terminate()  
    Next
Next

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:05 19-02-2015 | Исправлено: coherent, 14:07 19-02-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо большое за помощь, но к сожалению  не работает:
- после замены строки на Set WSHShell = CreateObject("WScript.Shell") скрипт больше не ругается, но создается впечатление, что скрипт, внутри зависших процессов, создает такие же и благополучно их удаляет, а реальные процессы остаются висеть  
- использование в скрипте WMI приводит к ошибке
  Source: Ошибка выполнения Microsoft VBScript
  Description: Требуется объект: 'objWMIService'
  File: (null)
  Line 6, Character 3
  at:
- по поводу твоего скрипта
Цитата:
повторить кусок кода 4 раза для всех процессов
, что то похожее о чем я написал про замену строки.
 
Я решил пойти другим путем. Идея такая, скрипт arrProcs копируется из портабельной проги в реальную систему, запускается, а после удаляется. В работе участвуют два скрипта:
1 - arrProcs.vbs - будет удалять зависшие процессы, а после выполнения сам удалится
2 - RUN.vbs - который будет копировать первый в реальную систему и запускать его
 
1-Скрипт arrProcs.vbs:

Код:
Dim WshShell  
arrProcs = Array("realplay.exe", "rndlresolversvc.exe", "realsched.exe", "RealUpgrade.exe")  
Set WshShell = WScript.CreateObject("WScript.Shell")  
For i = 0 To Ubound(arrProcs)  
    intTemp = WshShell.Run("taskkill /f /IM " & arrProcs(i), 0, True)  
    Next  
Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.DeleteFile("C:\arrProcs.vbs")

 
2- Скрипт RUN.vbs

Код:
Function OnFirstParentStart  
Const OverwriteExisting = True
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  objFSO.CopyFile ExpandPath("%Personal%\arrProcs.vbs") , ExpandPath("C:\"), OverwriteExisting
End Function
 
Function OnFirstParentExit  
ExecuteExternalProcess "WSCRIPT.EXE " & Chr(34) & "C:\arrProcs.vbs" & Chr(34)
End Function

 
Все работает, ни каких окон не вылезает, скрипт ни на что не ругается.
 
Но все таки хотелось, чтобы это все выполнялось в одном скрипте.
 

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 22:48 19-02-2015 | Исправлено: 007Alex007, 23:33 19-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
- после замены строки на Set WSHShell = CreateObject("WScript.Shell") скрипт больше не ругается, но создается впечатление, что скрипт, внутри зависших процессов, создает такие же и благополучно их удаляет, а реальные процессы остаются висеть

taskkill должен запускаться как внешний процесс. Для этого или задать ChildProcessEnvironmentDefault=External или включить taskkill в исключения ChildProcessEnvironmentExceptions=taskkill.ехе

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 23:45 19-02-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
У меня в сборке уже был включен параметр ChildProcessEnvironmentDefault=External, прописал туда еще и ChildProcessEnvironmentExceptions=taskkill.ехе, но все равно не работает.  
taskkill.ехе теперь появляется в диспетчере задач, и одновременно с этим появляются новые несколько realplay.exe, которые как мне кажется потом сами без помощи закрываются, а taskkill закрывает только один или два процесса, а остальные причем одни и те же (rndlresolversvc.exe, realsched.exe) продолжают висеть.  
 
Вот если бы в скрипт прописать к taskkill параметр /T (Завершение указанного процесса и всех его дочерних процессов)  
вот в эту строку:
 intTemp = WshShell.Run("taskkill /f /IM " & arrProcs(i), 0, True)
пробовал так не работает:
 intTemp = WshShell.Run("taskkill /f /IM /T" & arrProcs(i), 0, True)

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 00:37 20-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007

Цитата:
У меня в сборке уже был включен параметр ChildProcessEnvironmentDefault=External, прописал туда еще и ChildProcessEnvironmentExceptions=taskkill.ехе

При таких параметрах taskkill.ехе будет запускаться в виртуальном контейнере. Исключение подразумевало, что задан параметр ChildProcessEnvironmentDefault=Virtunal в явном или неявном виде и ChildProcessEnvironmentExceptions=taskkill.ехе.
 
Я когда-то пробовал использовать WshShell.Run и по памяти проблема как раз и была с запуском внешних процессов. Хотя, казалось бы, параметр ChildProcessEnvironmentDefault=External должен бы решать эту задачу. Но видно есть какой-то нюанс, но для этого надо предметно экспериментировать.
 
Правильно было бы запускать taskkill.ехе через ExecuteExternalProcess. Это точно сработает. Но я так понимаю, не нравится консольное окно. Можно попробовать запуск через hstart.exe, которая скрывает консольное окно. Под рукой нет, но я когда-то в теме выкладывал.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 11:02 20-02-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent

Цитата:
Но я так понимаю, не нравится консольное окно

Да именно так.
 
Вот как сейчас выглядит скрипт:

Код:
Function OnFirstParentExit
Dim WshShell
Dim arrProcs  
arrProcs = Array("realplay.exe", "rndlresolversvc.exe", "realsched.exe", "RealUpgrade.exe")  
Set WshShell = CreateObject("WScript.Shell")  
For i = 0 To Ubound(arrProcs)  
    intTemp = WshShell.Run("taskkill /f /IM " & arrProcs(i), 0, True)  
    Next  
End Function
 
 
По скрипту (два в одном), о котором я писал ранее - попробовал запустить программу на машине обычного пользователя, скрипт не смог скопировать файл в реальную систему и начал ругаться о правах.  
Вопрос:  как скопировать arrProcs.vbs из папки проекта %Personal% в папку песочницы и там его запустить. Да и стоит ли это делать, насколько я понимаю скрипт будет в изоляции и все реальные процессы опять не удаляться.  
Пробовал прописывать параметр UACRequestedPrivilegesLevel=highestAvailable, не помогло.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 16:13 20-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007

Цитата:
как скопировать arrProcs.vbs из папки проекта %Personal% в папку песочницы и там его запустить.

А зачем именно в папку песочницы? Вынести рядом с исполняемым ехе-файлом сборки и там запускать. Тем более, что он потом удаляется.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 16:38 20-02-2015 | Исправлено: coherent, 16:41 20-02-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent

Цитата:
Вынести рядом с исполняемым ехе-файлом сборки

Прошу прощения, но я не понял о чем речь.  
Если имеется ввиду положить файл в одну из папок проекта %ProgramFilesDir%\Real\RealPlayer\realplay.exe, то там у меня DirectoryIsolationMode=Full, боюсь даже представить, что прога (именно эта прога) наворотит в реальной системе после запуска, если поставить DirectoryIsolationMode=Merged.  
И кроме того, я же написал:

Цитата:
попробовал запустить программу на машине обычного пользователя, скрипт не смог скопировать файл в реальную систему и начал ругаться о правах.  

Поэтому и спрашиваю:

Цитата:
как скопировать arrProcs.vbs из папки проекта %Personal% в папку песочницы и там его запустить

 

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 17:39 20-02-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007

Цитата:
Прошу прощения, но я не понял о чем речь.

Вынести скрипт в реальную систему, рядом с исполняемым ехе-файлом портативной сборки!
Песочница - дело хитрое. Когда в теме решали "хотелку" выноса файлов в песочницу. Там свои проблемы.
ps. Если полистать тему, то можно найти много готовых решений.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 19:50 20-02-2015
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, может ли сабж решить такую проблему.  
Есть две машины. На одной в Региональных настройках в качестве Language for non-Unicode programs стоит Russian. На другой - German.
 
Можно ли сделать так, чтобы портабельная сборка, собранная на одной из этих машин и затем запущенная на второй, вела себя в соответствии с Language for non-Unicode programs на исходной машине, а не на реальной хостовой?
 
Не знаю, сумел ли внятно объяснить, чего хочу. Если нет, скажите, постараюсь объяснить дополнительно.
 
Спасибо!

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 13:46 27-02-2015
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oshizelly
зависит от того, где программа берёт эту информацию. Если просто проверяет ключ в реестре, то можно. А если через WinAPI то нет.

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 19:15 01-03-2015
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123 18:15 01-03-2015
Цитата:
зависит от того, где программа берёт эту информацию. Если просто проверяет ключ в реестре, то можно. А если через WinAPI то нет.

К сожалению, не знаю, какой способ проверки используется для считывания данных настройки Language for non-Unicode programs из Региональных настроек. А как это можно выяснить?

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 20:46 01-03-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
доброе время суток, уважаемые камрады!
хочу углубиться в изучение сабжа и для начала кое что собрать под свои нужды.
 
вопрос: есть инсталятор софтины, уже пролеченый, русифицированный.
как лучше сделать, расковырять его потроха и уже потом собрать в ThinApp или сделать его установку с захватом, а уже потом пытаться вычистить ненужное пабло-командером?
(планируется использовать ThinApp 5)
 
еще вопрос: какой тип изоляции выбирать:
софтину нужно максимально отгородить от вмешательства в хостовую ОС, всё что ей можно разрешить это открывать файлы с диска для модификации и впоследствии их же сохранять.
 
заранее благодарю!

----------
animelist

Всего записей: 7430 | Зарегистр. 11-03-2004 | Отправлено: 20:42 05-03-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngelNet

Цитата:
как лучше сделать, расковырять его потроха и уже потом собрать в ThinApp или сделать его установку с захватом, а уже потом пытаться вычистить ненужное пабло-командером?

 
Второй вариант. В принципе, можно сначала и расковырять, но всё равно захват делать придётся, хотя бы для того, чтобы данные изменений реального реестра конвертировались в ветки виртуального.
К тому же, софтина при захвате начнёт работу и создаст в ОС необходимые папки, которым ThinApp предложит вариант изоляции относительно базовых настроек захвата. Если это проигнорировать, то, новые, неучтённые захватом папки могут оказаться в целевой системе.
 

Цитата:
софтину нужно максимально отгородить от вмешательства в хостовую ОС

 
При любой изоляции, в принципе, софтина и так огорожена от вмешательства в ОС. Вопрос лишь в том, куда ещё софтина не должна будет совать свои следы пребывания, а здесь универсального шаблонного подхода нет. Можно выставить изначальную дефолтную изоляцию WriteCopy, но, тогда есть риск, что результаты работы программы так же будут сохранятся в песочнице. Другими словами, тогда нужно идти по иному методу "от обратного" и править файлы ##Attributes.ini в каждой интересуемой папке проекта. Так же, придётся подумать о том, что некоторые интересуемые недостающие папки с файлами ##Attributes.ini придётся создать, чтобы всё работало как надо.
Можно оставить дефолтную изоляцию проекта Merged, но тогда будут защищены исключительно системные папки, а всё остальное доступно для записи, включая общие папки и места на компе (включая системный диск). К тому же, есть разность в работе софта на различных осях. В Win7, к примеру, по дефолту не защищается папка Documents and Settings, так как считается, что к ней нет прямого доступа юзера. Этот  доступ заменён папкой Users... Вообще деталей много, особенно если рассматривать архитектуры или самые новые варианты ОС, где установленную софтину даже нельзя штатно сделать программой "по умолчанию". Стоит изучить и углубиться в параметры Package.ini самой будущей сборки, так как собираемый софт, прежде всего, должен хотя бы запускаться и выполнять задачи без аварийного завершения. Ну, и, к слову,  выгружаться тоже должен без проблем.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:21 05-03-2015 | Исправлено: AVanti473, 21:32 05-03-2015
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngelNet
не хочу обидеть, но прочтите сначала FAQ по созданию портативок от Astra55. Тогда подобных вопросов у вас возникать не будет.

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 23:35 05-03-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123
читал, но хотелось бы услышать и мнения сборщиков, плюсы и минусы, чтобы так сказать всё обдумать и взвесить.
в любом случае спасибо за совет, обновил версию FAQ-а себе.

----------
animelist

Всего записей: 7430 | Зарегистр. 11-03-2004 | Отправлено: 15:50 06-03-2015 | Исправлено: AngelNet, 13:03 08-03-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Прошу прощения, что так долго не отвечал и хочу сразу поблагодарить за оказанную помощь. «Хотелка» очень интересная штука, но не помогла при копировании arrProcs.vbs в песочницу или рядом с запускаемым EXE, при запуске скрипта происходит тоже самое, о чем я писал ранее.
Возможно, с  моим скриптом так ничего толкового не вышло, но зато благодаря его исследованию я узнал много нового для себя, в частности создания скриптов. Вот хочу для всех, поделиться не которыми скриптами:
 
1.    Отличный скрипт для удаления зависших процессов, работает без консольных окон. Скрипт найден на этом форуме, я лишь добавил в него параметр «0», чтобы при его работе не было видно консольных окон:

Код:
Function OnFirstParentExit  
Dim WshShell  
set WshShell = CreateObject("WScript.Shell")  
WshShell.run "taskkill /F /IM realplay.exe /IM rndlresolversvc.exe /IM realsched.exe /IM RealUpgrade.exe /T",0  
End Function

 
2.    Думаю, скрипт MUICacheCreate здесь знаком многим, он нужен для очистки следов после запуска портативки в ветке реестра MUICache. Я этот скрипт апгрейдил (склеил из разных скриптов) и теперь он не просто удаляет ветку MUICache, а сначала бэкапит ее и после завершения работы портативки удаляет ветку MUICache из реестра и возвращает забэкапенную ветку на место. Кроме того, старый скрипт работал только для Windows XP, а этот работает и для Windows7 (может и для Win8 не проверял):
 

Код:
BackupRegXP = ExpandPath("%Personal%\MUICacheBackupXP.reg")
BackupReg7 = ExpandPath("%Personal%\MUICacheBackup7.reg")  
 
Function OnFirstParentStart  
  WaitForProcess ExecuteExternalProcess("regedit /e " & chr(34) & BackupRegXP & chr(34) & " ""HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache"""), 0
  WaitForProcess ExecuteExternalProcess("regedit /e " & chr(34) & BackupReg7 & chr(34) & " ""HKEY_CURRENT_USER\Software\Classes\Local Settings\MuiCache"""), 0
End Function
 
Function OnFirstParentExit
RegFileNameXP = ExpandPath("%Personal%\MUICacheDelXP.reg")
RegFileName7 = ExpandPath("%Personal%\MUICacheDel7.reg")
Set fso = CreateObject("Scripting.FileSystemObject")  
Set RegFileXP = fso.CreateTextFile(RegFileNameXP, true)  
RegFileXP.WriteLine("Windows Registry Editor Version 5.00")  
RegFileXP.WriteBlankLines(1)  
RegFileXP.WriteLine("[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache]")  
RegFileXP.WriteBlankLines(1)  
RegFileXP.Close
Set RegFile7 = fso.CreateTextFile(RegFileName7, true)  
RegFile7.WriteLine("Windows Registry Editor Version 5.00")  
RegFile7.WriteBlankLines(1)  
RegFile7.WriteLine("[-HKEY_CURRENT_USER\Software\Classes\Local Settings\MuiCache]")  
RegFile7.WriteBlankLines(1)  
RegFile7.Close
RegEditPidXP = ExecuteExternalProcess("regedit /s " & chr(34) & RegFileNameXP & chr(34))  
WaitForProcess RegEditPidXP, 0
RegEditPid7 = ExecuteExternalProcess("regedit /s " & chr(34) & RegFileName7 & chr(34))  
WaitForProcess RegEditPid7, 0  
fso.DeleteFile(RegFileNameXP)
fso.DeleteFile(RegFileName7)
End Function
 
Function OnLastProcessExit
Set fso = CreateObject("Scripting.FileSystemObject")
RegEditPidXP = ExecuteExternalProcess("regedit /s " & chr(34) & BackupRegXP & chr(34))
RegEditPid7 = ExecuteExternalProcess("regedit /s " & chr(34) & BackupReg7 & chr(34))
WaitForProcess RegEditPidXP, 0
WaitForProcess RegEditPid7, 0
On Error Resume Next  
fso.DeleteFile(BackupRegXP)
On Error Resume Next  
fso.DeleteFile(BackupReg7)  
End Function

 
3.    И наконец скрипт PrefetchBackup.vbs для очистки папки Prefetch. Я здесь, когда то спрашивал о таком скрипте, мне так никто и не ответил, поэтому решил сделать сам. Скрипт копирует, бэкапит все содержимое папки Prefetch, в другую папку, затем очищает оригинальную папку, а после завершения работы портативки копирует обратно файлы из забэкапенной папки. Конечно, проще было бы через копирование папки, а не файлов, но один раз я столкнулся с проблемой возврата папки, система написала «отказано в доступе», а через копирование файлов такого пока что не было.  
Перед тем как использовать скрипт PrefetchBackup.vbs, нужно обязательно, перед тем как произвести сборку проекта, в папку проекта %SystemRoot% добавить папку Prefetch и установить в ##Attributes.ini параметр Merged. Если этого не сделать то при восстановлении файлы будут попадать не в реальную систему, а в песочницу.  
 

Код:
Function OnFirstParentStart
SourceFolder = "C:\WINDOWS\Prefetch"  
DestFolder = ExpandPath("%Personal%\Prefetch")              
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
 
If not FSO.FolderExists(SourceFolder) Then
MsgBox ("Не найден или не указан источник файлов")
WScript.Quit
End If
If not FSO.FolderExists(DestFolder) Then
FSO.CreateFolder DestFolder
End If
If Err.Number <> 0 Then
MsgBox ("Не верно указан целевой каталог: " & DestFolder)
WScript.Quit
End If
 
Set Files = FSO.GetFolder(SourceFolder).Files
For Each f In Files
    If Not FSO.FileExists(DestFolder + "\" + f.Name) Then FSO.CopyFile f, DestFolder + "\" + f.Name, True
Next
set SourceFolder = fso.getfolder(SourceFolder)
for each rf in SourceFolder.subfolders
  on error resume next
  call fso.copyfolder(rf, DestFolder & "\" & rf.name)
Next
End Function
 
Function OnFirstParentExit
Set WshShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\WINDOWS\Prefetch")
Set colSubfolders = objFolder.Subfolders
For Each objSubfolder in colSubfolders
errResults = objSubfolder.Delete
Next
Set files_col = objFolder.files
For each file_obj in files_col
file_obj.delete(true)
Next
End Function
 
Function OnLastProcessExit
SourceFolder = ExpandPath("%Personal%\Prefetch")                        
DestFolder = "C:\WINDOWS\Prefetch"                                
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Files = FSO.GetFolder(SourceFolder).Files
For Each f In Files
    If Not FSO.FileExists(DestFolder + "\" + f.Name) Then FSO.CopyFile f, DestFolder + "\" + f.Name, True
Next
set SourceFolder = fso.getfolder(SourceFolder)
for each rf in SourceFolder.subfolders
  on error resume next
  call fso.copyfolder(rf, DestFolder & "\" & rf.name)
Next
  Set objFSO = CreateObject("Scripting.FileSystemObject")  
  objFSO.DeleteFolder ExpandPath("%Personal%\Prefetch")  
End Function  

 
Если есть возможность, протестируйте эти скрипты, вдруг я, где то, что то упустил.
 
Теперь по поводу версии ThinApp 5.1. Многие скрипты не работают в распакованной версии 5.1 (пробовал и которая здесь выкладывалась и свою), а в инсталляционной работают. Но сжатие прог начиная с версии 5, почему то сказывается отрицательно на их дальнейшую работоспособность (не со всеми, но например FontExpert выдает ошибку при запуске), например на версии 4.7.3 работает нормально.
 
И еще может, стоит добавить в шапку подборку всех скриптов, которые выкладывались в теме (я не про свои, их бы надо по тестировать). Еще я заметил, что в шапке до сих пор красуется версия ThinApp 5.0.1, а не 5.1.
 
Добавлено:
AngelNet
Краткая инструкция:
- запускаешь ThinApp
- Prescan (по окончанию сканирования не закрывай окно)
- после сканирования устанавливаешь свою прогу, лечишь, руссифицируешь и т.д.
- возвращаешься в окно ThinApp – Postscan
- после сканирования выбираешь EXE для запуска проги - Next
- поскольку тебе надо
Цитата:
софтину нужно максимально отгородить от вмешательства в хостовую ОС
ставишь галочку напротив Restricted…. - Next
-  ставишь галочку возле Same directory…. (чтобы на флешке носить) – Next
-  ставишь галочку возле No-Do not send…(чтобы не отправлять инфу разработчикам)– Next
- Next – Next – Build  
- открываешь папку с проектом, он находиться в установленной ThinApp в папке Captures
- там найдешь папку Bin в ней и находится портабелка твоей проги.
Все остальное как правильно указал regist123 есть в шапке FAQ ThinApp Spoon 3.0 Astra и Русский перевод мануала по VMware ThinApp версии 5.1.0 + перевод справочника по параметрам Package.ini от pavlaf

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 23:25 06-03-2015 | Исправлено: 007Alex007, 00:35 07-03-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007

Цитата:
в шапке до сих пор красуется версия ThinApp 5.0.1, а не 5.1

FIXED.
 
и спс за советы и мануал от pavlaf.
 
p.s. картинку для лого в шапке не нашёл официальную ибо без понятия какая она раньше там была.
кто имеет об этом представление - добавьте пожалуйста.

----------
animelist

Всего записей: 7430 | Зарегистр. 11-03-2004 | Отправлено: 17:01 07-03-2015 | Исправлено: AngelNet, 13:03 08-03-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngelNet

Цитата:
p.s. картинку для лого в шапке не нашёл официальную ибо без понятия какая она раньше там была.

 
А зачем надо было фиксить? Ну да ладно, у каждого свои дела. Вот картинка:
 
 

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 17:39 07-03-2015 | Исправлено: AVanti473, 17:40 07-03-2015
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добавлю, что у pavlaf было ещё оформленное в CHM FAQ от Astra55. В шапке его вроде не видно, а CHM имхо удобней.

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 18:07 07-03-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
я не трогал старую ссылку на картинку в шапке. лишь обновил версию и билд (цифры) и изменил ссылку на описание с релизом.
(видимо радикал, куда загружена шапочная картинка глючило в какой то момент и он не отдал изображение. сейчас я вижу пикчу в шапке).
---
regist123
просто PDF перегнаный в CHM или есть какие то отличия?

----------
animelist

Всего записей: 7430 | Зарегистр. 11-03-2004 | Отправлено: 20:37 07-03-2015 | Исправлено: AngelNet, 13:03 08-03-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473

Цитата:
А зачем надо было фиксить?

Надо идти в ногу со временем

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 20:45 07-03-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngelNet

Цитата:
я не трогал старую ссылку на картинку в шапке. лишь обновил версию и билд

 
007Alex007

Цитата:
Надо идти в ногу со временем

 
Да ладно вам друзья ))) Было бы из-за чего. ))) Ну пусть будет что я не прав - это же не принципиально )))) Учитывая особенности различных версий ThinApp, они все актуальны по своему.
Кто-то собирает в 4.0.4, кто-то предпочитает линейку 4.6, кто-то уверен что последняя исключительно для (х86) 4.7.3 лучше новых, кто-то нашёл баги в 5.0.1, а кто-то уверен, что последняя 5.1 именно та, с которой стоит начинать. На самом деле здесь всё субъективно, да и мануалы последнего релиза имеют отличия и дополнения. Благо pavlaf проделал колоссальнейшую работу, чтобы нас с этим познакомить. Да и то, благодаря чистому интузиазму многих присутствующих.
Иными словами, я бы советовал начать обзор не с исторического FAQ, а именно с мануала, да ещё с той его части, где сопоставляются папки реальной системы с папками проекта. На первый взгляд там ничего сложного, но, именно здесь кроется первый ключ. Дальше, неплохо было бы рассмотреть различия проектов сделанных в версии 4.7.3 и проектов в последней 5.1. Только после этой визуальной оценки переходить к пониманию изоляции и отдельно файлов ##Attributes.ini Сразу после этого прикоснуться к изучению параметров Package.ini И собирать, собирать и ещё раз собирать разные программки. Умение придёт со временем, а когда придёт, можно познакомиться и с полезными скриптами!
Не знаю почему это пишу, никого не учу, просто настроение хорошее!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:13 07-03-2015
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На мой вопрос недельной давности так никто и не ответит?

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 13:08 08-03-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
На мой вопрос недельной давности так никто и не ответит?

 
Как можно ответить на вопрос, если он не имеет логики?
Причём здесь портабелизация и работа самой софтины? Лично я видел этот вопрос, но что я Вам могу подсказать?
 
Самое простое, и возможно единственное, это следующие параметры Package.ini:
 
AnsiCodePage=1251
LocaleIdentifier=1049
LocaleName=ru-RU
 
Но, опять же, это просто инфа о кодировке на машине, на которой создавался потрабл. Как сама портабельная программа её использует и использует ли вообще - загадка требующая разъяснений самих разрабов.
 
Пробуйте, меняйте данные параметры, собирайте, запускайте, смотрите что выйдет. Наверняка эти параметры там не просто для красоты. Скорее всего, портабельный контейнер с их помощью помогает более корректно отобразить фейс программы, но на деле, не разу не смог заметить как они реально на что-то могут влиять. Впрочем, я не особо и приглядывался. Раз они есть - пробуйте! Либо, ещё вариант, закомментируйте их нафиг, как это делает большинство сборщиков - типа так:
 
;AnsiCodePage=1251
;LocaleIdentifier=1049
;LocaleName=ru-RU
 
может тогда система сама начнёт верно взаимодействовать с программой.....
 
P.S. Данные параметры дстаточно подробно описаны в мануале, переведённом pavlaf, ссылка на который есть в шапке. Но и из описания не всё так однозначно понятно...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 19:26 08-03-2015 | Исправлено: AVanti473, 19:29 08-03-2015
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473 19:26 08-03-2015
Цитата:
Либо, ещё вариант, закомментируйте их нафиг, как это делает большинство сборщиков - типа так:  
;AnsiCodePage=1251  
;LocaleIdentifier=1049  
;LocaleName=ru-RU  
может тогда система сама начнёт верно взаимодействовать с программой.....

Спасибо за разъяснения Всё-таки уточню, что у меня была как раз обратная задача: заставить портабельное приложение игнорировать номер (язык) кодовой страницы в региональных настройках текущей хостовой системы, а брать его из настроек на исходной машине, зафиксированных в параметрах портабельной сборки. Вот вам, например, удалось хоть раз такогоо добиться?

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 20:01 08-03-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вот вам, например, удалось хоть раз такогоо добиться?

Мне сложно вести беседу об одном и том же, но на разных языках...

Цитата:
заставить портабельное приложение игнорировать номер (язык) кодовой страницы в региональных настройках текущей хостовой системы, а брать его из настроек на исходной машине

Тоесть, а я выше о чём писал?
Если приложение и может как-то зафиксировать кодовую страницу ИСХОДНОЙ МАШИНЫ, то исключительно с помощью описанных мною выше параметров и НИКАК иначе. А вот работают эти параметры, или не работают, об этом я тоже писал. Вообще любому приложению наверное сложно игнорировать настройки кодовой страницы хостовой системы, ибо оно выходит на экран именно согласно им. Но, для каких-то целей ThinApp включает в Package.ini сведения о кодовой странице ИСХОДНОЙ МАШИНЫ, причём оставляет их незакомментированными (читать используемыми).
Иначе, я уже не знаю как Вам более подробно объяснить...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:16 08-03-2015
GodKiller222

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, у приложения, которое делаю портабельным есть плагины - просто кидаются в папку с программой и она их использует. Как добиться такого же функционала на портабл-версии, т.е. "пробросить" в портабл-версию папку из которой она запускается?

Всего записей: 6 | Зарегистр. 19-05-2014 | Отправлено: 22:37 08-03-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GodKiller222
 
В Package.ini приложения, которое вы делаете портабельным есть строка:
;OptionalAppLinks=plugins\*.exe
Для начала, её нужно расскомментировать, тоесть убрать в её начале точку с запятой.
 
Плагин к приложению должен быть создан так же как и основное приложение, путём сборки в ThinApp, но отдельной сборкой.
 
Рядом с основным exe-шником портабельного приложения создайте папку plugins и поместите в неё портабельную версию плагина. Всё, основное приложение его увидит при запуске.
 
Портабельный плагин в описанном случае должен иметь расширение .exe, либо исправьте изначально запись параметра в Package.ini на необходимое расширение, или, вообще на любое возможное, например, так:
OptionalAppLinks=plugins\*.*
 
Подробнее в бессмертном FAQ

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:13 08-03-2015 | Исправлено: AVanti473, 23:15 08-03-2015
GodKiller222

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
Спасибо, что гневно не набросились с "RTFM!", но этот метод к сожалению не подходит:

Цитата:
Плагин к приложению должен быть создан так же как и основное приложение, путём сборки в ThinApp, но отдельной сборкой.  
В этом-то все дело, плагинов не один десяток, и кто какие будет использовать - неизвестно. Да и не станешь ведь сотню плагинов специально для AppLinks делать, и всюду таскать за портабл-версией - это маразм. Поэтому и хотелось бы именно "проброса" из реальности в виртуал.

Всего записей: 6 | Зарегистр. 19-05-2014 | Отправлено: 23:58 08-03-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
реквестирую плагин с NET 4.5.1/2 для ThinApp, мб есть у кого готовый?

----------
animelist

Всего записей: 7430 | Зарегистр. 11-03-2004 | Отправлено: 00:28 09-03-2015
freedaw



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oshizelly

Цитата:
заставить портабельное приложение игнорировать номер (язык) кодовой страницы в региональных настройках текущей хостовой системы, а брать его из настроек на исходной машине, зафиксированных в параметрах портабельной сборки.

Пока не совсем понятно, зачем это нужно и что должно получаться в итоге.
Первое, что приходит в голову - подсунуть в реестр сборки перед компиляцией ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage с исходной машины с изоляцией Full, а может и всю ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls.
А также положить сами .nls файлы в папку %SystemSystem% (можно не все, а только те, которых не окажется в хостовой системе).
Попробуйте, может прокатит.

Всего записей: 788 | Зарегистр. 04-11-2012 | Отправлено: 00:49 09-03-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Поэтому и хотелось бы именно "проброса" из реальности в виртуал.

 
Не вопрос, тогда ещё два варианта... Исходим из того, что плагин, это просто файлы, которые надо подбросить приложению.
1 вариант) Открываем портабельное приложение -> Через меню "Файл" вызываем любой диалог открытия, поиска или сохранения файлов -> Не выходя никуда из окна этого диалога находим свои файлы плагинов и копируем из в нужное для подключение системное место. Файлы окажутся в песочнице и будут видны приложению. Главное, всё сделать именно в рамках диалога открытия, поиска или сохранения файлов!
 
2 вариант) Если ваша портабельная программа, поддерживает подключение плагинов (как это сделать я описывал ранее) -> подключите к ней любой портабельный файлменеджер и с его помощью отправьте в нужные места нужные вам файлы плагинов. Таким макаром можно даже попробовать установить плагины (требующие инсталляции) в приложение.  
 
3 вариант) Используйте это, только внимательно прочтите и поймите что к чему. Возможно, отпадёт необходимость в самой портабелизации нужного приложения через ThinApp
 
4 вариант) Spoon Studio Вам в помощь. В ней можно подсовывать файлы плагинов напрямую в песочницу.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 07:28 09-03-2015 | Исправлено: AVanti473, 07:36 09-03-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GodKiller222

Цитата:
Поэтому и хотелось бы именно "проброса" из реальности в виртуал.

Если Вы сами собираете сборки, то самый элементарный метод, ИМХО, добавлять в такие сборки Pablo Commander (всего 1 файл), на который сделать линк в Package.ini. И с его помощью добавлять и удалять что хотите и куда хотите. И учесть, что он должен запускаться как виртуальный процесс, если используется параметр ChildProcessEnvironmentDefault=External.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 12:18 09-03-2015
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
23:49 08-03-2015
Цитата:
подсунуть в реестр сборки перед компиляцией ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage с исходной машины с изоляцией Full, а может и всю ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls.  
А также положить сами .nls файлы в папку %SystemSystem% (можно не все, а только те, которых не окажется в хостовой системе).

Попробовал, но у меня не получается ясной картины. Оно и неудивительно: у меня по ThinApp ни знаний, ни опыта.
 
All
Может ли кто-то из более опытных юзеров проверить эту гипотезу?
Спасибо!
 
Добавлено:
freedaw 23:49 08-03-2015
Цитата:
Пока не совсем понятно, зачем это нужно и что должно получаться в итоге.

Как я уже писал в самом начале, Это надо чтобы и в итоге должно получиться вот это:
Есть две машины. На одной в Региональных настройках в качестве Language for non-Unicode programs стоит Russian. На другой - German.  
Можно ли сделать так, чтобы портабельная сборка, собранная на одной из этих машин и затем запущенная на второй, вела себя в соответствии с Language for non-Unicode programs на исходной машине, а не на реальной хостовой? Есть приложение, у которого языковые функции нормально работают только на "немецкой" системе, а под русской локалью не хотят.
 

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 20:59 09-03-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Может ли кто-то из более опытных юзеров проверить эту гипотезу?

 
А до этого, значит, здесь любители отвечали )))))))
 

Цитата:
Оно и неудивительно: у меня по ThinApp ни знаний, ни опыта.

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

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 21:45 09-03-2015
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freedawFull Member 01:49 09-03-2015
Цитата:
Первое, что приходит в голову - подсунуть в реестр сборки перед компиляцией ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage с исходной машины с изоляцией Full, а может и всю ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls.

сработает, только в случае если программа проверяет это в реестре, а если через АПИ то нет, об этом уже написал на предудущей странице.

Цитата:
А также положить сами .nls файлы в папку %SystemSystem% (можно не все, а только те, которых не окажется в хостовой системе).  Попробуйте, может прокатит.

а что тут должно прокатить? Чего вы надеялись этим добиться?  
AVanti473Advanced Member 20:26 08-03-2015
Цитата:
Как можно ответить на вопрос, если он не имеет логики?  Причём здесь портабелизация и работа самой софтины? Лично я видел этот вопрос, но что я Вам могу подсказать?

+1

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 22:09 09-03-2015
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123 21:09 09-03-2015
Цитата:
 сработает, только в случае если программа проверяет это в реестре, а если через АПИ то нет, об этом уже написал на предудущей странице.

Да, я видел. И попросил уточнить, как это можно определить - но ответа так и не дождался
Если что, это не претензия, а просто констатация факта.
 


Цитата:
Как можно ответить на вопрос, если он не имеет логики? Причём здесь портабелизация и работа самой софтины?  

+2
Однако действительно ли мой вопрос не имеет логики? Подробнее...

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 23:13 09-03-2015 | Исправлено: oshizelly, 23:17 09-03-2015
GodKiller222

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Не вопрос, тогда ещё два варианта...
Как я не догадался, все просто, как орбит "кривые костыли"))
1. Это извращение. С чужими можно, а со своей так не хочется.
2. Уже не такое порно, но хотелось бы автоматизировать. Думал над vbs-кой или самому написать, что-то простенькое - чтоб проверяло, что лежит возле портабла и копировало в себя. Но то ли у меня не получилось, то ли у нее.
3. Для личного пользования - очень полезная вещь, но для себя-то у меня и так все собирается.
4. Thinapp приглянулся. Очень мощный и в то же время простой, как три рубля. Да и недавний иск к Vmware дает моральный повод им пользоваться))

Цитата:
И учесть, что он должен запускаться как виртуальный процесс, если используется параметр ChildProcessEnvironmentDefault=External.
Это и странно. Отсутствие "портала в реальность" абсолютно необоснованно с точки зрения безопасности, логики и здравого смысла. Я-то думал есть пара слабо документированных параметров, которые я проглядел, а тут все страньше и страньше, как говорила Алиса...
 
ЗЫ. Сегодня столкнулся с еще одной бякой - без определения CommandLine exe-шник правильно принимает все параметры ком.строки. Если ему один в ней прописать - наглухо отказывается принимать остальные, хотя по всем faq и help-ам должен. Может из-за того, что портабл=exe+dat, но EntryPoint, насколько я понимаю - все равно exe-шник и dat-у это прописывать необязательно...

Всего записей: 6 | Зарегистр. 19-05-2014 | Отправлено: 12:06 10-03-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
пишу сюда, т.к. мне кажется этот топик наиболее близок к моему вопросу:
использование сабжа + пабло командера накладывает какие либо ограничения помимо того что "павлик" виснет когда заходишь внутрь папок с русскими названиями?
и как это обойти подскажите.
 
запускал павлика на голой семерке без сабжа, при попытке обзора русскоязычных папок он в них входит, после чего дальнейшая навигация становится невозможной.

----------
animelist

Всего записей: 7430 | Зарегистр. 11-03-2004 | Отправлено: 14:12 10-03-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngelNet
Похоже Pablo Commander 7-ку не поддерживает.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 14:39 10-03-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Похоже Pablo Commander 7-ку не поддерживает.

Этот поддерживает до 8.1, дальше не проверял.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 16:11 10-03-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia
благодарю, а где взяли его не подскажете?

----------
animelist

Всего записей: 7430 | Зарегистр. 11-03-2004 | Отправлено: 16:40 10-03-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngelNet
Где-то когда-то на форуме и скачал, если не ошибаюсь, его выкладывал maK.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 16:47 10-03-2015
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oshizellyGold Member 00:13 10-03-2015
Цитата:
Однако действительно ли мой вопрос не имеет логики?

oshizelly
если вам не понятно, то поясню. Если вы тут задаете вопрос, по работе ThinApp то с большой долей вероятности получите на него ответ. А когда задаете вопрос как работает какая-то программа, которая отношения к сабжу не имеет, да и ещё и не известно, что за программа, то логично что ответа так и не дождётесь.
На это AVanti473 и указал, что к этой теме ваш второй вопрос не относится. В какой теме его правильно задавать я не знаю.
Как вариант (возможно и самый быстрый) опять таки как указал AVanti473 это просто взять самому собрать портативку и проверить сработает или нет.
 
 

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 19:29 10-03-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bumburbia
Странная версия Pablo Commander. Кто ее делал? А вообще не пойму чего все так подсели (именно в ThinApp) на эту прогу, ведь сейчас таких мини файл менеджеров уйма.
 
 
Ну и наконец, мне кажется доставший многих старожилов, вопрос:
- кто подскажет как портабелизировать UltraIso, чтобы была возможность создать в реальной системе виртуальный CD (только не надо говорить, что в свое время это делал vyachko, об этом на форумах пишут все, но нигде нет вразумительного ответа). Просмотрел все страницы посвященные ThinApp и ни чего не нашел, кроме вот таких строк в батнике:
 
register.bat  
loader.exe sysdriver "%~dp0\sysdriver.sys"  
-------------  
unregister.bat  
loader.exe sysdriver delete  
 
Что за зверь loader.exe?  
Может кто подскажет как зарегистрировать sys файлы в реальной системе, ну или если есть у кого то реальный пример сборки, может выложит ее?  

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 21:30 10-03-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007

Цитата:
 А вообще не пойму чего все так подсели (именно в ThinApp) на эту прогу

 
Кто все? Я её терпеть не могу. Эта мода пошла от других пользователей сайта. Почему? Ну, это их выбор, кто ж в праве осуждать?
 

Цитата:
кто подскажет как портабелизировать UltraIso, чтобы была возможность создать в реальной системе виртуальный CD

 
Я не дока, но, насколько мне помниться, такие проги ставят в систему драйвер, типа SPTD, а вот как раз установку драйверов ThinApp и не поддерживает. Собственно для этого дела и используется костыль лоадера, который втыкает драйвер в систему до запуска портабельной программы, и выгружает его после закрытия софтины...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 22:37 10-03-2015
GodKiller222

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ну или если есть у кого то реальный пример сборки, может выложит ее?
На PortableAppZ есть совершенно реальный пример портабельной сборки последней версии UltraIso c запуском виртуальных CD на любой системе))
Да и по моему вопросу видел ThinApp-овские сборки с пробросом. Видимо, все же "до этого, значит, здесь любители отвечали )))))))" (c)AVanti473

Всего записей: 6 | Зарегистр. 19-05-2014 | Отправлено: 22:48 10-03-2015 | Исправлено: GodKiller222, 22:55 10-03-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GodKiller222
к сожалению, могу вам сказать из личного опыта, что сборки от PortableAppZ (в отличие от сабжа при правильной настройке) гадят в хостовую ОС, поэтому были мною забракованы.
 
как вам правильно заметили выше: возможно такое решение имеет место, но это не значит что раз оно запускается и эмулирует дисководы, следы ее жизнедеятельности (в виде те же дров) не останутся у вас на ПК.

----------
animelist

Всего записей: 7430 | Зарегистр. 11-03-2004 | Отправлено: 22:55 10-03-2015
GodKiller222

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngelNet
Из личного опыта, В моем VirtualBox-е (XP, 7) UltraIso от PAppZ заменяет виртуальную папку обмена (VBox-а) своим виртуальным дисководом. А после корректного выхода из него, виртуальный дисковод превращается обратно в папку обмена (без перезагрузок и т.д.). Следы может и остаются (в какой вындовс их нет, следов этих), но сделано все очень грамотно.
ЗЫ. Диспетчер Устройств любого вындовса хранит записи о подключаемых к нему устройствах (даже на разных портах), ЕМНИП нужно включать специальную переменную и удалять "следы" этих устройств, но и тогда следы где-нибудь да останутся. По-другому просто не получится.

Всего записей: 6 | Зарегистр. 19-05-2014 | Отправлено: 23:09 10-03-2015 | Исправлено: GodKiller222, 23:28 10-03-2015
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Многоуважаемый и высокопрофессиональный GodKiller222!   AngelNet, вам пытался сказать, что PortableAppZ, это совершенно другая технология портабелизации. В ней, приложения получаются переносными, но они работают не в контейнерах, а в реальной системе. Иными словами, приложение PortableAppZ полностью взаимодействует с системой, а по завершению просто удаляет все следы взаимодействия. Нравится вам так - пожалуйста, но это тема не данного топика на мой взгляд.
 

Цитата:
Да и по моему вопросу видел ThinApp-овские сборки с пробросом.

Будьте добры пример того, что вы видели, и что именно делают такие сборки? Какой такой проброс, о котором здесь никак не могут догадаться? Насколько мне помнится, цель была подкинуть файл плагина в контейнер, но все возможные способы я вам описал. Они не подошли. Понимаю. Вернее НЕ понимаю, но понимаю что не подошли. Какой ещё нужен проброс? Зачем его автоматизировать? Судя по вашим записям, у вас добрая сотня плагинов, которые постоянно надо куда-то пробрасывать подключая и отключая. Ерунда какая-то. Скорее всего, вы делаете варезную софтину, чтобы как можно больше пользователей подключало свои плагины, и чтобы они "не парились", вы хотели бы всё сделать кашерно. Ну, мудрите со скриптами, разбирайте то, что нашли по своему вопросу и смотрите как работает. От вас никто ничего не прячет, все мануалы в шапке. Найдёте в них то, что мы не знаем, ткните носом, а пока, позвольте считать, что мы немного лучше знакомы с имеющимися мануалами по ThinApp

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 23:26 10-03-2015 | Исправлено: AVanti473, 23:31 10-03-2015
   

Страницы: 1 2 3 4 5 6 7 8 9

Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » VMware ThinApp (formerly Thinstall) 3
articlebot (28-02-2016 18:11): VMware ThinApp (formerly Thinstall) часть 4


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru