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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224

   

coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Astra55
Только что прочитал мануал, который вы выложили. В лучших традициях учебных методичек для студентов! Жаль, если не будет продолжения. Понятно, что все держится на чистом энтузиазме и наличии свободного времени.
В качестве предложений:  
1. хорошо бы пройтись по всем опциям Package.ini, особенно тем, которые добавляются ручками, в том же духе с конкретными примерами.
2. не обязательно полностью довести мануал до конца и потом выложить целиком, можно выкладывать по частям по мере готовности либо просто обновлять "версию" мануала.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 13:39 01-08-2011
sasherb



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

Цитата:
1. хорошо бы пройтись по всем опциям Package.ini, особенно тем, которые добавляются ручками, в том же духе с конкретными примерами.  

Вот и меня этот вопрос интересует

----------
Intel Core i3-4130/ASRock H81M-VG4 R2.0/ATI HD7750/8GB/SSD 240GB/FSP 550 80GLN/BenQ GW2260

Всего записей: 4071 | Зарегистр. 11-09-2009 | Отправлено: 13:57 01-08-2011
SpoinT



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Есть идея создать видео-урок или презентацию продукта, где показать на конкретных примерах, как делать портативные версии, также упомянуть о частых вопросах по программе и пройтись по всем параметрам.
 
 
Не просто видео, а со всплывающими сообщениями, диалогами и прочим хламом.
 
 
Вопрос постояльцам темы, нужно ли вообще такое?

Всего записей: 840 | Зарегистр. 31-01-2007 | Отправлено: 00:37 02-08-2011 | Исправлено: SpoinT, 00:41 02-08-2011
sasherb



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

----------
Intel Core i3-4130/ASRock H81M-VG4 R2.0/ATI HD7750/8GB/SSD 240GB/FSP 550 80GLN/BenQ GW2260

Всего записей: 4071 | Зарегистр. 11-09-2009 | Отправлено: 09:03 02-08-2011
SpoinT



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sasherb
Вы готовы поучавствовать? Опять же, кому именно нужно? Правда, ради двух-трех человек возится не хочется, а если презентация реально пригодится многим, то можно и сделать.
 
p.s. большинство видео сделаны аляповато, ненужное время, куча фонового мусора, лишние движухи мышкой и многое другое

Всего записей: 840 | Зарегистр. 31-01-2007 | Отправлено: 09:24 02-08-2011
sasherb



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SpoinT
И что от меня надо? Сам я плоховато шарю

----------
Intel Core i3-4130/ASRock H81M-VG4 R2.0/ATI HD7750/8GB/SSD 240GB/FSP 550 80GLN/BenQ GW2260

Всего записей: 4071 | Зарегистр. 11-09-2009 | Отправлено: 09:31 02-08-2011 | Исправлено: sasherb, 09:49 02-08-2011
SpoinT



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sasherb
Когда желающий народ соберется, тогда можно будет и обсудить.
 
p.s. технической реализацией (создание самой презентации) буду заниматься лично.

Всего записей: 840 | Зарегистр. 31-01-2007 | Отправлено: 09:59 02-08-2011 | Исправлено: SpoinT, 10:02 02-08-2011
sasherb



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


----------
Intel Core i3-4130/ASRock H81M-VG4 R2.0/ATI HD7750/8GB/SSD 240GB/FSP 550 80GLN/BenQ GW2260

Всего записей: 4071 | Зарегистр. 11-09-2009 | Отправлено: 10:01 02-08-2011
SpoinT



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А насчет того, что нужно:
 
1. какой именно софт рассматривать в презентации
2. какие шаги наиболее подробно комментировать
3. необходима информация по всем параметрам
4. как должна выглядеть презентация (т.е. с чего начинать и чем заканчивать в данном случае)
5. и т.д.
 
в общем вопросов много и все их нужно согласовать, тогда получится достойный мануал.

Всего записей: 840 | Зарегистр. 31-01-2007 | Отправлено: 10:13 02-08-2011
aiki



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По-моему если делать видео, то там все должно быть без спорных вещей типа RegistryIsolationMode=Merged ? :)  
ЗЫ Что-то у меня ответы склеиваются с какими-то постами двухлетней давности?

Всего записей: 673 | Зарегистр. 25-12-2002 | Отправлено: 10:38 02-08-2011 | Исправлено: aiki, 10:42 02-08-2011
SimffAS



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

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

Конечно же нужно. Чем смогу почувствую.

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

Но вот на эти вопросы не возьму смелость отвечать. Это пусть более профессиональные коллеги скажут

Всего записей: 509 | Зарегистр. 20-03-2003 | Отправлено: 10:43 02-08-2011
SpoinT



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
aiki
Ну я про это и говорю, что необходимо вынести абсолютно всю информацию, совсем необязательно по каждой опции показывать на примере, как программа себя ведет, но описать и рассказать для чего она - обязательно.

Всего записей: 840 | Зарегистр. 31-01-2007 | Отправлено: 10:44 02-08-2011
aiki



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
и тогда уж предлагаю затронуть не только использование Vb скрипта, но и autoit :)  Берусь нарисовать пару примеров если что :)  

Всего записей: 673 | Зарегистр. 25-12-2002 | Отправлено: 11:24 02-08-2011
SpoinT



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
aiki
А вот здесь подробнее, зачем затрагивать autoit и скрипты? Это не использование возможностей программы, это использование стороннего софта. Это банальное увеличение функционала софта за счет другого софта. Так можно кучу хлама пихать, начиная от vbs и bat и заканчивая отдельных вспомогательных скомпилированных приложений.

Всего записей: 840 | Зарегистр. 31-01-2007 | Отправлено: 12:01 02-08-2011
aiki



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот например про Autoit там может быть
 
=========
 
С помощью связки Autoit + ThinApp можно решать массу интересных задач, которые иногда могут быть трудновыполнимы с помощью стандартного VB скриптинга. Самыми полезными задачами могут быть отслеживание виртуальных процессов, выгрузка их из памяти при выходе, вычисление зависших процессов (через сравнение списка окон и списка процессов), организация меню в трее, добавление пунктов в меню "Отправить" правой кнопки, перенос значимых каталогов (типа почты аутлука-тандерберда) из песочницы в папку с запускаемым файлом, защита от многократного запуска,  
Обычно такая связка активируется путем простой подмены запускного файла.  
 
Пример 1:
Предположим что в нашем Package.ini имеются строчки

Код:
Source=%drive_C%\ProgFolder\File.exe
Icon=%drive_C%\ProgFolder\File.exe

При этом в виртуальной файловой системе File.exe находится в папке
C:\ProgFolder\File.exe
 
Теперь мы можем написать простой скрипт на Autoit

Код:
#NoTrayIcon
$confr = MsgBox(1,"Предупреждение", "Вы действительно хотите"&@CRLF&"запустить Название программы?")
If $confr == 1 Then
    If Not ProcessExists("File.exe") Then
        Run ("C:\ProgFolder\File.exe")
    Else
        ToolTip("судя по всему File.exe уже запущен", 300, 300 ,"Извините, но",1,2)
        Sleep(2000)
    EndIf
EndIf

скомпилировать его под именем Loader.exe, положить рядом с File.exe и изменить Package.ini

Код:
Source=%drive_C%\ProgFolder\Loader.exe
Icon=%drive_C%\ProgFolder\File.exe

 
Теперь при запуске портативной программы, скрипт сначала спросит у пользователя действительно ли он хочет запустить эту программу, а потом проверит ее наличие в виртуальной памяти. Если процесс не обнаружится, то программа запустится, а если она уже запущена, то в точке с координатами 300 на 300 точек считая от верхнего левого угла экрана выведется сообщение об ошибке.
 
Пример 2:
Пишем свой аналог Process Killer
 
Предположим теперь что во время своей работы программа File.exe может инициировать запуск других процессов. С помощью нашего Loader.exe можно это все отследить и придушить при выходе. Примерно вот так
 

Код:
$confr = MsgBox(1,"Предупреждение", "Вы действительно хотите"&@CRLF&"запустить File.exe?")
If $confr == 1 Then
    If Not ProcessExists("File.exe") Then
        Run ("C:\ProgFolder\File.exe")
    Else
        ToolTip("судя по всему File.exe уже запущен", 300, 300 ,"Извините, но",1,2)
        Sleep(2000)
    EndIf
EndIf
 
; 2 раза в секунду проверяем наличие в виртуальной памяти процесса File.exe
While 1
    If Not ProcessExists("File.exe") Then
        ExitLoop
    EndIf
    Sleep(500)
EndIf
 
; Процесс пропал - выгружаем всю ветку
 
$u = 0
While 1
     $u += 1
    $varu = RegEnumVal("HKEY_LOCAL_MACHINE\Software\Thinstall\ProcessList", $u)
    $keyu = StringRegExp(RegRead("HKEY_LOCAL_MACHINE\Software\Thinstall\ProcessList", $varu), ".+\\([^\\]+.exe)",1)
    If IsArray($keyu) > 0 Then
        If ProcessExists($keyu[0]) Then
            If $keyu[0] <> "Loader.exe" Then ;Не будем пытаться выгрузить сами себя :)  
                ToolTip("Выгружается "&$keyu[0], 300, 300,"Подождите..",1,2)
                KillPr($varu)
            EndIf
        EndIf
    Else
        ExitLoop
    EndIf
WEnd
 
ToolTip("")
 
;Функция для настойчивой выгрузки процессов из памяти
Func KillPr($PrNm)
    $i = 0
    $j = 0
    While $i < 17
        $i = $i + 1
        $j = $j + 1
        If ProcessExists($PrNm) Then
            If $j > 0 Then
                ProcessClose($PrNm)
                Sleep(100)
                $j = -4
            EndIf
        Else
            ExitLoop
        EndIf
        Sleep(100)
    WEnd
EndFunc

 
Пример 3:
Чтобы окончательно взорвать мозг - отследим зависнутость процессов в портативном офисе :)  
Для этой цели запустим с основным офисом еще и проверялку:
Для этого в коде Loader.exe после запуска например
 Run ("C:\ProgFolder\Winword.exe")
добавим
If Not ProcessExists("_checker_.exe") Then
        Run ("_checker_.exe")
EndIf
 
и код _checker_.au3:

Код:
;#NoTrayIcon
;координаты для тултипов
$x = 300
$y = 200
;позреваем что подозрительные процессы в системе не запущены
$ctf = 1
$rdll = 1
$setp = 1
;перечисляем компоненты Офиса
$aName = StringSplit ("OIS.EXE,ONENOTE.EXE,INFOPATH.EXE,WINPROJ.EXE,MSACCESS.EXE,MSPUB.EXE,VISIO.EXE,OUTLOOK.EXE,POWERPNT.EXE,EXCEL.EXE,WINWORD.EXE", ",")
$aMessage = StringSplit ("диспетчер рисунков,OneNote,InfoPath,Project,Access,Publisher,Visio,Outlook,PowerPoint,Excel,Word", ",")
; забиваем единички в список подозрительности
$aWins = StringSplit("1,1,1,1,1,1,1,1,1,1,1", ",")
;засекаем состояние процессов, которорые может запустить офис
If ProcessExists("ctfmon.exe") Then
    $ctf = 0
EndIf
If ProcessExists("rundll32.exe") Then
    $rdll = 0
EndIf
If ProcessExists("setup.exe") Then
    $set_up = 0
EndIf
$h = 0 ; задаем условие выхода
While 1
    $h += 1 ; выйдем после 8-го пустого цикла
    $wins = WinList() ; создаем список окон
    For $b = 1 to 11 Step 1 ; пробегаемся по процессам офиса
        If  ProcessExists($aName[$b]) Then ; процесс найден в памяти
            $h = 0 ; процесс найден - цикл не пустой и выходить рано
            $proc = ProcessExists($aName[$b]) ; получаем Pid процесса
            $aWins[$b] += 1 ; увеличиваем счетчик подозрительности для этого процесса
            For $i = 1 to $wins[0][0] ; пробегаем по списку
                If $wins[$i][0] <> "" AND _IsWinVisible($wins[$i][1]) Then ; окошко существует и видимо
                    If WinGetProcess($wins[$i][0]) = $proc Then ; Pid окошка совпадает c Pid процесса
                        $aWins[$b] = 1 ; окошко найдено - сбрасываем счетчик подозрительности
                    EndIf
                EndIf
            Next
        EndIf
    Next
    For $b = 1 to 11 Step 1 ; пробегаемся по списку подозрительности
        If $aWins[$b] > 20 Then ; Процесс уже 20 секунд находится в памяти, а его окошка нет
            ;Спрашиваем совета у хозяина
            $confr = MsgBox(1,"Внимание", "Судя по всему "& $aMessage[$b] & " завис в памяти" &@CRLF&"Хотите завершить этот процесс?")
            If $confr == 1 Then ; Добро на уничтожение получено
                KillPr($aName[$b])
                $aWins[$b] = 1 ; сбрасываем счетчик подозрительности
            EndIf
        EndIf
    Next
    Sleep(500) ; поспим полсекунды чтобы не грузить систему
    If $h > 8 Then ; уже 4 секунды в памяти нет ни одного офисного процесса - выходим
        ExitLoop
    EndIf
WEnd
 
Ending() ; подчищаем хвосты
 
Func Ending()
    $u = 0
    While 1
         $u += 1
        $varu = RegEnumVal("HKEY_LOCAL_MACHINE\Software\Thinstall\ProcessList", $u)
        $keyu = StringRegExp(RegRead("HKEY_LOCAL_MACHINE\Software\Thinstall\ProcessList", $varu), ".+\\([^\\]+.exe)",1)
        If IsArray($keyu) > 0 Then
            If ProcessExists($keyu[0]) Then
                If $keyu[0] <> @ScriptName Then
                    ToolTip("Выгружается "&$keyu[0], $x, $y,"Подождите..",1,2)
                    KillPr($varu)
                EndIf
            EndIf
        Else
            ExitLoop
        EndIf
    WEnd
    If ProcessExists("ctfmon.exe") Then
        If $ctf > 0 Then
            ToolTip("Выгружается подддержка альтеранативного ввода", $x, $y,"Подождите..",1,2)
            KillPr("ctfmon.exe")
        EndIf
    EndIf
    If ProcessExists("rundll32.exe") Then
        If $rdll > 0 Then
            ToolTip("Выгружается подддержка системных вызовов", $x, $y,"Подождите..",1,2)
            KillPr("rundll32.exe")
        EndIf
    EndIf
    If ProcessExists("setup.exe") Then
        If $set_up > 0 Then
            ToolTip("Отключается Setup Controller", $x, $y,"Подождите..",1,2)
            KillPr("Setup.exe")
        EndIf
    EndIf
    If ProcessExists("msiexec.exe") Then
        If $set_up > 0 Then
            ToolTip("Завершаются установочные процессы", $x, $y,"Подождите..",1,2)
            KillPr("msiexec.exe")
        EndIf
    EndIf
EndFunc
 
Func KillPr($PrNm)
    $i = 0
    $j = 0
    While $i < 17
        $i = $i + 1
        $j = $j + 1
        If ProcessExists($PrNm) Then
            If $j > 0 Then
                ProcessClose($PrNm)
                Sleep(100)
                $j = -4
            EndIf
        Else
            ExitLoop
        EndIf
        Sleep(100)
    WEnd
EndFunc
 
Func _IsWinVisible($handle)   ;Is Window Visible
    If BitAnd( WinGetState($handle), 2 ) Then  
        Return 1
    Else
        Return 0
    EndIf
EndFunc

Всего записей: 673 | Зарегистр. 25-12-2002 | Отправлено: 12:07 02-08-2011 | Исправлено: aiki, 18:33 02-08-2011
SpoinT



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Нужно сначала сделать по ОСНОВНЫМ возможностям программы видео-мануал, а потом уже огород городить Большинству до сих пор непонятны тонкости настройки конфигурационного файла, нет раскрытия всего функционала.
 
Добавлено:
aiki
Почитайте мои сообщения.

Всего записей: 840 | Зарегистр. 31-01-2007 | Отправлено: 12:15 02-08-2011
aiki



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да я в принципе не настаиваю :)  Просто обидно что всегда и тщательно рассматривается vb скрипт, а autoit, который многое может сделать проще и лучше - вообще забываем :)  

Всего записей: 673 | Зарегистр. 25-12-2002 | Отправлено: 12:27 02-08-2011
sasherb



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

Цитата:
Нужно сначала сделать по ОСНОВНЫМ возможностям программы видео-мануал, а потом уже огород городить Большинству до сих пор непонятны тонкости настройки конфигурационного файла, нет раскрытия всего функционала.

Золотые слова!

----------
Intel Core i3-4130/ASRock H81M-VG4 R2.0/ATI HD7750/8GB/SSD 240GB/FSP 550 80GLN/BenQ GW2260

Всего записей: 4071 | Зарегистр. 11-09-2009 | Отправлено: 12:28 02-08-2011
SpoinT



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
aiki
Любые предложения рассмотрим! Просто согласитесь, что AutoIT - это по сути разработка, такая же, как и на том же с, c#, vb, но более упрощенная. Языки программирования тоже рассматривать в мануале?
 
Людям не хватает основного функционала, они начинают искать сторонние методы, чтобы увеличить возможности, который дает им ThinApp, но их меньшинство, мануал нужно разработать сначала для большинства, а потом затронуть интересы всех, просто если будем делать узконаправленный мануал, то он не будет сильно востребован, а еще хуже, он породит больше вопросов у новичков, чем было, если они вообще поймут его.

Всего записей: 840 | Зарегистр. 31-01-2007 | Отправлено: 12:36 02-08-2011
Astra55



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

Цитата:
 все должно быть без спорных вещей типа RegistryIsolationMode=Merged  

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


----------
Per warez ad scientiam

Всего записей: 11717 | Зарегистр. 16-05-2003 | Отправлено: 13:14 02-08-2011
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224

Компьютерный форум 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