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

» VMware ThinApp (formerly Thinstall) 3

Автор: AVanti473
Дата сообщения: 08.03.2015 19:26

Цитата:
На мой вопрос недельной давности так никто и не ответит?


Как можно ответить на вопрос, если он не имеет логики?
Причём здесь портабелизация и работа самой софтины? Лично я видел этот вопрос, но что я Вам могу подсказать?

Самое простое, и возможно единственное, это следующие параметры Package.ini:

AnsiCodePage=1251
LocaleIdentifier=1049
LocaleName=ru-RU

Но, опять же, это просто инфа о кодировке на машине, на которой создавался потрабл. Как сама портабельная программа её использует и использует ли вообще - загадка требующая разъяснений самих разрабов.

Пробуйте, меняйте данные параметры, собирайте, запускайте, смотрите что выйдет. Наверняка эти параметры там не просто для красоты. Скорее всего, портабельный контейнер с их помощью помогает более корректно отобразить фейс программы, но на деле, не разу не смог заметить как они реально на что-то могут влиять. Впрочем, я не особо и приглядывался. Раз они есть - пробуйте! Либо, ещё вариант, закомментируйте их нафиг, как это делает большинство сборщиков - типа так:

;AnsiCodePage=1251
;LocaleIdentifier=1049
;LocaleName=ru-RU

может тогда система сама начнёт верно взаимодействовать с программой.....

P.S. Данные параметры дстаточно подробно описаны в мануале, переведённом pavlaf, ссылка на который есть в шапке. Но и из описания не всё так однозначно понятно...
Автор: oshizelly
Дата сообщения: 08.03.2015 20:01
AVanti473 19:26 08-03-2015
Цитата:
Либо, ещё вариант, закомментируйте их нафиг, как это делает большинство сборщиков - типа так:
;AnsiCodePage=1251
;LocaleIdentifier=1049
;LocaleName=ru-RU
может тогда система сама начнёт верно взаимодействовать с программой.....

Спасибо за разъяснения Всё-таки уточню, что у меня была как раз обратная задача: заставить портабельное приложение игнорировать номер (язык) кодовой страницы в региональных настройках текущей хостовой системы, а брать его из настроек на исходной машине, зафиксированных в параметрах портабельной сборки. Вот вам, например, удалось хоть раз такогоо добиться?
Автор: AVanti473
Дата сообщения: 08.03.2015 21:16

Цитата:
Вот вам, например, удалось хоть раз такогоо добиться?

Мне сложно вести беседу об одном и том же, но на разных языках...

Цитата:
заставить портабельное приложение игнорировать номер (язык) кодовой страницы в региональных настройках текущей хостовой системы, а брать его из настроек на исходной машине

Тоесть, а я выше о чём писал?
Если приложение и может как-то зафиксировать кодовую страницу ИСХОДНОЙ МАШИНЫ, то исключительно с помощью описанных мною выше параметров и НИКАК иначе. А вот работают эти параметры, или не работают, об этом я тоже писал. Вообще любому приложению наверное сложно игнорировать настройки кодовой страницы хостовой системы, ибо оно выходит на экран именно согласно им. Но, для каких-то целей ThinApp включает в Package.ini сведения о кодовой странице ИСХОДНОЙ МАШИНЫ, причём оставляет их незакомментированными (читать используемыми).
Иначе, я уже не знаю как Вам более подробно объяснить...
Автор: GodKiller222
Дата сообщения: 08.03.2015 22:37
Подскажите, у приложения, которое делаю портабельным есть плагины - просто кидаются в папку с программой и она их использует. Как добиться такого же функционала на портабл-версии, т.е. "пробросить" в портабл-версию папку из которой она запускается?
Автор: AVanti473
Дата сообщения: 08.03.2015 23:13
GodKiller222

В Package.ini приложения, которое вы делаете портабельным есть строка:
;OptionalAppLinks=plugins\*.exe
Для начала, её нужно расскомментировать, тоесть убрать в её начале точку с запятой.

Плагин к приложению должен быть создан так же как и основное приложение, путём сборки в ThinApp, но отдельной сборкой.

Рядом с основным exe-шником портабельного приложения создайте папку plugins и поместите в неё портабельную версию плагина. Всё, основное приложение его увидит при запуске.

Портабельный плагин в описанном случае должен иметь расширение .exe, либо исправьте изначально запись параметра в Package.ini на необходимое расширение, или, вообще на любое возможное, например, так:
OptionalAppLinks=plugins\*.*

Подробнее в бессмертном FAQ
Автор: GodKiller222
Дата сообщения: 08.03.2015 23:58
AVanti473
Спасибо, что гневно не набросились с "RTFM!", но этот метод к сожалению не подходит:

Цитата:
Плагин к приложению должен быть создан так же как и основное приложение, путём сборки в ThinApp, но отдельной сборкой.
В этом-то все дело, плагинов не один десяток, и кто какие будет использовать - неизвестно. Да и не станешь ведь сотню плагинов специально для AppLinks делать, и всюду таскать за портабл-версией - это маразм. Поэтому и хотелось бы именно "проброса" из реальности в виртуал.
Автор: AngelNet
Дата сообщения: 09.03.2015 00:28
реквестирую плагин с NET 4.5.1/2 для ThinApp, мб есть у кого готовый?
Автор: freedaw
Дата сообщения: 09.03.2015 00:49
oshizelly

Цитата:
заставить портабельное приложение игнорировать номер (язык) кодовой страницы в региональных настройках текущей хостовой системы, а брать его из настроек на исходной машине, зафиксированных в параметрах портабельной сборки.

Пока не совсем понятно, зачем это нужно и что должно получаться в итоге.
Первое, что приходит в голову - подсунуть в реестр сборки перед компиляцией ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage с исходной машины с изоляцией Full, а может и всю ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls.
А также положить сами .nls файлы в папку %SystemSystem% (можно не все, а только те, которых не окажется в хостовой системе).
Попробуйте, может прокатит.
Автор: AVanti473
Дата сообщения: 09.03.2015 07:28

Цитата:
Поэтому и хотелось бы именно "проброса" из реальности в виртуал.


Не вопрос, тогда ещё два варианта... Исходим из того, что плагин, это просто файлы, которые надо подбросить приложению.
1 вариант) Открываем портабельное приложение -> Через меню "Файл" вызываем любой диалог открытия, поиска или сохранения файлов -> Не выходя никуда из окна этого диалога находим свои файлы плагинов и копируем из в нужное для подключение системное место. Файлы окажутся в песочнице и будут видны приложению. Главное, всё сделать именно в рамках диалога открытия, поиска или сохранения файлов!

2 вариант) Если ваша портабельная программа, поддерживает подключение плагинов (как это сделать я описывал ранее) -> подключите к ней любой портабельный файлменеджер и с его помощью отправьте в нужные места нужные вам файлы плагинов. Таким макаром можно даже попробовать установить плагины (требующие инсталляции) в приложение.

3 вариант) Используйте это, только внимательно прочтите и поймите что к чему. Возможно, отпадёт необходимость в самой портабелизации нужного приложения через ThinApp

4 вариант) Spoon Studio Вам в помощь. В ней можно подсовывать файлы плагинов напрямую в песочницу.
Автор: coherent
Дата сообщения: 09.03.2015 12:18
GodKiller222

Цитата:
Поэтому и хотелось бы именно "проброса" из реальности в виртуал.

Если Вы сами собираете сборки, то самый элементарный метод, ИМХО, добавлять в такие сборки Pablo Commander (всего 1 файл), на который сделать линк в Package.ini. И с его помощью добавлять и удалять что хотите и куда хотите. И учесть, что он должен запускаться как виртуальный процесс, если используется параметр ChildProcessEnvironmentDefault=External.
Автор: oshizelly
Дата сообщения: 09.03.2015 20:59
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 на исходной машине, а не на реальной хостовой? Есть приложение, у которого языковые функции нормально работают только на "немецкой" системе, а под русской локалью не хотят.

Автор: AVanti473
Дата сообщения: 09.03.2015 21:45

Цитата:
Может ли кто-то из более опытных юзеров проверить эту гипотезу?


А до этого, значит, здесь любители отвечали )))))))


Цитата:
Оно и неудивительно: у меня по ThinApp ни знаний, ни опыта.


И не будет. Ни на грамм не прибавиться. Сколько читаю Ваши посты по темам, столько удивляюсь. Ничего знать не хочу, ничего делать не буду, даже пальцем не пошевелю, 100 раз переспрошу, а решение подайте в студию на блюдечке с голубой каёмочкой - вот ваша тактика и стратегия... Я Вас за это не виню и не осуждаю, это просто инфа на заметку присутствующим!
Автор: regist123
Дата сообщения: 09.03.2015 22:09
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
Автор: oshizelly
Дата сообщения: 09.03.2015 23:13
regist123 21:09 09-03-2015
Цитата:
сработает, только в случае если программа проверяет это в реестре, а если через АПИ то нет, об этом уже написал на предудущей странице.

Да, я видел. И попросил уточнить, как это можно определить - но ответа так и не дождался
Если что, это не претензия, а просто констатация факта.



Цитата:
Как можно ответить на вопрос, если он не имеет логики? Причём здесь портабелизация и работа самой софтины?

+2
Однако действительно ли мой вопрос не имеет логики? [more]Я вот сейчас его три раза перечитал очень внимательно, и вроде бы логика в нём вполне даже присутствует. С другой стороны, возможно, эта логика очевидна только мне самому, а всем остальным - нет.

Непонятные вопросы на форумах попадаются регулярно, и реагировать на них можно двумя основными способами:

1) Задать уточняющий вопрос, а то и несколько подряд, дабы в конце концов понять, чего же хочет спрашивающий. А поняв это, попробовать ему, по мере сил, помочь. Либо объяснить, что задача не решается, в принципе.. На такой случай я как раз сразу в первоначальном посте написал, что если что-то непонятно, то готов уточнить.

2) Гордо заметить, что вопрос непонятен, логики в нем нет. Не худо также намекнуть, что сам спрашивающий - тупой имбецил, который ваабсче не в состоянии внятно сформулировать ни одного вопроса.
Но - и это самое главное! - ни в коем случае не уточнять конкретно, что же именно в вопросе непонятно. А то вдруг вопрос сразу дополнят, и тогда отпадёт повод почесать свой ЧСВ.

Разумеется, я не имею в виду кого-либо из участников данного топика, а только делюсь итогом своих многолетних наблюдений на разных форумах. Просто к слову пришлось, не более того.[/more]
Автор: GodKiller222
Дата сообщения: 10.03.2015 12:06

Цитата:
Не вопрос, тогда ещё два варианта...
Как я не догадался, все просто, как орбит "кривые костыли"))
1. Это извращение. С чужими можно, а со своей так не хочется.
2. Уже не такое порно, но хотелось бы автоматизировать. Думал над vbs-кой или самому написать, что-то простенькое - чтоб проверяло, что лежит возле портабла и копировало в себя. Но то ли у меня не получилось, то ли у нее.
3. Для личного пользования - очень полезная вещь, но для себя-то у меня и так все собирается.
4. Thinapp приглянулся. Очень мощный и в то же время простой, как три рубля. Да и недавний иск к Vmware дает моральный повод им пользоваться))

Цитата:
И учесть, что он должен запускаться как виртуальный процесс, если используется параметр ChildProcessEnvironmentDefault=External.
Это и странно. Отсутствие "портала в реальность" абсолютно необоснованно с точки зрения безопасности, логики и здравого смысла. Я-то думал есть пара слабо документированных параметров, которые я проглядел, а тут все страньше и страньше, как говорила Алиса...

ЗЫ. Сегодня столкнулся с еще одной бякой - без определения CommandLine exe-шник правильно принимает все параметры ком.строки. Если ему один в ней прописать - наглухо отказывается принимать остальные, хотя по всем faq и help-ам должен. Может из-за того, что портабл=exe+dat, но EntryPoint, насколько я понимаю - все равно exe-шник и dat-у это прописывать необязательно...
Автор: AngelNet
Дата сообщения: 10.03.2015 14:12
пишу сюда, т.к. мне кажется этот топик наиболее близок к моему вопросу:
использование сабжа + пабло командера накладывает какие либо ограничения помимо того что "павлик" виснет когда заходишь внутрь папок с русскими названиями?
и как это обойти подскажите.

запускал павлика на голой семерке без сабжа, при попытке обзора русскоязычных папок он в них входит, после чего дальнейшая навигация становится невозможной.
Автор: coherent
Дата сообщения: 10.03.2015 14:39
AngelNet
Похоже Pablo Commander 7-ку не поддерживает.
Автор: bumburbia
Дата сообщения: 10.03.2015 16:11

Цитата:
Похоже Pablo Commander 7-ку не поддерживает.

Этот поддерживает до 8.1, дальше не проверял.
Автор: AngelNet
Дата сообщения: 10.03.2015 16:40
bumburbia
благодарю, а где взяли его не подскажете?
Автор: bumburbia
Дата сообщения: 10.03.2015 16:47
AngelNet
Где-то когда-то на форуме и скачал, если не ошибаюсь, его выкладывал maK.
Автор: regist123
Дата сообщения: 10.03.2015 19:29
oshizellyGold Member 00:13 10-03-2015
Цитата:
Однако действительно ли мой вопрос не имеет логики?

oshizelly
если вам не понятно, то поясню. Если вы тут задаете вопрос, по работе ThinApp то с большой долей вероятности получите на него ответ. А когда задаете вопрос как работает какая-то программа, которая отношения к сабжу не имеет, да и ещё и не известно, что за программа, то логично что ответа так и не дождётесь.
На это AVanti473 и указал, что к этой теме ваш второй вопрос не относится. В какой теме его правильно задавать я не знаю.
Как вариант (возможно и самый быстрый) опять таки как указал AVanti473 это просто взять самому собрать портативку и проверить сработает или нет.

Автор: 007Alex007
Дата сообщения: 10.03.2015 21:30
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 файлы в реальной системе, ну или если есть у кого то реальный пример сборки, может выложит ее?
Автор: AVanti473
Дата сообщения: 10.03.2015 22:37
007Alex007

Цитата:
А вообще не пойму чего все так подсели (именно в ThinApp) на эту прогу


Кто все? Я её терпеть не могу. Эта мода пошла от других пользователей сайта. Почему? Ну, это их выбор, кто ж в праве осуждать?


Цитата:
кто подскажет как портабелизировать UltraIso, чтобы была возможность создать в реальной системе виртуальный CD


Я не дока, но, насколько мне помниться, такие проги ставят в систему драйвер, типа SPTD, а вот как раз установку драйверов ThinApp и не поддерживает. Собственно для этого дела и используется костыль лоадера, который втыкает драйвер в систему до запуска портабельной программы, и выгружает его после закрытия софтины...
Автор: GodKiller222
Дата сообщения: 10.03.2015 22:48

Цитата:
ну или если есть у кого то реальный пример сборки, может выложит ее?
На PortableAppZ есть совершенно реальный пример портабельной сборки последней версии UltraIso c запуском виртуальных CD на любой системе))
Да и по моему вопросу видел ThinApp-овские сборки с пробросом. Видимо, все же "до этого, значит, здесь любители отвечали )))))))" (c)AVanti473
Автор: AngelNet
Дата сообщения: 10.03.2015 22:55
GodKiller222
к сожалению, могу вам сказать из личного опыта, что сборки от PortableAppZ (в отличие от сабжа при правильной настройке) гадят в хостовую ОС, поэтому были мною забракованы.

как вам правильно заметили выше: возможно такое решение имеет место, но это не значит что раз оно запускается и эмулирует дисководы, следы ее жизнедеятельности (в виде те же дров) не останутся у вас на ПК.
Автор: GodKiller222
Дата сообщения: 10.03.2015 23:09
AngelNet
Из личного опыта, В моем VirtualBox-е (XP, 7) UltraIso от PAppZ заменяет виртуальную папку обмена (VBox-а) своим виртуальным дисководом. А после корректного выхода из него, виртуальный дисковод превращается обратно в папку обмена (без перезагрузок и т.д.). Следы может и остаются (в какой вындовс их нет, следов этих), но сделано все очень грамотно.
ЗЫ. Диспетчер Устройств любого вындовса хранит записи о подключаемых к нему устройствах (даже на разных портах), ЕМНИП нужно включать специальную переменную и удалять "следы" этих устройств, но и тогда следы где-нибудь да останутся. По-другому просто не получится.
Автор: AVanti473
Дата сообщения: 10.03.2015 23:26
Многоуважаемый и высокопрофессиональный GodKiller222! AngelNet, вам пытался сказать, что PortableAppZ, это совершенно другая технология портабелизации. В ней, приложения получаются переносными, но они работают не в контейнерах, а в реальной системе. Иными словами, приложение PortableAppZ полностью взаимодействует с системой, а по завершению просто удаляет все следы взаимодействия. Нравится вам так - пожалуйста, но это тема не данного топика на мой взгляд.


Цитата:
Да и по моему вопросу видел ThinApp-овские сборки с пробросом.

Будьте добры пример того, что вы видели, и что именно делают такие сборки? Какой такой проброс, о котором здесь никак не могут догадаться? Насколько мне помнится, цель была подкинуть файл плагина в контейнер, но все возможные способы я вам описал. Они не подошли. Понимаю. Вернее НЕ понимаю, но понимаю что не подошли. Какой ещё нужен проброс? Зачем его автоматизировать? Судя по вашим записям, у вас добрая сотня плагинов, которые постоянно надо куда-то пробрасывать подключая и отключая. Ерунда какая-то. Скорее всего, вы делаете варезную софтину, чтобы как можно больше пользователей подключало свои плагины, и чтобы они "не парились", вы хотели бы всё сделать кашерно. Ну, мудрите со скриптами, разбирайте то, что нашли по своему вопросу и смотрите как работает. От вас никто ничего не прячет, все мануалы в шапке. Найдёте в них то, что мы не знаем, ткните носом, а пока, позвольте считать, что мы немного лучше знакомы с имеющимися мануалами по ThinApp
Автор: coherent
Дата сообщения: 10.03.2015 23:32
007Alex007

Цитата:
Может кто подскажет как зарегистрировать sys файлы в реальной системе

Например так.
Автор: GodKiller222
Дата сообщения: 10.03.2015 23:38
AVanti473

Цитата:
Насколько мне помнится, цель была подкинуть файл плагина в контейнер, но все возможные способы я вам описал.

Бабушке своей этот маразм со сторонними файл-менеджерами и диалоговыми окнами описывайте. Как оказалось, все до смешного просто:

Цитата:
Function OnFirstParentStart
Origin = GetEnvironmentVariable("TS_ORIGIN")
LastSlash = InStrRev(Origin, "\")
SourcePath = Left(Origin, LastSlash)
SourceFile = SourcePath + "*.plugin"
DestFile = ExpandPath("%ProgramFilesDir%\My Prog\")
Set objFSO = CreateObject("Scripting.filesystemObject")
If objFSO.FileExists(SourceFile) Then objFSO.CopyFile SourceFile, DestFile, TRUE
End Function

"профессионал", елки-палки)))
Автор: maklar47
Дата сообщения: 11.03.2015 16:04
Доброго дня!
В поисках утилиты ShFilesAcSpy перерыл весь топик-ссылки все мёртвые, до автора тоже не достучался, может у кого в загашнике найдётся? Спасибо.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149

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


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