Создание Portable программы
Цитата: Андрей от 25.08.2022, 18:48Цитата: Mikhail от 25.08.2022, 18:42Привет.
У вас тоже в рег файлеHKEY_USERS\S-1-5-21-3059127735-1346336193-714424541-1001.Я только в .ini-файлике заменил на
HKCU, поскольку программа при работе всё равно вHKEY_USERS\S-1-5-21-3059127735-1346336193-714424541-1001создаёт ветку реестра, даже если в .reg прописатьHKCU. Пока не пойму, как от этого избавиться.
Цитата: Mikhail от 25.08.2022, 18:42Привет.
У вас тоже в рег файлеСкопированоHKEY_USERS\S-1-5-21-3059127735-1346336193-714424541-1001.
Я только в .ini-файлике заменил на СкопированоHKCU, поскольку программа при работе всё равно в СкопированоHKEY_USERS\S-1-5-21-3059127735-1346336193-714424541-1001 создаёт ветку реестра, даже если в .reg прописать СкопированоHKCU. Пока не пойму, как от этого избавиться.
Цитата: Mikhail от 25.08.2022, 18:50Ну да HKCU(текущий пользователь) и HKEY_USERS(Все) это одно и тоже, только брать надо реестр с текущего, то есть HKCU, если удалить запись из HKCU, то удалиться и из HKEY_USERS.
Ну да HKCU(текущий пользователь) и HKEY_USERS(Все) это одно и тоже, только брать надо реестр с текущего, то есть HKCU, если удалить запись из HKCU, то удалиться и из HKEY_USERS.
Цитата: Андрей от 25.08.2022, 19:02Цитата: Mikhail от 25.08.2022, 18:50Ну да HCKU(текущий пользователь) и HKEY_USERS(Все) это одно и тоже, только брать надо реестр с текущего, то есть HKCU, если удалить запись из HKCU, то удалиться и из HKEY_USERS.
Понял. Спасибо за совет, исправил! Я это сразу заметил, просто не увидел разницы и оставил .reg-файлик в покое. 🙂
А как быть вот с этой ситуацией? Помимо актуальной ветки для программы, создаётся и оригинальная, которая лежала вC:\Programm Files (x86).
Цитата: Mikhail от 25.08.2022, 18:50Ну да HCKU(текущий пользователь) и HKEY_USERS(Все) это одно и тоже, только брать надо реестр с текущего, то есть HKCU, если удалить запись из HKCU, то удалиться и из HKEY_USERS.
Понял. Спасибо за совет, исправил! Я это сразу заметил, просто не увидел разницы и оставил .reg-файлик в покое. 🙂
А как быть вот с этой ситуацией? Помимо актуальной ветки для программы, создаётся и оригинальная, которая лежала в СкопированоC:\Programm Files (x86).
Цитата: Алик от 25.08.2022, 19:07Андрей, здравствуйте, не подскажете, пожалуйста, где я могу глянуть, как сделать лаунчер распаковки портабл, как у вас?)
Андрей, здравствуйте, не подскажете, пожалуйста, где я могу глянуть, как сделать лаунчер распаковки портабл, как у вас?)
Цитата: Андрей от 25.08.2022, 19:14Цитата: Алик от 25.08.2022, 19:07Андрей, здравствуйте, не подскажете, пожалуйста, где я могу глянуть, как сделать лаунчер распаковки портабл, как у вас?)
Привет! Честно говоря, делаю самым топорным образом. Это лаунчер, который я увидел в портативных версиях Хачатура. Обычный SFX-архив. Запаковываешь свою программу в SFX, далее открываешь .exe'шник с помощью Resource Hacker, и редактируешь необходимое окошко. У меня вот такое содержание:
STARTDLG DIALOG 27, 47, 321, 69 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Распаковка Portable SmartPSS" LANGUAGE LANG_RUSSIAN, 0x0 FONT 8, "MS Shell Dlg 2" { CONTROL "", 102, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 9, 23, 196, 22 CONTROL "Обзор...", 103, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 208, 22, 41, 14 CONTROL "Укажите каталог, в который следует поместить папку Portable SmartPSS", 110, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 9, 6, 252, 9 CONTROL "Прогресс распаковки:", 107, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 9, 39, 81, 8 CONTROL "", 106, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 9, 50, 304, 10 CONTROL "Распаковать", 1, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 252, 22, 61, 14 }В строке каждого CONTROL'а, самые правые числовые значения - это размер контрола. Если, например, ты заменишь Portable SmartPSS на что-нибудь длиннее, то оно в эти рамки не влезет, надо будет указывать ширину уже не 252, а больше. Ну, сам разберёшься. Далее просто компилируешь и сохраняешь. Если накосячишь - Resource Hacker создаёт бэкап оригинального файла, рядом с изменённым.
Цитата: Алик от 25.08.2022, 19:07Андрей, здравствуйте, не подскажете, пожалуйста, где я могу глянуть, как сделать лаунчер распаковки портабл, как у вас?)
Привет! Честно говоря, делаю самым топорным образом. Это лаунчер, который я увидел в портативных версиях Хачатура. Обычный SFX-архив. Запаковываешь свою программу в SFX, далее открываешь .exe'шник с помощью Resource Hacker, и редактируешь необходимое окошко. У меня вот такое содержание:
STARTDLG DIALOG 27, 47, 321, 69
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Распаковка Portable SmartPSS"
LANGUAGE LANG_RUSSIAN, 0x0
FONT 8, "MS Shell Dlg 2"
{
CONTROL "", 102, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 9, 23, 196, 22
CONTROL "Обзор...", 103, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 208, 22, 41, 14
CONTROL "Укажите каталог, в который следует поместить папку Portable SmartPSS", 110, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 9, 6, 252, 9
CONTROL "Прогресс распаковки:", 107, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 9, 39, 81, 8
CONTROL "", 106, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 9, 50, 304, 10
CONTROL "Распаковать", 1, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 252, 22, 61, 14
}
В строке каждого CONTROL'а, самые правые числовые значения - это размер контрола. Если, например, ты заменишь Portable SmartPSS на что-нибудь длиннее, то оно в эти рамки не влезет, надо будет указывать ширину уже не 252, а больше. Ну, сам разберёшься. Далее просто компилируешь и сохраняешь. Если накосячишь - Resource Hacker создаёт бэкап оригинального файла, рядом с изменённым.
Цитата: Алик от 25.08.2022, 19:21Спасибо большое!
Спасибо большое!
Цитата: Mikhail от 26.08.2022, 02:55Цитата: Алик от 25.08.2022, 19:07Андрей, здравствуйте, не подскажете, пожалуйста, где я могу глянуть, как сделать лаунчер распаковки портабл, как у вас?
Да тут на форуме не раз кидали видео от Хачатура.
Цитата: Андрей от 25.08.2022, 19:02А как быть вот с этой ситуацией? Помимо актуальной ветки для программы, создаётся и оригинальная, которая лежала в
C:\Programm Files (x86).Чета я не понял, что где создается, в одной же ветке все, да и ладно, все заберет, все и вернет.
У меня созданный виртуальным(не люблю когда таскает папки туда, сюда по системе) + C#, реестр изолирован, я не заморачивался, муха даже не пролетит туда.
Цитата: Алик от 25.08.2022, 19:07Андрей, здравствуйте, не подскажете, пожалуйста, где я могу глянуть, как сделать лаунчер распаковки портабл, как у вас?
Да тут на форуме не раз кидали видео от Хачатура.
Цитата: Андрей от 25.08.2022, 19:02А как быть вот с этой ситуацией? Помимо актуальной ветки для программы, создаётся и оригинальная, которая лежала в
СкопированоC:\Programm Files (x86).
Чета я не понял, что где создается, в одной же ветке все, да и ладно, все заберет, все и вернет.
У меня созданный виртуальным(не люблю когда таскает папки туда, сюда по системе) + C#, реестр изолирован, я не заморачивался, муха даже не пролетит туда.
Цитата: Андрей от 26.08.2022, 06:38Привет, Миш!
Я о том, что в .reg-файле изначально указана лишь ветка реестраHKEY_CURRENT_USER\Software\Trolltech\Qt Plugin Cache 4.8.false\C:\Program Files (x86)\..., в которой отражён путь, куда программа была установлена, и он её же тянет в реестр (что логично), но создаётся в [simple_tooltip content='Qt Plugin Cache 4.8.false']в этой же ветке[/simple_tooltip] ещё и другая -D:\Apps\и так далее (как бы транслируя путь, в котором сейчас лежит программа). По сути - хрен бы с ними, по завершении программы - из реестра всё это вычищается, но просто интересно, есть ли возможность избегать таких приколов (например, как-нибудь в реестре указать относительный путь)?
Привет, Миш!
Я о том, что в .reg-файле изначально указана лишь ветка реестра СкопированоHKEY_CURRENT_USER\Software\Trolltech\Qt Plugin Cache 4.8.false\C:\Program Files (x86)\..., в которой отражён путь, куда программа была установлена, и он её же тянет в реестр (что логично), но создаётся в в этой же ветке ещё и другая - СкопированоD:\Apps\ и так далее (как бы транслируя путь, в котором сейчас лежит программа). По сути - хрен бы с ними, по завершении программы - из реестра всё это вычищается, но просто интересно, есть ли возможность избегать таких приколов (например, как-нибудь в реестре указать относительный путь)?
Цитата: Mikhail от 26.08.2022, 06:52Понял, это первый софт такой который так делает, поэтому я и сказал в первом сообщение когда сделал, противный софт немного, поэтому я его решил просто завернуть в контейнер виртуальный и не париться.
Ты вообще в след раз если софт не настраиваешь, то и reg файл не нужно кидать в settings, только в ini файле запись оставь, откуда ему брать реестр и все. На Пк человека для которого делал, реестр после того как человек настроит, сам экспортируется(после завершение программы) в нужном виде и для его ПК в папку Data\settings.
Понял, это первый софт такой который так делает, поэтому я и сказал в первом сообщение когда сделал, противный софт немного, поэтому я его решил просто завернуть в контейнер виртуальный и не париться.
Ты вообще в след раз если софт не настраиваешь, то и reg файл не нужно кидать в settings, только в ini файле запись оставь, откуда ему брать реестр и все. На Пк человека для которого делал, реестр после того как человек настроит, сам экспортируется(после завершение программы) в нужном виде и для его ПК в папку Data\settings.
Цитата: Flamer от 03.09.2022, 18:18Привет✌️
Учусь делать портативки. Я уже сделал программу по видео Хачатура (через ThinApp) и все вроде работает, но один файл по пути C:\Windows\Prefetch все же есть. Как сделать так, чтобы он сохранялся в папку рядом с портативной программой? Так же хотелось бы узнать как проверить реестр на наличие мусорных записей.
Привет✌️
Учусь делать портативки. Я уже сделал программу по видео Хачатура (через ThinApp) и все вроде работает, но один файл по пути C:\Windows\Prefetch все же есть. Как сделать так, чтобы он сохранялся в папку рядом с портативной программой? Так же хотелось бы узнать как проверить реестр на наличие мусорных записей.
Цитата: XpucT от 03.09.2022, 18:27Flamer, привет 🖐
ThinApp точно не оставляет ничего в реестре, ибо не может, т.к. полностью виртуализирован.
А вот данные в папке Prefetch не просто не обязательно, а не нужно трогать.Эта папка служит для кэширования ранее запущенных программ, чтобы открывались быстрее. Нужная это услуга или медвежья – другая история. Главное, что к Твоей портативке эта папка не имеет никакого отношения. То есть трогать его не нужно.
Flamer, привет 🖐
ThinApp точно не оставляет ничего в реестре, ибо не может, т.к. полностью виртуализирован.
А вот данные в папке Prefetch не просто не обязательно, а не нужно трогать.
Эта папка служит для кэширования ранее запущенных программ, чтобы открывались быстрее. Нужная это услуга или медвежья – другая история. Главное, что к Твоей портативке эта папка не имеет никакого отношения. То есть трогать его не нужно.
Цитата: Flamer от 03.09.2022, 18:45Понял, спасибо за ответ.
Хотел бы задать еще пару вопросов. MIUICacheDel во время сборки портативки самостоятельно встраивается в ехе-файл? Спрашиваю ибо в видео было сказано, что в папку Project можно кинуть любой vbs скрипт, а вот присутствует он в портативной программе или нет я так и не понял.
Это нормально что вес всего проекта 960 КБ, а собранная портативная программа весит целых 4,9 МБ? Различные %папки% почистил если что. И есть ли какие-то рекомендации по созданию портативных приложений скачанных с microsoft store? Или процесс ничем не отличается от обычной ехе программы?
Понял, спасибо за ответ.
Хотел бы задать еще пару вопросов. MIUICacheDel во время сборки портативки самостоятельно встраивается в ехе-файл? Спрашиваю ибо в видео было сказано, что в папку Project можно кинуть любой vbs скрипт, а вот присутствует он в портативной программе или нет я так и не понял.
Это нормально что вес всего проекта 960 КБ, а собранная портативная программа весит целых 4,9 МБ? Различные %папки% почистил если что. И есть ли какие-то рекомендации по созданию портативных приложений скачанных с microsoft store? Или процесс ничем не отличается от обычной ехе программы?
Цитата: Flamer от 03.09.2022, 19:22Почему-то не работает запуск при входе в систему. Заметил, что если даже убрать галочку, то при следующем запуске программы она появится. С другими параметрами такой странности нет. Подскажите, пожалуйста, в чем может быть дело?
Почему-то не работает запуск при входе в систему. Заметил, что если даже убрать галочку, то при следующем запуске программы она появится. С другими параметрами такой странности нет. Подскажите, пожалуйста, в чем может быть дело?
Цитата: Mikhail от 04.09.2022, 01:49Добрый🖐.
Это же виртуализированный portable, а значит запуск при входе пишется в виртуальный реестр, а не в реальный, закинь в планировщик сам или через твикер.Цитата: Flamer от 03.09.2022, 18:45MIUICacheDel во время сборки портативки самостоятельно встраивается в ехе-файл?
При сборке встраивается.
Это нормально что вес всего проекта 960 КБ, а собранная портативная программа весит целых 4,9 МБ?
Давно не пользовался ThinApp, но да, нормально, контейнер (exe файл) тоже имеет вес.
Справка по ThinApp, там есть все, как использовать vbs и прочее.
Добрый🖐.
Это же виртуализированный portable, а значит запуск при входе пишется в виртуальный реестр, а не в реальный, закинь в планировщик сам или через твикер.
Цитата: Flamer от 03.09.2022, 18:45MIUICacheDel во время сборки портативки самостоятельно встраивается в ехе-файл?
При сборке встраивается.
Это нормально что вес всего проекта 960 КБ, а собранная портативная программа весит целых 4,9 МБ?
Давно не пользовался ThinApp, но да, нормально, контейнер (exe файл) тоже имеет вес.
Справка по ThinApp, там есть все, как использовать vbs и прочее.