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

» VMware ThinApp (formerly Thinstall) 3

Автор: AVanti473
Дата сообщения: 26.05.2014 20:37

Цитата:
что у вас отсутствуют базовые знания реестра windows

принимаю любые обвинения чтобы не офтопить дальше... Есть желание, продолжайте.


Цитата:
то тут не согласен

А кто пробовал? Сплошные предположения. Давайте увидим перевод, а там всё само станет на свои места, не зависимо от того, моя правота или ваша.
Автор: AngelNet
Дата сообщения: 26.05.2014 20:39

Цитата:
vyachko и Astra55. Авторы покинули форум

pavlaf
это откуда известно что они покинули? что то впервые об этом слышу!
Автор: AVanti473
Дата сообщения: 26.05.2014 20:40

Цитата:
это откуда известно что они покинули? что то впервые об этом слышу!


Увы, да. Добровольно ушли с ветки. Это факт. И факт, о котором я начинаю сожалеть...
Автор: regist123
Дата сообщения: 26.05.2014 21:54
22:37 26-05-2014
Цитата:
А кто пробовал? Сплошные предположения.

я к тому чтобы стать хорошим сборщиком недостачно разбираться только в настройках ThinApp.
AngelNet 22:39 26-05-2014
Цитата:
это откуда известно что они покинули? что то впервые об этом слышу!

Astra55 писал в этой теме, что уходит из этой ветки, но остаётся в PM. То что он не читает конкретно эту ветку это не значит, что он ушёл с форума, другие ветки он читает.
Автор: AngelNet
Дата сообщения: 27.05.2014 01:24
ясно, а я уж думал как АДМИН_КРЭК забил с концами. (астра55)

regist123
спс за информацию! просто грамотнее астры я еще не встречал сборщиков и всегда обращался к нему.
надеюсь на мои возможные ПМ-ы с просьбами он не откажет.

pavlaf

Цитата:
Полезна ли переделка доков в CHM?

нет, PDF удобнее и беспроблемнее если с картинками, а иначе TXT (если вас интересует моё мнение).

про *.HLP я уже вообще молчу. на 7-ке он у меня не открывается ввиду архаичности.
Автор: coherent
Дата сообщения: 27.05.2014 10:21
Думаю, что все согласятся, что переливать из пустого в порожнее на тему перевода мануалв ThinApp или еще чего-то на русский, и надо ли и как это делать, можно долго и нудно, с лирическими отступлениями и без. Есть предложение не мусолить здесь это. Все-таки это ветка по обсуждению работы самой программы. Не говорю уже о давно бытующем в сети мнении - хочешь серьезно работать на компе, выучи английский. Но это, конечно, личное дело каждого.

AVanti473

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

Исключительно из любопытства, перевод нужен лично Вам или Вы переживаете за "трехкнопочников" и юзеров, которые их "поделками" пользуются?
Автор: pavlaf
Дата сообщения: 27.05.2014 10:59
AngelNet
Цитата: "PDF удобнее и беспроблемнее если с картинками..."
Разница в удобстве просмотра CHM и PDF - проблема детская. Используйте универсальную смотрелку SumatraPDF, и будет Вам happiness. Оба формата смотрятся практически одинаково, с удобной панелью навигации и масштабированием. И никаких проблем.

Переделка доков в CHM делалась не для того, чтобы угодить любителям этого формата. Основные цели:
- Подготовить базу для редактирования (перевода). Теперь для этого не требуется экзотический софт. Можно открыть файл в WinCHM Pro. При этом он корректно декомпилируется на HTML-файлы разделов. Их можно править в привычном Ворде. Собрать обратно отредактированный CHM - пара кликов.
- Несколько улучшить форматирование, сделать документ смотрибельней.
- Сделать иерархическую нумерацию разделов. При цитированиях документа легче указывать конкретное место в нём.
- Мануал ThinApp - это не переделанный PDF, а скомпилированное онлайн руководство. Оно заметно добавлено/исправлено.

FAQ от Astra55 люди читали, читают и будуть читать. Сделать его в CHM была просьба в личку. Выполнил и добавил постраничное листание вперёд/назад.

Ранее я озвучил намерение сделать перевод родного мануала. Сделал предложение поучаствовать в этом всем заинтересованным пользователям. Судя по переписке, таковых оказалосиь всего несколько человек, да и те хотят просто получить готовое. Прав Astra55 в своих высказываниях по этому вопросу.
Похоже, повторяется ситуация с руководством по VirtualBox. Я сделал перевод, которого раньше не было, опубликовал и бросил клич поучаствовать в совершенствовании документа, который ушёл в пустоту без эха. Получил всего одно справедливое замечание (сразу внёс исправление), несколько благодарностей за
титанический труд и вопрос: будет ли продолжение для новых версий?
Перевод на время отложил, потихоньку делаю пару инструкций, на которые были заявки. А пока добрый совет - подучите аглицкий и читайте оригиналы.
Автор: AVanti473
Дата сообщения: 27.05.2014 11:27

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


Отвечаю честно и без лукавства. Перевод мне НЕ особо нужен, но, если он будет, то будет ИНТЕРЕСЕН. Некоторые моменты сейчас в работе с ThinApp мне просто не требуются, но, возможно не были бы лишними! Ломать мозг переводя мануал только для себя, чтобы найти что-то чуть более интересное того, что уже знаю, для меня работа бессмысленная! Но, с удовольствием прочёл бы мануал на русском, и возможно, это стало бы неким движением вперёд в плане общего понимания и дальнейшего развития!
Да, искренне переживаю "за трёхкнопочников"!
[more=123]Даже не за них, фиг с ними раз им влом разбираться. Просто бывает необходим какой-то портабельный софт, иду в сеть, а там на выбора море. Зачем мне велосипед делать, когда два клика и скачал?! А тот кто это собирал, вообще имел представление в том, что он делал...
И, самое обидное: Делаешь портабл, убил на него кучу времени пока разобрался в каких-то тонкостях кряки-хряки, привязки в реестре и т.д. и т.п. Потом рекомендуешь знакомому, а тебе в ответ, мол нет, спасибо, сыт кривым портаблом из сети по уши. И вообще портабл не программа и т.д. и т.п. Что мне ему лекцию читать, о том, где водится профессиональный портабл, и чем он отличается от трёхкнопочного? Да не будут мои знакомые лекции слушать, и Ваши не будут!
Остальное офтопик и личный жизненный опыт каждого присутствующего здесь.[/more]
Будет Русский мануал, будет меньше трёхкнопочников, так-как хоть во что-то начнут вникать.


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


Будьте добры, обозначьте фронт работы, скорректируйте действия желающих. Просто кинуть клич - он и уйдёт в никуда. Люди не понимают что именно от них нужно! Сколько страниц перевести? Одну, раздел, половину мануала? Кто в данный момент занимается переводом той или иной страницы? Неужели все должны начать с первой и предоставить на Ваш суд десять одинаковых вариаций перевода? Вы согласны с такой аргументацией? Если да, давайте организовываться. Думаю я смогу перевести несколько страниц, не умру от этого. Какая-никакая, а всё-же помощь. Вопрос в том, какие именно страницы и кто ещё занимается переводом других глав, разделов и т.п.
Если это не конструктив, то мои аргументы закончились... )))
Автор: distortion
Дата сообщения: 27.05.2014 12:07
Создайте отдельный топик - как и в чем верстать доки. А здесь давайте по теме в режиме вопрос-ответ.
Автор: coherent
Дата сообщения: 27.05.2014 12:40
AVanti473

Цитата:
А тот кто это собирал, вообще имел представление в том, что он делал...

Ответ на этот вопрос давно известен и не раз озвучивался. И ни какие переведенные на русский руководства это не исправят.
Еще раз озвучу предложение не захламлять тему. PDF или CHM, CHM или PDF, что лучше/удобнее, как и кому переводить, и нужно ли вообще переводить - не место этому здесь! В конце-концов, если это действительно кому-то актуально, создайте смежную тему.
Опс, пока писал, это же предложение озвучил distortion
Автор: AVanti473
Дата сообщения: 27.05.2014 12:51
pavlaf

[more=Как вариант]Вспомнил древность и только что, нашёл и скачал PDF-XChange Editor 3.0.307.2 Final Когда-то давным давно таким макаром выручил друга, здававшего экзамен по инглишу, по электронке, на присланном бланке PDF, который нужно было срочно отредактировать, заполнить поля и сохранив результат отослать обратно. Помниться тогда Акробат в полной версии Pro весил более 700 Мб, а скорости инета были мизерными...
Собственно, сейчас проверил, всё нормально редачит, перелинковка страниц остаётся, так что даже мудрить не нужно, переделывая всё заново. Единственное, ну может шрифты малость с русскими буквами подгонять размер под странички придётся, но это дело не сложное.
Как такой вариант? По моему, головной боли меньше, а результата больше.

[/more]

coherent

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


[more=для справки]http://www.youtube.com/watch?v=EcMcB8Q2I-4
1 486 просмотров
13 лайков
есть благодарности.

Это к вопросу о необходимости любых работ по русским мануалам...[/more]
Автор: coherent
Дата сообщения: 27.05.2014 13:39
AVanti473

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

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

Автор: dandvd
Дата сообщения: 27.05.2014 15:00
По поводу перевода мануала, есть отличный ресурс, именно для этого и предназначенный. http://notabenoid.com/
Автор: AVanti473
Дата сообщения: 27.05.2014 17:48

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


dandvd наверное отличный, но дело то всё в том, что переводить должен человек, хотя бы имевший дело с ThinApp. Было бы всё так просто, давно бы уже всё перевели. Хотя, за идею спасибо, глядишь и пригодиться даже в этом деле...!
Автор: distortion
Дата сообщения: 27.05.2014 18:30
не, ну право... уже страницу накатали ерунды всякой. все знания уже давно формализованы, нужные ссылки в шапке.
Автор: regist123
Дата сообщения: 27.05.2014 18:42
Чтобы прекратить тут посты не по теме создал отдельную тему для обсуждения перевода: VMware ThinApp - обсуждение перевода.
Все дальнейшие посты с обсуждением форматов справки сервисов, кому что переводить предлагаю там.
Автор: coherent
Дата сообщения: 27.05.2014 19:03
regist123
Может и в шапку это добавить? А то что-то мне подсказывает, что просто так эта "актуальная" тема здесь не иссякнет и через пост-другой все начнется по-новой.
Автор: AVanti473
Дата сообщения: 01.06.2014 13:43
Кому не влом, можете помочь с одной задачкой?

Значится при старте сборки надо добавить ключи в реальный реестр, а при завершении её работы надо, чтобы ключи удалялись.

Своим "худым" мозгом я понял только что для первой части задания можно использовать скрипт типа:

Код: Function OnFirstParentStart
ExecuteVirtualProcess "regedit /s C:\tmp\install.reg"
End Function
Автор: freedaw
Дата сообщения: 01.06.2014 14:52
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 - там более понятно написано и примеры есть.
Автор: coherent
Дата сообщения: 01.06.2014 15:32
AVanti473

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

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


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

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

Код: Origin = GetEnvironmentVariable("TS_ORIGIN")
RegFilesPath = Left(Origin, InStrRev(Origin, "\") - 1)
InstallReg = RegFilesPath + "\install.reg"
UninstallReg = RegFilesPath + "\uninstall.reg"
Автор: AVanti473
Дата сообщения: 01.06.2014 16:19
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
Автор: coherent
Дата сообщения: 01.06.2014 16:32
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
Автор: AVanti473
Дата сообщения: 01.06.2014 16:39
coherent, большущее спасибо! Вечером буду пробовать!

freedaw, тоже благодарю за разъяснения, без них было бы сложнее разобраться что к чему!
Автор: AVanti473
Дата сообщения: 01.06.2014 20:24
coherent

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

Тут наверняка понадобиться нечто большее чем просто скрипт и файлы реестра для импорта... Понимаю, вопрос избитый, но его решение, или вариант решения, могли бы всё-таки поднять качество сборок других сборщиков. Ведь в первую очередь, портабельный софт не должен вредить системе или уже установленным программам, а при наличии на компьютере аналогичного установленного софта, вмешательство и уничтожение его ключей по завершению работы портабельной сборки, может быть фатальным. Безусловно, есть тема X-Launcher, но, во первых - я в ней ничего не понимаю, во вторых - мне интересно это решение в рамках работы ThinApp, и в третьих - от метания между X-Launcher и ThinApp, всё равно как в пословице за двумя зайцами...
Автор: freedaw
Дата сообщения: 01.06.2014 20:40
AVanti473

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

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

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


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
Автор: SLasH
Дата сообщения: 02.06.2014 01:52
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
Автор: coherent
Дата сообщения: 02.06.2014 09:59
AVanti473
1. Батник для конвертирования txt -> reg

Код: vregtool Registry.rw.tvr ImportDir .
vregtool Registry.rw.tvr ExportReg regfile.reg
Автор: AVanti473
Дата сообщения: 02.06.2014 11:10

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


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

Добавлено:
coherent

По поводу батника согласен! Спасибо за подсказку, но ошибка вываливается всё равно...
Может у Вас получиться иначе? Вот архивчик с файлами, которые у меня не получается перевести в файлы реестра для импорта: http://rghost.ru/56082593 За Package.ini не критикуйте плиз, каждый обрабатывает по своему. Можно конечно удалить весь закоментированный мусор, можно убрать все выключенные точки входа, да только мне это как-то без разницы, тоесть не принципиально. Килобайтом меньше, килобайтом больше - не суть важно... )))

Добавлено:
SLasH, Огромное, огромное спасибо за готовые решения!!! Первое понравилось в силу простоты, но не совсем понял в чём может быть загвоздка. Изучаю второе!
Автор: SLasH
Дата сообщения: 02.06.2014 12:12
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

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149

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


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