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

» VMware ThinApp (formerly Thinstall) 3

Автор: 007Alex007
Дата сообщения: 11.03.2015 16:41
coherent
Спасибо. Все получилось, единственное не удобство, это если файл iso не размонтировать, а сразу выйти из UltraISO, то при повторном запуске UltraISO не запускает виртуальный привод. Приходится перезагружать пк. Есть какой-нибудь способ решения этого?
И еще, в Win7x64 виртуальный сидюк не отображается рядом с настоящим, хотя в UltraISO виртуальный привод присутствует и он монтирует ISO и устанавливает все в реальную систему. Это так и должно быть?
Автор: inok_ZP
Дата сообщения: 11.03.2015 18:06
maklar47
http://rghost.ru/private/7JJb5Bnk7/7496ab915fb6be741a3a7d77ec42392d
Автор: coherent
Дата сообщения: 11.03.2015 19:34
007Alex007

Цитата:
если файл iso не размонтировать, а сразу выйти из UltraISO, то при повторном запуске UltraISO не запускает виртуальный привод.

Не помню, когда последний раз пользовался виртуальным приводом. Но когда использовал, такой порядок выхода не приходил!
При закрытии сборки loader удаляет sys-драйвер (или пытается это сделать), а скрипт удаляет папку с loader-ом и sys-драйвером (или пытается это сделать). Скорей всего при не размонтированном приводе sys-драйвер корректно не деинсталлируется и из-за этого потом не может корректно установиться. Я бы отследил, что остается при таком "нехорошем" отключении (записи в реестре, файлы), и от этого плясал. Скорей всего надо менять идеологию установки и удаления sys-драйвера.

Цитата:
И еще, в Win7x64...

Тут я пас. У меня "на хозяйстве" только ХР, а с 7-кой имею дело крайне эпизодически, и с нюансами работы в ней не очень...
Автор: 007Alex007
Дата сообщения: 11.03.2015 21:48
coherent
При закрытии UltraISO, видно запуск консольного окна (понимаю, что это не обозначает правильную выгрузку), а потом удаляется вся папка. Посмотрел какие изменения в реальную систему вносятся:
- из фалов ничего, если не учитывать папку Temp внутри которой папка с дровами, которая потом удаляется и папка Ultra$ISO с файлами *.tmp.
- а вот в реестр вносится по ему вся инфа связанная с дровами и виртуальным приводом. Вкратце в основном изменения вносятся сюда:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_DRIVERS\]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\drivers\]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\drivers\Security\]
Попытался удалить внесенные изменения в реестр и перезапустить Explorer - не помогло, только перезагрузка пк, только хардкор.

Цитата:
Скорей всего надо менять идеологию установки и удаления sys-драйвера.

И что можно предпринять?

И еще, вот что пишет loader если на паузу поставить, при удалении sys, после того как не сделал размонтирование:
[+]Driver Loader By Sav1or[+]
Error While Stoping!(0x425)
Error While Deleting!(0x430)
Автор: coherent
Дата сообщения: 11.03.2015 23:47
007Alex007

Цитата:
И что можно предпринять?

Самый простой путь - разделить установку/удаление sys-драйвера и UltraISO.
Автор: 007Alex007
Дата сообщения: 13.03.2015 20:09
coherent
Я конечно люблю ребусы, но
Цитата:
разделить установку/удаление sys-драйвера
это как? А самое главное как потом эти разные сборки соединить в единую сборку? Если я правильно понял.
Может у меня что то в скрипте напутано:
[more=Script]Option Explicit
Dim fso, DestPath, DrvFolder, SourceFolder, id
Set fso=CreateObject("Scripting.FileSystemObject")
DestPath = ExpandPath("%TEMP%")
DrvFolder = DestPath & "\" & "drivers"
SourceFolder = ExpandPath("%ProgramFilesDir%\UltraISO\drivers")

Function OnFirstSandboxOwner
fso.CopyFolder SourceFolder, DestPath & "\"
id=ExecuteExternalProcess(chr(34) & DrvFolder & "\loader.exe" & chr(34) & " drivers " & chr(34) & DrvFolder & "\ISODrive.sys" & chr(34))
WaitForProcess id, 0
End Function

Function OnLastProcessExit
id=ExecuteExternalProcess(chr(34) & DrvFolder & "\loader.exe" & chr(34) & " drivers delete")
WaitForProcess id, 0
fso.DeleteFolder DrvFolder
End Function[/more]

А без loader.exe ни как? Может есть другой способ прописывания и удаления sys в систему.
Автор: coherent
Дата сообщения: 13.03.2015 20:56
007Alex007

Цитата:
разделить установку/удаление sys-драйвера

Я имел в виду установку/удаление sys-драйвера саму по себе отдельно от сборки. И не обязательно запихивать в контейнер. Можно положить рядом с исполняемым ехе-сборки папку, например, ISODrive с loader-ом и скриптами (или батниками) запуска и удаления. В %TEMP% - это просто была "хотелка", я лично устанавливаю в папку рядом с экзешником сборки. Установить перед запуском сборки sys-драйвер и если привод остается не размонтированным, то после закрытия сборки sys-драйвер не удалять.

Цитата:
А без loader.exe ни как? Может есть другой способ прописывания и удаления sys в систему.

В принципе sys-драйвер - это файл(ы) и соответствующие записи в реестре. Т.е. можно отследить какие записи делаются в реестр (с учетом местоположения драйвера). Установить - это добавить записи, удалить - удалить записи. Но, помню у меня были проблемы с удалением.
Автор: grvaleri
Дата сообщения: 15.03.2015 07:05
недавно встретил Microsoft Office 2013 портабельную, но из за привязки к железу она ещё запускается помимо в дополнительной виртуальной системе. как это реализуется на практике.
Автор: AVanti473
Дата сообщения: 19.03.2015 08:17
AngelNet http://forum.ru-board.com/topic.cgi?forum=55&topic=11671&start=2820#12

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


Изоляция WriteCopy конечно хорошая штука, но она же и хорошая проблема. Если игра хранит значения в реестре, то похоже дело будет провальным, либо, придётся прописать в Package.ini, что все новые ключи должны создаваться с параметром:
RegistryIsolationMode=Merged
Если игра хранит данные в своих файлах, то для той папки, где хранятся данные нужной игрушки, в ##Attributes.ini надо будет указать:
DirectoryIsolationMode=Merged

Поскольку ArtMoney программа, хранящая коды к различным играм, тут всё весьма сложно. Скажем, если игрушка хранит сведения о себе в системных папках, закрытых под WriteCopy, то все изменения будут проходить исключительно в контейнере, не затрагивая реальную систему и игру.
Как вариант - можно назначить всему проекту изоляцию Merged, в Package.ini добавить
RegistryIsolationMode=Merged
И изоляцию всех системных папок проекта (за исключением папок самой программы) вручную, в ##Attributes.ini сменить на Merged
Автор: AngelNet
Дата сообщения: 19.03.2015 19:51
AVanti473
нет игра отломана китайцами и полностью не зависит от реестра, онлайн сервисов и прочей лабуды.
значения 100% хранятся в памяти и нормально модифицируются штатно инсталированной версией артмани.

далее по тексту тоже самое скажу: нужно модицифировать ТОЛЬКО значения в оперативной памяти!
никаких дисковых записей не производится со стороны артманей.
все модифицируется в оперативке и применяется "на лету", а уже потом игра сама запишет в save-ы новые значения.
я бы выставил изоляцию "мергед" да не парился, но автор проги- артём, криворукий программёр и поставляет в комплекте со своею поделкою неподписанный драйвер am**.sys (два штуки), который никак не должен попасть в хостовую систему, ибо от его установок и БСОД-ы бывают и много чего еще веселого.
Автор: AVanti473
Дата сообщения: 19.03.2015 21:22
AngelNet
Понял Вас, но а что мешает "откусить" am**.sys этот драйвер из сборки, просто выкинув эти файлы из системной папки сборки... Тем более, что ThinApp всё равно не поддерживает портабелизацию дров... Значения реестра по этим дровам всё равно окажутся в сборке заизолированными от реальной системы.

Про оперативную память понятно. К сожалению, я не могу сказать, что разбираюсь в том, как работает изоляция портабельной программы в оперативной памяти... Возможно, думаю, она может быть связана с изоляцией системных папок виндовс...
Автор: AngelNet
Дата сообщения: 20.03.2015 01:56
AVanti473
с выкидыванием драйвера проблем нет, "павликом" пользоваться научился (:

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

проблема в том, что сборка после компиляции не модифицирует данные в оперативной памяти, а это единственная и главная функция этой программы, если оно не работает то нет смысла в самой программе.

у вас никаких игрушек нет под рукой, есть просьба к вам сделать свой вариант и потестить его если конечно будет время/желание.
Автор: AVanti473
Дата сообщения: 20.03.2015 08:16

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


Дык были какие-то игры столетней давности ))) Впрочем, мне этот вопрос интересен. Давайте я конечно попробую в свободное время сделать свой вариант и поглядеть как он будет работать. Если Вас не затруднит, киньте пожалуйста в личку ссыль на прогу ArtMoney и на ту игру, где прога не срабатывает в оперативке.
Возможно, конечно, мы занимаемся заранее провальным делом, но, зато, я надеюсь, приобретём ценный опыт.

Добавлено:
AngelNet - ArtMoney тестовый вариант кинул в личку.
Автор: AVanti473
Дата сообщения: 21.03.2015 18:42
RikiMang
***

Ребят, ну не по теме же. Про кого инфа? Про gvozdik? Дык у него же в профиле место жительства Донецк, ДНР? Скрепя зубами, предлагаю закрыть тему. У каждого есть что сказать по этому вопросу, но администрация сайта за такое по головке не погладит...

P.S. Есть что сказать? Кидайте в личку заинтересованным. Будем, как гриться, проверять и знать.
Автор: bumburbia
Дата сообщения: 24.03.2015 17:47
Есть в Package.ini настройки для запуска собираемой программы с правами администратора ? Или как это сделать другим способом ?

Добавлено:
И ещё: как-то с этим можно бороться ? Окошко при запуске сборки на примере Total Uninstall, появляется только в х86 версии собираемой программы, х64-разрядная сборка запускается без проблем.
Автор: AVanti473
Дата сообщения: 25.03.2015 10:07
bumburbia

Цитата:
Окошко при запуске сборки на примере Total Uninstall


При всём уважении, что Вы делаете? Если Вы собираете Total Uninstall на ThinApp, то это бесперспективная задача! Да, программа будет собирать сведения, да, программа отследит тизменения и сделает резервную копию. Возможно, удалит установленное приложение, НО не сможет восстановить его из резервной копии. Просто у ThinApp для этого нет полного доступа в систему.

Если уж нужен портабл данной проги новой версии, то лучше этого варианта ещё не видел. А самый рабочий вариант в портабельном исполнении: Total Uninstall Pro v6.3.4 By KloneB@DGuY Более поздние версии этого автора рухаются на x64 системах за милую душу. Только вчера тестил v6.8.0 By KloneB@DGuY так не просто рухнула и вылетела в инглишфейс со сбросом реги, но ещё и в системе где-то наследила так, что как и куда не распаковывай её теперь - реги нет.

Моё мнение - не надо лепить Total Uninstall на ThinApp. Получится ПРОГРАММА-КАЛЕКА с битым функционалом, вылетами, и, как следствие, возможно, с засиранием системы до стадии синего экрана.
Автор: AngelNet
Дата сообщения: 25.03.2015 10:21
AVanti473
может ему не нужно восстанавливать удалённые программы? я например у себя в TU сразу отрубил нафиг эту опцию.
насчет того, что ту не стоит портабелизировать - согласен.
Автор: AVanti473
Дата сообщения: 25.03.2015 10:54
AngelNet

Цитата:
может ему не нужно восстанавливать удалённые программы?


Может быть, я не спорю. Суть не в этом, а в том, что сам Total Uninstall написан далеко не глупыми людьми с бооольшим опытом в вопросах софта. Именно по этому данный пакет утилит должен напрямую взаимодействовать с системой, а не через контейнера наподобие ThinApp. Контейнер ThinApp весьма ограничен в правах, так как является не более чем исполняемой программой, не запрашивающей для себя каких-то экстраординарных функций в системе. Total Uninstall напротив, требует максимального взаимодействия для решения своих задач. Когда Total Uninstall портабелизируется по технологии PortableAppZ, он сохраняет возможность прямого взаимодействия, а когда через ThinApp - теряет эту возможность из-за ограничений контейнера в котором будет находится. И всё бы ничего, но для хоть какого-то более или менее адекватного функционала Total Uninstall в ThinApp (а это не только восстановление софта из резервных копий, но и новшества вроде редактирования автозапуска), придётся настроить контейнер так, чтобы он был, как бы это верно сказать - ПОЛНОСТЬЮ дырявым. А что произойдёт в таком случае? Первый же сбой программы и в системе море мусора. И ладно бы в папках и файлах, но ведь и в реестре. Что станет с системой после таких финтов сказать сложно, особенно, если такой вариант портабельного Total Uninstall откажется запускаться повторно или убирать свои следы, вешаясь очередной раз по причине ограниченного доступа.
А так, я не только не против портабельного Total Uninstall, но и двумя руками ЗА, НО, от спецов PortableAppZ.

P.S. bumburbia интересуется, как обеспечить программе права админа. Всё что я помню на этот счёт это параметры Package.ini
UACRequestedPrivilegesLevel=highestAvailable
UACRequestedPrivilegesUiAccess=true
Которые по факту, судя по всему, даже не работают.
И где-то на этих страничках был разговор по правам админа на ветки реестра. Увы не помню его результат...
Но, если даже такие права сборка ThinApp и получит (что сомнительно), то врятли ей это поможет в "прокидывании" через контейнер всех свойств Total Uninstall, учитывая, что нужны намного большие возможности, чтобы останавливать системные процессы или внедрятся в них с изменениями.
И где-то "на уровне шестого чувства", я думаю, что говоря о функционале Total Uninstall, нужно ещё задуматься о правах доступа к NTFS, где приоритет не всегда имеет админ компа... Боюсь с такими задачами контейнер ThinApp просто не создан справляться...
Автор: bumburbia
Дата сообщения: 25.03.2015 12:37
AVanti473
При всём уважении, я спрашивал лишь о том, о чём спрашивал, если вам неизвестен ответ, а судя по всему он вам неведом, то не надо толочь воду в ступе, что вы так любите.
Автор: regist123
Дата сообщения: 25.03.2015 16:58
AVanti473 10:54 25-03-2015
Цитата:
Которые по факту, судя по всему, даже не работают.

возможно из-за, того что вы неправильно их указываете. Советую почитать про манифест, например здесь.


Цитата:
как обеспечить программе права админа. Всё что я помню на этот счёт это параметры Package.ini UACRequestedPrivilegesLevel=highestAvailable

только нужно
UACRequestedPrivilegesLevel=requireAdministrator
Автор: AVanti473
Дата сообщения: 25.03.2015 17:35
regist123

Цитата:
только нужно
UACRequestedPrivilegesLevel=requireAdministrator


Странно, согласно комментам из статьи, на которую Вы указали:


Цитата:
Можно задать один из 3 уровней прав:
asInvoker - запуск приложения с текущими правами
highestAvailable - даст запрос на повышение привилегий, если текущий пользователь может обладать соответствующими правами, иначе запустит с текущими правами.
requireAdministrator - даст запрос на повышение привилегий в любом случае. Если текущий пользователь не обладает соответствующими правами, то будет предложено ввести пароль и имя пользователя, входящего в группу "Администраторы".


Другими словами запрос UACRequestedPrivilegesLevel=requireAdministrator может вообще застопорить процесс, запросив исключительно наивысшие права и пароль доступа к ним. В случае же с UACRequestedPrivilegesLevel=highestAvailable приложение имеет возможность стартануть хотя бы с текущими правами... Или я не так понял?

Хотя опять же, это получается, что портабельное приложение лишь запросит права, но не обойдёт UAC и не получит их автоматом. Верно?
Автор: bumburbia
Дата сообщения: 25.03.2015 18:07
regist123
Спасибо за подсказку, я проверил, работают оба параметра: и requireAdministrator, и highestAvailable, т.е. в обоих случаях на иконке собранного exe'шника появляется щит запуска от имени администратора.
Автор: AVanti473
Дата сообщения: 25.03.2015 18:31
bumburbia

Цитата:
если вам неизвестен ответ, а судя по всему он вам неведом



Цитата:
regist123
Спасибо за подсказку, я проверил, работают оба параметра: и requireAdministrator, и highestAvailable


Чисто из любопытства - а ещё постами выше моя фраза:


Цитата:
на этот счёт это параметры Package.ini
UACRequestedPrivilegesLevel=highestAvailable


Вас до комментария от regist123 чем не устроила?
Автор: bumburbia
Дата сообщения: 25.03.2015 18:55
AVanti473

Цитата:
Вас до комментария от regist123 чем не устроила?

AVanti473

Цитата:
UACRequestedPrivilegesLevel=highestAvailable
UACRequestedPrivilegesUiAccess=true
Которые по факту, судя по всему, даже не работают.

" И тут Остапа понесло..." - " Двенадцать стульев" Ильф и Петров.
Остановитесь...



Автор: 007Alex007
Дата сообщения: 26.03.2015 22:32
coherent
Вновь мое запоздалое: спасибо за помощь.
В итоге я отказался от использования, старого loader.exe, походу к новым UltraISO он равнодушен. Зато нашел способ запуска и удаления дров UltraIso через батники (это его родные команды):
Install.bat
IsoCmd.exe -i
Remove.bat
IsoCmd.exe -r
В отличие от loader.exe команда «IsoCmd.exe –r» удаляет не только дрова, но и чистит хвосты в реестре.
Запуск портабелки проходит в WinXP нормально (ThinApp 4.7), но наблюдаются странности в Win7x64 (ThinApp 5.01-5.1):
- если все делать через ThinApp 5.0.1 (сканирование, установка и создание билда), то иногда не удаляются дрова, требуется перезагрузка
- если проект, который вначале был скомпилирован в ThinApp 5.0.1, упаковать в ThinApp 5.1 (инсталлированной версией), то все ОК.
- и еще, лучше копировать и запускать дрова из C:\Windows, из других директорий происходят глюки.
Параметры сборки:
В Package.ini обязательно вписать WorkingDirectory=%SystemRoot%.
В Package.in я еще указал параметры:
ChildProcessEnvironmentExceptions=CMD.EXE
ChildProcessEnvironmentDefault=External
LargeAddressAware=1
AllowExternalKernelModeServices=1
AllowExternalProcessModifications=1
UACRequestedPrivilegesLevel=highestAvailable
AutoStartServices=0
AutoShutdownServices=1
Пока не проверял, может, некоторые параметры и не нужны, но с ними работает.
В папке проекта %SystemRoot% указать ##Attributes.ini = Merged, ну и в папки куда установлена прога все Merged.
Вот и сам скрипт для копирования удаления файлов (приходится копировать файлы, а не папку, поскольку очень часто папка не удаляется):
[more=Script]Option Explicit

Dim fso, SourcePath, MyProgPath, MyProgSource1, MyProgSource2, MyProgSource3, MyProgSource4, MyProgSource5, MyProgDest1, MyProgDest2, MyProgDest3, MyProgDest4, MyProgDest5, id, ib

Function OnFirstSandboxOwner

Set fso = CreateObject("Scripting.FileSystemObject")

SourcePath = ExpandPath("%SystemRoot%")
MyProgPath = ExpandPath("%drive_C%\UltraISO1\drivers")

MyProgSource1 = MyProgPath & "\Install.bat"
MyProgSource2 = MyProgPath & "\Remove.bat"
MyProgSource3 = MyProgPath & "\IsoCmd.exe"
MyProgSource4 = MyProgPath & "\ISODrive.sys"
MyProgSource5 = MyProgPath & "\ISODrv64.sys"

MyProgDest1 = SourcePath & "\Install.bat"
MyProgDest2 = SourcePath & "\Remove.bat"
MyProgDest3 = SourcePath & "\IsoCmd.exe"
MyProgDest4 = SourcePath & "\ISODrive.sys"
MyProgDest5 = SourcePath & "\ISODrv64.sys"

If not fso.FileExists(MyProgDest1) then
fso.CopyFile MyProgSource1, MyProgDest1
End If
If not fso.FileExists(MyProgDest2) then
fso.CopyFile MyProgSource2, MyProgDest2
End If
If not fso.FileExists(MyProgDest3) then
fso.CopyFile MyProgSource3, MyProgDest3
End If
If not fso.FileExists(MyProgDest4) then
fso.CopyFile MyProgSource4, MyProgDest4
End If
If not fso.FileExists(MyProgDest5) then
fso.CopyFile MyProgSource5, MyProgDest5
End If

id = ExecuteExternalProcess("C:\WINDOWS\Install.bat")
WaitForProcess id, 0
End Function

Function OnLastProcessExit
id = ExecuteExternalProcess("C:\WINDOWS\Remove.bat")
WaitForProcess id, 0

If fso.FileExists(MyProgDest1) Then
fso.DeleteFile(MyProgDest1)
End if
If fso.FileExists(MyProgDest2) Then
fso.DeleteFile(MyProgDest2)
End if
If fso.FileExists(MyProgDest3) Then
fso.DeleteFile(MyProgDest3)
End if
If fso.FileExists(MyProgDest4) Then
fso.DeleteFile(MyProgDest4)
End if
If fso.FileExists(MyProgDest5) Then
fso.DeleteFile(MyProgDest5)
End if

End Function [/more]
Может, подскажешь, как упростить этот скрипт, я имею в виду не писать кучу строк типа MyProgDest1…5.

Добавлено:
bumburbia
AVanti473 правильно писал (хоть и как обычно много буковок, но я уже научился фильтровать, у каждого свой стиль писанины)
Цитата:
Но, если даже такие права сборка ThinApp и получит (что сомнительно), то врятли ей это поможет в "прокидывании" через контейнер всех свойств Total Uninstall

UACRequestedPrivilegesLevel=requireAdministrator - отключает только UAC (Контроль учётных записей пользователей), типа не будет назойливой таблички с вопросом "Вы хотите запустить...". Но, если попытаться, что-то скопировать (например, через скрипт), например, на диск С:\ из под обычного пользователя, то "Отказ в доступе" (я тут спрашивал как скопировать скрипт). Поэтому надо запускать портабелку через ПКМ - запуск от имени администратора. Этот параметр UACRequestedPrivilegesLevel я пробовал и уже наступил на эти грабли, зачем этот параметр в ThinApp нужен так и не понял.
Автор: coherent
Дата сообщения: 27.03.2015 11:44
007Alex007

Цитата:
В итоге я отказался от использования, старого loader.exe, походу к новым UltraISO он равнодушен.

Это странно. Я никогда не сталкивался с тем, чтобы loader некорректно устанавливал или удалял драйвера. И вряд ли идеология sys-драйверов изменилась. Хотя...
Единственное, это особенности 7-ки и, в частности, права доступа. Повторюсь, я не специалист по 7-ке, потому что у меня ее нет. Но в тех случаях, когда приходилось работать, все проблемы как раз были связаны с правами, не взирая на то, что работаешь под учеткой админа.

5-ку не использую вообще, поэтому ничего сказать не могу. Я снимки делаю в 4.02, за очень редким исключением в 4.7.3.


Цитата:
Может, подскажешь, как упростить этот скрипт, я имею в виду не писать кучу строк типа MyProgDest1…5.

Можно попробовать так

Код: fso.CopyFile MyProgPath & "\" & "*.*", SourcePath & "\"
Автор: regist123
Дата сообщения: 27.03.2015 15:53
007Alex007 22:32 26-03-2015
Цитата:
UACRequestedPrivilegesLevel=requireAdministrator - отключает только UAC (Контроль учётных записей пользователей), типа не будет назойливой таблички с вопросом "Вы хотите запустить..."

ошибаетесь это принудительный запрос прав администратора. Если у текущего юзера таких прав нет (запущено под ограниченной учёткой), то будет предложено ввести имя и пароль юзера у которого такие права есть.
Автор: 007Alex007
Дата сообщения: 27.03.2015 21:07
coherent

Цитата:
Единственное, это особенности 7-ки и, в частности, права доступа

Я делаю (точнее пытаюсь сделать) сборку для себя, т.е. под админа. Поэтому никаких ограничений вроде как быть не должно, да их и нет, просто почему-то не всегда происходит удаление дров sys из системы, что с loader (я не очень понял какой механизм удаления заложен там), что через батник (использование настоящих, проверенных командой разработчиков) .


Цитата:
Я снимки делаю в 4.02

И я бы так и делал, меньше мусора в сборке, но время не стоит на месте (Win7,8 и т.д.), и некоторые портабелки, сделанные в 4, не запускаются в новых версиях Win. А насчет ThinApp 5.1 (инсталлированная) очень даже хорошо работает, только она тормозная из-за нераспакованности (не знаю, что разработчики намутили с распаковкой, но распакованная очень глючная).


Цитата:
А чем не устраивает установка драйверов в папку (например, drivers) рядом с ехе-шником сборки?

Проблема в том, как прописать в Package.ini параметр WorkingDirectory (почему то для UltraISO это обязательный параметр). Я попытался так:
WorkingDirectory=.
Папка drivers создается-удаляется рядом с портабелкой. [more=Скрипт]Option Explicit

Dim fso, Origin, SourcePath, SourceFolder, DrvFolder, id

Set fso = CreateObject("Scripting.FileSystemObject")
Origin = GetEnvironmentVariable("TS_ORIGIN")
SourcePath = Left(Origin, InStrRev(Origin, "\") - 1)
SourceFolder = ExpandPath("%drive_C%\UltraISO1\drivers")
DrvFolder = SourcePath & "\drivers"

Function OnFirstSandboxOwner
fso.CopyFolder SourceFolder, DrvFolder
id=ExecuteExternalProcess(chr(34) & DrvFolder & "\Install.bat" & chr(34))
WaitForProcess id, 0
End Function

Function OnLastProcessExit
id = ExecuteExternalProcess(chr(34) & DrvFolder & "\Remove.bat" & chr(34))
WaitForProcess id, 0
fso.DeleteFolder DrvFolder
End Function [/more]
Но при попытке запуска батника cmd пишет:
C:\Program Files (x86)\VMware\VMware ThinApp\UltraISO\bin>IsoCmd.exe -i
Driver: ISODrive.SYS is not in the C:\Program Files (x86)\VMware\VMware ThinApp\
UltraISO\bin\ISODrv64.sys directory.
Т.е. ThinApp ищет файл не там, где нужно. Хотя папка с дровами создается-удаляется рядом с портабелкой. Поэтому альтернативой и стал путь %SystemRoot% (когда делал в ThinApp 4.7 для XP с копированием папка drivers в %Temp%, батник постоянно кричал о том, что не найден IsoCmd.exe в C:\Windows).


Цитата:
fso.CopyFile MyProgPath & "\" & "*.*", SourcePath & "\"

А как прописать удаление тех файлов, которые копировались? Или оставлять от прошлой версии? Был бы признателен, если бы у тебя была возможность, доработать мой/немой скрипт, а то он через чур, длинный, для казалось бы, простого копирования.


regist123
Я не профи, а любитель, но доверяю собственному опыту (грабли).
Чем параметр UACRequestedPrivilegesLevel отличается от ПКМ мыши на проге и запуск от имени админа? Я и написал в бессмысленности применения этого параметра. Этот параметр убирает только дополнительные окна запроса (типа украшательство безоконного запуска портабелки), но не дает права админа (я уже писал о копировании скрипта из портабелки в реальную систему, под обычным пользователем). Многие (и я тоже так думал) думают, что при использовании этого параметра прога сразу запустится с админскими правами. На самом деле придется повозиться. И это не только в ThinApp, но и в Spoon. Хотелось бы мне ошибиться и вдруг и вправду есть параметр, который дает права админа портабелке, но думаю, в MS не настолько наивны, чтобы раздавать права всем прогам, направо и налево.

Добавлено:
И еще:
Кто нибудь делал портабелку FontExpert с запуском под Win7 x64? Проблема при запуске пишет:
не зарегистрирован FontExpertAdmin.DLL. Как зарегистрировать или прописать в реальную систему?
Посмотрел портабелку от goodcow. Не работает.
Автор: coherent
Дата сообщения: 27.03.2015 21:49
007Alex007

Цитата:
Но при попытке запуска батника cmd пишет:   C:\Program Files (x86)\VMware\VMware ThinApp\UltraISO\bin>IsoCmd.exe -i Driver: ISODrive.SYS is not in the C:\Program Files (x86)\VMware\VMware ThinApp\ UltraISO\bin\ISODrv64.sys directory.

А если так?

Код: fso.CopyFolder SourceFolder, DrvFolder & "\"
Автор: 007Alex007
Дата сообщения: 27.03.2015 22:13
coherent
Source: Ошибка выполнения Microsoft VBScript
Description: Путь не найден
File: (null)
Line 11, Character 2
at:

Добавлено:
Добавил параметр %~dp0\IsoCmd.exe к батникам с настройками скрипта старыми\новыми ответ cmd:
C:\Program Files (x86)\VMware\VMware ThinApp\UltraISO\bin>C:\Program Files (x86)
\VMware\VMware ThinApp\UltraISO\bin\drivers\\IsoCmd.exe -i
"C:\Program" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Как я и говорил cmd требует файлы в %SystemRoot%.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149

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


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