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

» VMware application virtualization (Thinstall)

Автор: hpoint
Дата сообщения: 29.05.2008 15:27
CrazyDeath
К сожалению, данный метод позволяет определить имя запускаемого приложения, если только это единственное приложение проекта.

Цитата:
Function ApplName
Origin = GetEnvironmentVariable("TS_ORIGIN")
ApplName = Right(Origin, Len(Origin)-InStrRev(Origin, "\"))
End Function

Если в проекте несколько приложений, то функция определяет имя главного приложения, а не запускаемого.
Вот как бы реально определить имя ЗАПУСКАЕМОГО приложения? Я, к сожалению, так и не нашел решения.
Автор: NickOnToluca
Дата сообщения: 29.05.2008 20:38
Ответьте, пожалуйста товарищу, который спрашивал о Lingvo 12 (даже скрин показан). У меня та же фигня.

И еше несколько проблем. Подскажите или ткните носом на форум.

1) В Nero 8 пропадют некоторые буквы в информационном окне во время записи.

2) Сделал сборку офиса 2003 SP3 + 2007 converter + ODF (Sun) + некоторые надстройки. Удалил CHM-ки на 20-30 метров (пропал хэлпник как жертва портирования), получилось 183 метра. Так вот пролистал форум и не нашел ответа, как автоматически закрывать, например, экзешник Sun-плагина, который конвертирует в ODF (он красуется в трее после первого обращения).
Автор: hpoint
Дата сообщения: 29.05.2008 21:12
NickOnToluca
Если Вы внимательно прочитаете ветку, то найдете, что:
1. Lingvo 12 thinstall'ить пока никому не удалось
2. Буквы пропадают во многих приложениях. Изучите ссылки в шапке. Там есть решение. Более того, есть программа, помогающая в этой "проблеме"
3. Если не листать, а почитать, то можно и этот вопос решить, несколько страниц назад я решал подобный вопрос с офисом 2003 и там все написано.
Автор: Angel Hranite
Дата сообщения: 29.05.2008 21:45
NickOnToluca

Цитата:
как автоматически закрывать, например, экзешник Sun-плагина, который конвертирует в ODF (он красуется в трее после первого обращения)

попробуйте прописать в Package.ini в блок [BuildOptions]

Цитата:
AutoShutdownServices = 1

как говорит производитель

Цитата:
AutoShutdownServices - Controls whether to automatically shutdown virtual services when the last non-service process exits

By default, Thinstall will automatically shutdown virtual services when the last non-service-based child process exits. This option instructs Thinstall to keep virtual services running even when all other processes have exited. This option does not have any effect on non-virtual services.

Examples
Keep virtual services running when the application exits

[BuildOptions]

AutoShutdownServices=0
Stop virtual services when the last non-service application exits (default)

[BuildOptions]

AutoShutdownServices=1

или по русски

Цитата:
AutoShutdownServices -- Контроль автоматического выключения виртуальных услуг


Добавлено:
CrazyDeath

Цитата:
Origin = GetEnvironmentVariable("TS_ORIGIN")
LastSlash = InStrRev(Origin, "\")
SourcePath = Left(Origin, LastSlash)

не работает...

Цитата:
Несоответствие типа: 'GetEnvironmentVariable'


Добавлено:
hpoint
ваш вариант тоже не работает... такая же ошибка

Цитата:
Origin = GetEnvironmentVariable("TS_ORIGIN")
ApplName = Right(Origin, Len(Origin)-InStrRev(Origin, "\"))

тоже не работает... такая же ошибка
Автор: hpoint
Дата сообщения: 30.05.2008 00:04
Angel Hranite

Цитата:
Origin = GetEnvironmentVariable("TS_ORIGIN")
LastSlash = InStrRev(Origin, "\")
SourcePath = Left(Origin, LastSlash)
Этот скрипт определяет путь до приложения, а не его имя.


Цитата:
Ваш вариант тоже не работает... такая же ошибка

Посмотрите этот пример. Все работает.
Автор: Angel Hranite
Дата сообщения: 30.05.2008 20:33
hpoint
запустил... скажите пожалуйста, как убрать .ехе? и если я через скрипт работаю в реестре, причем реестер у приложения виртуальный, то где будут проходить изменения на компе или в виртуальном реестре? если во втором, то как сделать изменения в первом не отключая виртуальный?

Добавлено:

Цитата:
Len(ApplName)-InStrRev(ApplName, ".")

что делает это выражение (имею ввиду операторы len и InStrRev)?

ЗЫ: подскажите, пожалуйста, где можно скачать хороший справочник по этому языку?
Автор: MIHMIH007
Дата сообщения: 30.05.2008 21:39
dj_Diesel так вроде ты же собрал маттайп под 2007 офис
CrazyDeath спасибо ))) суперская утилитка
Sergey_AV скажи плз какой версией тхинстала ты нормкад собирал?

Автор: hpoint
Дата сообщения: 30.05.2008 23:36
Angel Hranite

Цитата:
запустил... скажите пожалуйста, как убрать .ехе?
Не понял вопроса. В смысле как его убить?
На моемом примере:
1. В файле Package.ini находите строчку "Source=" (здесь и далее без кавычек), которая находится под строчкой "ReadOnlyData=bin\Package.ro.tvr"
например такую "Source=%ProgramFilesDir%\Microsoft Office\OFFICE11\XLVIEW.EXE"
2. Вместо "%ProgramFilesDir%" используем "c:\Program files", т.е получаем строчку "c:\Program files\Microsoft Office\OFFICE11\XLVIEW.EXE"
3. Эту строчку вставляем в utils.vbs. Должно получиться "ProcessKiller("c:\program files\Microsoft Office\OFFICE11\XLVIEW.EXE")" (внутренние кавычки не удаляем). Смотри пример.
4. Корректируем Package.ini под свои нужды. Например, настраиваем SandboxPath, SandboxName итд.
5. Копируем в свой проект ##Attributes.ini, находящийся в корневой папке моего примера.
6. Копируем в свой проект папку "%drive_c%\Utils"
7. Запускаем build.bat
8. Все. Или работает или нет


Цитата:
то где будут проходить изменения на компе или в виртуальном реестре
Зависит от RegistryIsolationMode (см. файл ##Attributes.ini в п.5) и файлов реестра HKEY_CURRENT_USER.txt, HKEY_LOCAL_MACHINE.txt, HKEY_USERS.txt (в моем примере удалены за ненадобностью для данного проекта)

Цитата:
если во втором, то как сделать изменения в первом не отключая виртуальный?
Изучить режимы изоляции. Обратить внимание на режимы изоляции в ветках реестра (см. файлы реестра HKEY_CURRENT_USER.txt, HKEY_LOCAL_MACHINE.txt, HKEY_USERS.txt). Подробнее чем на сайте сказать трудно. В этих принципах вся thinstall'яция. C этим вопросом каждому надо разобраться до конца.


Цитата:

Цитата: Len(ApplName)-InStrRev(ApplName, ".")

что делает это выражение (имею ввиду операторы len и InStrRev)?
Автор: Kilich
Дата сообщения: 31.05.2008 09:05
hpoint
Спасибо за книжку - пригодится однозначно!
Автор: Sergey_AV
Дата сообщения: 31.05.2008 09:06
MIHMIH007

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

Да любой (из последних) - 3.358, 3.387. А в чем проблема? У меня была единственная затыка - пришлось снять компрессию проекта, иначе при сборке вываливалась ошибка. В чем суть - так и не понял, просто тупо отключил компрессию. В остальном - вроде работает (жена тестит ).
Автор: Angel Hranite
Дата сообщения: 31.05.2008 10:55
hpoint
надо из Вашего примера (определение имени файла) убрать разрешение ".ехе"

спасибо за ссылочки, посмотрю
Автор: hpoint
Дата сообщения: 31.05.2008 11:03
Для удобства пользования, из странички сделал маленький chm'чик.
Автор: Angel Hranite
Дата сообщения: 31.05.2008 11:07
читал про изоляцию, только не совсем понял как сделать то что мне надо...

при запуске приложения создается виртуальный реестр. при работе с реестром через скрипт, изменения проходят в виртуальном. задача в том, что мне надо сделать изменения в реестре компа на котором запускается приложение. помогите разобраться с этим вопросом
Автор: hpoint
Дата сообщения: 31.05.2008 11:23
Angel Hranite
Цитата:
убрать разрешение ".ехе"
Я понял, надо убрать РАСШИРЕНИЕ.

Цитата:
Имя файла без какого либо расширения=Left(ApplName,InStrRev(ApplName, ".")-1)




Добавлено:

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

Проведите такой эксперимент:
1. Сделайте такой ##Attributes.ini в корне проекта
[Isolation]
DirectoryIsolationMode=Merged
RegistryIsolationMode=Merged
2. Убейте в файлах реестра (файлах HKEY_*.txt) соответствующую ветку (если она есть)

Такое решение допустимо, если Вы гарантируете, что все другие ветки реестра прикрыты full или writecopy изоляцией
Автор: Kilich
Дата сообщения: 31.05.2008 13:51
Кто нибудь пробовал сделать Портабл к ДискКиперу?
Общибка и все тут!
Автор: toob
Дата сообщения: 31.05.2008 17:48
_
Проблема такая:
Сделал Office thinstalled, всё работает как надо,
Но как связать расширение документов (например doc)с редактором,
у меня при запуске документа запускается winword с чистым листом .
Автор: Angel Hranite
Дата сообщения: 31.05.2008 18:20
hpoint

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


Проведите такой эксперимент:
1. Сделайте такой ##Attributes.ini в корне проекта
[Isolation]
DirectoryIsolationMode=Merged
RegistryIsolationMode=Merged
2. Убейте в файлах реестра (файлах HKEY_*.txt) соответствующую ветку (если она есть)

Такое решение допустимо, если Вы гарантируете, что все другие ветки реестра прикрыты full или writecopy изоляцией

получилось! спасибо!

Добавлено:
прблема того плана, может кто сталкивался. огда создаю скрипт такого
Цитата:
Function OnFirstParentStart
......
End Function
содержания, то он не успевает завершится до запуска приложения. как сделать задержку на запуск приложения на определенное время?
Автор: Gromila2
Дата сообщения: 31.05.2008 18:38
Помогите создать Portable версию RocketDock 1,35.
Не получается никак заставить работать.
Автор: Angel Hranite
Дата сообщения: 31.05.2008 19:29
Gromila2
а в чем хоть проблема?

Добавлено:
я в шоке!!!! куча примеров где в строке SandboxPath используются переменные!!!! создаю в "Мой компьютер-свойства-дополнительно-переменные окружения" переменную, например abc, пишу в проекте SandboxPath=%abc%, а оно не работает!!! уже злой сижу!!! в чем может быть проблема?????????
Автор: toob
Дата сообщения: 31.05.2008 20:03
Помогите, кто знает
как связать программу thinstalled с расширением файла
Выше уже писал, что программу Microsoft Office сделал, но хочу добавить,
добавляю в реестр данные:
REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.doc]
@="WinWord_doc"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WinWord_doc\DefaultIcon]
@="C:\\Program Files\\wordicon.exe,1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WinWord_doc\shell\Open\command]
@="\"C:\\Program Files\\WINWORD.EXE\" /n"


но при запуске любого документа .doc запускается WinWord просто без документа.
Автор: hpoint
Дата сообщения: 31.05.2008 20:15
Angel Hranite
Цитата:
я в шоке!!!! куча примеров
Примеры в студию!

Есть только THINSTALL_SANDBOX_DIR - спец.переменная окружения пути песочницы,
и другие имена THINSTALL не понимает!

Добавлено:
toob
Почитайте здесь
Хотя, что это за портативные программы, которые гадят в реестре. Тогда уж поставить полную версию и не париться.
Автор: Angel Hranite
Дата сообщения: 31.05.2008 20:36
hpoint

Цитата:
Есть только THINSTALL_SANDBOX_DIR - спец.переменная окружения,
и другие имена THINSTALL не понимает!

не хотел я использовать эту переменную, но пришлось!!!

вообщем добился распаковки приложения автоматически рядом с *.ехе в папку *.рс1
* - имя приложения
рс1 - имя компьютера
Автор: hpoint
Дата сообщения: 31.05.2008 20:44

Цитата:
вообщем добился распаковки приложения автоматически рядом с *.ехе в папку *.рс1
Положите пример на файлообменник. Думаю, что может кому-нибудь пригодиться.
Автор: toob
Дата сообщения: 31.05.2008 20:44

т.е. этот способ перерегистрирует все расширения office из hklm/.../classes?
а как используя ThinReg связать только одно-два нужных расширения, а не все?
Автор: Angel Hranite
Дата сообщения: 31.05.2008 21:17

Цитата:
добился распаковки приложения автоматически рядом с *.ехе в папку *.рс1
* - имя приложения
рс1 - имя компьютера


создаете фаил *.vbs в одном каталоге с Package.ini, в нем пишите

Цитата:
Function OnFirstParentStart
    Set WSHShell = CreateObject("Wscript.Shell")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Origin = GetEnvironmentVariable("TS_ORIGIN")
    ApplName = Right(Origin, Len(Origin)-InStrRev(Origin, "\"))
    ApplName1 = Left(ApplName,InStrRev(ApplName, ".")-1)
    LastSlash = InStrRev(Origin, "\")
    SourcePath = Left(Origin, LastSlash)
    Computername = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
    Folder = ApplName1 & "." & Computername
    WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\" & ApplName1 & "_SANDBOX_DIR", SourcePath & Folder
    WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\" & ApplName1 & "_SANDBOX_DIR", SourcePath & Folder
    If Not fso.FolderExists(SourcePath & Folder) Then
    newfolder = fso.CreateFolder (SourcePath & Folder)
    End if
End Function


В ##Attributes.ini надо прописать
Цитата:
[Isolation]
DirectoryIsolationMode=Merged
RegistryIsolationMode=Merged
и положить в одном каталоге с Package.ini

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

Спасибо hpoint и CrazyDeath за помощь!
Автор: hpoint
Дата сообщения: 31.05.2008 21:25
toob
Вашу привязку закрывает изоляция реестра. Используйте данный метод или идите по пути Ангела, открывая путь в соответствующие разделы и ветки реестра.

Или попробуйте так:
1.Найдите в файлах реестра (*.txt) и уберите ветки ассоциации, которые были записаны при установке офиса.
2.Установите режим реестра WriteCopy в корневом ##Attributes.ini
3.Запишите в реальный реестр свои строчки

В этом случае, новые установки реестра будут видны Вашему приложению.
Автор: toob
Дата сообщения: 01.06.2008 01:53
Да, последний вариант похоже подойдёт, спасибо.
Автор: CrazyDeath
Дата сообщения: 01.06.2008 03:02

Цитата:
to Angel Hranite

почему не используеш SetEnvironmentVariable ?


Добавлено:
to hpoint

Цитата:
и другие имена THINSTALL не понимает!

не правда, Environment Variable которые понимает тхинсталл около 15 - 20,
но в основном это внутрение или отладочные переменые.



Код: TS_EXECUTE_EXTERNAL
TS_SBCLEANUP
TS_CMDLINE
TS_CWD
TS_MOD0
Mod0
TS_SOURCE
TS_ORIGIN
TS_OPTIONS
TS_SUBPROC
TS_USER_SID
TS_SVCINIT
TS_USER_SID
TS_DEBUGGED
Автор: hpoint
Дата сообщения: 01.06.2008 08:50
CrazyDeath

Цитата:
не правда, Environment Variable которые понимает тхинсталл около 15 - 20
Речь шла о ПУТИ ПЕСОЧНИЦЫ.

Цитата:
Есть только THINSTALL_SANDBOX_DIR - спец.переменная окружения пути песочницы


Автор: Angel Hranite
Дата сообщения: 01.06.2008 09:53
CrazyDeath


Цитата:
Цитата:
to Angel Hranite
почему не используеш SetEnvironmentVariable ?


не понял... можно подробней?

hpoint

Цитата:
hpoint, в некоторых приложениях при отсутствии %THINSTALL_SANDBOX_DIR% до запуска приложения, программа разпаковывается в папку указанную в Package.ini.... как я и говорил необходима задержка на запуск приложения

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980

Предыдущая тема: Программа для поднятия трубки модемом


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