<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>SyMenu - SyMenu Suite - SPS Builder code snippets - Messages</title>
<link>https://ugmfree.it/forum/messages.aspx?TopicID=649</link>
<description>SyMenu - SyMenu Suite - SPS Builder code snippets - Messages</description>
<language>en-us</language>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<pubDate>Tue, 05 Jan 2021 12:37:07 GMT</pubDate>
<lastBuildDate>Tue, 05 Jan 2021 12:37:07 GMT</lastBuildDate>
<item>
<link>https://ugmfree.it/forum/messages.aspx?TopicID=649</link>
<title>Message from Gianluca</title>
<description><![CDATA[<b>Electron apps</b><br/>Electron is a framework that allows the creation of applications, Windows desktop ones but not only, with web technologies such as JavaScript, HTML, and CSS. <br/><br/>Every Electron app packed to be a Windows desktop application, uses the AppData\Roaming folder to store the user customization and files. We don't like this behavior very much because this way the application settings become not portable.<br/><br/>The solution is pretty easy.<br/>With the SPS script after install you can instruct SyMenu to build a proper folder inside the application root and to force the Electron app to use that folder as a replacement of AppData\Roaming.<br/><br/>Example:<br/><br/>MakeDir .\USERPROFILE\AppData\Roaming<br/>AddVar USERPROFILE=.\USERPROFILE<br/><br/><br/>Certain Electron apps are less greedy and only need to know where AppData folder is. If the others folders lack, they'll be created on the fly.<br/>For example Visual Studio Code only needs this script after install:<br/>AddVar APPDATA=.\<br/><br/>With this instruction only VS Code is able to create the needed folder (namely Code) into the root. Inside the Code folder it stores all its user files.<br/><br/>In general the Electron apps outputs are really easy to redirect.]]></description>
<pubDate>Tue, 05 Jan 2021 12:37:07 GMT</pubDate>
</item>
<item>
<link>https://ugmfree.it/forum/messages.aspx?TopicID=649</link>
<title>Message from VVV_Easy_Symenu</title>
<description><![CDATA[Updated with<br/><br/><br/><b>KeyCastOW:</b><br/>Now the build is dowloaded from well know <a href="https://chocolatey.org/" target="_blank" rel="nofollow">Chocolatey.org</a>.<br/><i>"Chocolatey  is a software management solution unlike anything else you've ever  experienced on Windows. Chocolatey brings the concepts of true package  management to allow you to version things, manage dependencies and  installation order, better inventory management, and other features."</i><br/><br/><br/>The "nupkg" package is  a zip archive and, in this case, you can get easily the original program.]]></description>
<pubDate>Sun, 31 May 2020 11:26:33 GMT</pubDate>
</item>
<item>
<link>https://ugmfree.it/forum/messages.aspx?TopicID=649</link>
<title>Message from VVV_Easy_Symenu</title>
<description><![CDATA[Updated with<br/><b><br/></b><br/><b>MuseScore X64:</b><br/>MuseScore is the typical FOSS application developed with QT5 that it is practically portable in itself but not stealth by the folders it uses to save the configurations:<br/><br/>%APPDATA%\MuseScore, %LOCALAPPDATA%\MuseScore,<br/> %USERPROFILE%\Documents\MuseScore and %USERPROFILE%\Desktop (is used as default in Open Foldeer Dialog)<br/> <br/>the solution is to use the change of system variables that SyMenu has, reconfiguring USERPROFILE operating system variable. This is this is done in the section <b>Scrip After Install</b>:<br/>MakeDir ".\USERPROFILE_PORTABLE"<br/>MakeDir ".\USERPROFILE_PORTABLE\AppData"<br/>MakeDir ".\USERPROFILE_PORTABLE\AppData\Local"<br/>MakeDir ".\USERPROFILE_PORTABLE\AppData\Roaming"<br/>MakeDir ".\USERPROFILE_PORTABLE\Documents"<br/>MakeDir ".\USERPROFILE_PORTABLE\Desktop"<br/>AddVar USERPROFILE=..\..\USERPROFILE_PORTABLE<br/>DelFile *.msi<br/><br/>Some remarks:<br/><br/>1.      In the 'MakeDir' stataments we use "<span style="color:FF3300"><b>.\</b></span>USERPROFILE_PORTABLE" because the statement is going to <u>be executed by installer</u> and the reference is the install folder, <b>MuseScore_ (x64) _sps\</b>.<br/>2. In the 'AddVar' stataments we use "<b><span style="color:FF3300">..\..\</span></b>USERPROFILE_PORTABLE"  because the statement is going to be executed in every each application launch so the the reference is the folder of the Main Exe File, in this case <b>MuseScore_ (x64) _sps\MuseScore 3\bin\</b>        MuseScore3.exe<br/><br/>  3. Normally it's not necessary to create all the folders because the program does it by itself but it helps to understand the user the clarification of the following point.<br/>4. In the <b>Not Sealth</b> section is included one useful information for the user:<br/><br/> "<i>You can move an installed configuration from %APPDATA%\MuseScore, %LOCALAPPDATA%\MuseScore and %USERPROFILE%\Documents\MuseScore to the equivalent in the SPS App MuseScore folder "USERPROFILE_PORTABLE</i>"]]></description>
<pubDate>Sun, 10 May 2020 11:20:32 GMT</pubDate>
</item>
<item>
<link>https://ugmfree.it/forum/messages.aspx?TopicID=649</link>
<title>Message from VVV_Easy_Symenu</title>
<description><![CDATA[Updated with<br/><b>TrIDNet:</b><br/>In addition to the snippet, this entry is interesting  for the SPS Builder approach. TrDNet is designed to identify file types  from their binary signatures. The app is very stable (last update in  2016) but the file definitions is frequently updated. In addition, the  download file of the app is zip and the definition file are 7z (no  PowerShell command for 7z files although SyMenu has 7z.exe). Finally,  the program doesn’t have built system for download (neither update) the  definition file, this must be done manually by the user.<br/>In this  case, SPS Builder download and install the definition file (in this  manner the publisher can use the SyMenu update tracing alert both for  the definition file and for the app) and in the first time (the app  doesn’t exist), the launcher downloads and decompress the app.<br/>Scrip After Install = Make a launcher batch for:<br/>1) If the executable file of the app doesn’t exist and <u>internet is enable</u>, it <u>downloads and decompresses the app</u>. If no executable and no internet <u>it alerts to the user</u>  “Internet needed in the first run for complete the app” and exits. If  the executable file exists (downloaded in this time or before) it runs  the app.]]></description>
<pubDate>Fri, 03 Aug 2018 08:05:10 GMT</pubDate>
</item>
<item>
<link>https://ugmfree.it/forum/messages.aspx?TopicID=649</link>
<title>Message from VVV_Easy_Symenu</title>
<description><![CDATA[Update with<br/><b>ImgBurn:<br/></b> In this case, with the code snippet comes a good habit: Before creating the SPS App <u>consult its portability in "</u><a href="https://www.portablefreeware.com/" target="_blank" rel="nofollow"><span style="color:#1c689a">The Portable Freeware Collection</span></a>". And also another advice, if there are doubts about which application to use search in "<a href="https://alternativeto.net/" target="_blank" rel="nofollow"><span style="color:#1c689a">AlternativeTo</span></a>" in order to check if there are other <a href="https://en.wikipedia.org/wiki/Free_and_open-source_software" target="_blank" rel="nofollow"><span style="color:#1c689a">FOSS</span></a> (Free and Open Source Software) options.<br/>Scrip After Install = Creation of ini text file for make the app portable (see SPS Builder and "<a href="https://www.portablefreeware.com/index.php?id=583" target="_blank" rel="nofollow"><span style="color:#1c689a">ImageBurn in PortableFreeware</span></a>")]]></description>
<pubDate>Sun, 22 Apr 2018 09:31:46 GMT</pubDate>
</item>
<item>
<link>https://ugmfree.it/forum/messages.aspx?TopicID=649</link>
<title>Message from Gianluca</title>
<description><![CDATA[Thank you very much for your effort to document the best techniques you implemented in the SPS.<br/>I would like to implement a wiki for this, also because all the SPS topic, lacks a real guide, but, at the moment, it's a too time-consuming task for me.<br/>Anyway I agree with your idea to pin this thread and I hope other editors could publish some other trick here. <br/>Thank you again for you devotion to this project!!!]]></description>
<pubDate>Mon, 09 Apr 2018 09:24:48 GMT</pubDate>
</item>
<item>
<link>https://ugmfree.it/forum/messages.aspx?TopicID=649</link>
<title>Message from VVV_Easy_Symenu</title>
<description><![CDATA[Hello, <br/>the SyMenu family is getting bigger, however I believe that people are still afraid to become the SPS Publisher App.<br/> My experience is that with  SyMenu the vast majority of free applications are easily portable but  the first time that you program SPS Builder is a little bit hard (even  with the great help of Gian)<br/> So I would like to make available to everyone what I am learning and, perhaps, some code snippets may be useful for someone.<br/> I choose the principal SPS App lesson but I don’t include the code because is easily accessible with the <a href="https://www.ugmfree.it/Forum/messages.aspx?TopicID=450" target="_blank" rel="nofollow">SPS Publised Track App</a> of SyMenu suite (ReBuild with empty publisher and right click for open it with SPSBuilder) and always in the last functional version.<br/> Do not hesitate to ask about any questions or <u>add your own </u><u>improvements or </u><u>snippets</u>.<br/> (PS for Gian: Perhaps could be useful Pin Up this Topic in the forum to make it easy to find. ¿May be better under "Technical discussion"?)<br/> <b> </b><br/> <b>Avidemux (x64):</b><br/> Scrip After Install = Clean installation files like $PLUGINSDIR folder, uninstall.exe.<br/><b>ImgBurn:</b><br/> In this case, with the code snippet comes a good habit: Before creating the SPS App <u>consult its portability in "</u><a href="https://www.portablefreeware.com/" target="_blank" rel="nofollow">The Portable Freeware Collection</a>". And also another advice, if there are doubts about which application to use search in "<a href="https://alternativeto.net/" target="_blank" rel="nofollow">AlternativeTo</a>" in order to check if there are other <a href="https://en.wikipedia.org/wiki/Free_and_open-source_software" target="_blank" rel="nofollow">FOSS</a> (Free and Open Source Software) options.<br/>Scrip After Install = Creation of ini text file for make the app portable (see SPS Builder and "<a href="https://www.portablefreeware.com/index.php?id=583" target="_blank" rel="nofollow">ImageBurn in PortableFreeware</a>")<br/> <b>MiniTool Partition Wizard Free &gt;&gt;&gt; </b><i>Discontinued and discouraged: difficult to maintain the division of versions</i><br/> Scrip After Install = From a  InnoSetup installation package with double versions (x86 and x64) create  double SPS App versions creating the folder tree and renaming de *1,  *,2 files.<br/>  <b>ExifToolGUI:</b><br/> Scrip After Install = This is a <u>SPS App “ExifTool” dependent</u> (at least when runs the first time) so it <u>make a launcher batch for</u>:<br/>                1) copy the needed files from the parent SPS App.<br/>                2) verify if the parent app has been updated (then update the needed files) but always runs the app.<br/> <b>SciTE4AutoHotkey:</b><br/> Scrip After Install = This is a SPS App “AutoHotkey Compiler” dependent (at least when runs the first time) so it <u>make a launcher batch for</u>:<br/>                1) copy the needed files from the parent SPS App.<br/>                2) verify if the parent app has been updated (then update the needed files) but always runs the app.<br/> <b>DSynchronize:</b><br/> Scrip After Install = Make <u>a launcher batch for</u>:<br/>                1) If the language is not set and <u>internet is enable</u>, ask for the user language and <u>download the language pack</u>. Always runs the app.<br/> <b>TCX Converter:</b><br/> Scrip Before Install = Process (unzip) a downloaded package before passing it to the InnoSetup unpacker.<br/> Scrip After Install = <u>Make a launcher batch for</u>:<br/>    1) Create the folder  “%APPDATA%\TCXConverter” with the default database settings (<u>it must unzip the file</u>)<br/>    2) If <u>internet is enable</u>,  <u>download the language pack update</u> but always runs the app.<br/><b>TrIDNet:</b><br/>In addition to the snippet, this entry is interesting for the SPS Builder approach. TrDNet is designed to identify file types from their binary signatures. The app is very stable (last update in 2016) but the file definitions is frequently updated. In addition, the download file of the app is zip and the definition file are 7z (no PowerShell command for 7z files although SyMenu has 7z.exe). Finally, the program doesn’t have built system for download (neither update) the definition file, this must be done manually by the user.<br/>In this case, SPS Builder download and install the definition file (in this manner the publisher can use the SyMenu update tracing alert both for the definition file and for the app) and in the first time (the app doesn’t exist), the launcher downloads and decompress the app.<br/>Scrip After Install = Make a launcher batch for:<br/>1) If the executable file of the app doesn’t exist and <u>internet is enable</u>, it <u>downloads and decompresses the app</u>. If no executable and no internet <u>it alerts to the user</u> “Internet needed in the first run for complete the app” and exits. If the executable file exists (downloaded in this time or before) it runs the app.<br/> <b>Attribute changer X64:</b><br/> Attribute Changer <u>is implemented as a shell extension</u>: You need to right-click on files, folders or drives and choose the “Change attributes…” explorer context menu item.<br/> To make it portable you need register the program as COM In-Process for use it.<br/> Scrip After Install = Sort the different files. <u>Make two batch for</u>:<br/>  <span style="font-family:Symbol">·        </span>Activate_Attribute_Changer_x64.bat:<br/>  1.      If the language is not set, ask for the user language and set it.<br/>  2.      If not running in elevate mode, prompt for running <u>administrator privileges</u>. <br/>  3.      In Elevate mode, <u>Register the program dll as COM In-Process</u> for use it in the explorer context menu.<br/>  <span style="font-family:Symbol">·        </span>Disable_Attribute_Changer_x64.bat<br/>  1.      <u>Delete the software registry key</u>   (for edit the right user HKCU registry key you must be in the session  of the normal Attribute Changer user, elevate is NOT needed)<br/>  2.      If not running in elevate mode, prompt for running <u>administrator privileges</u>.<br/>  3.      In Elevate mode, <u>UnRegister the COM</u> In-Process server.<br/><b>MuseScore X64:</b><br/>MuseScore  is the typical FOSS application developed with QT5 that it is  practically portable itself but not stealth by the folders it uses to  save the configurations:<br/><br/>%APPDATA%\MuseScore, %LOCALAPPDATA%\MuseScore,<br/> %USERPROFILE%\Documents\MuseScore and %USERPROFILE%\Desktop (is used as default in Open Folder Dialog)<br/> <br/>The  solution is to use the change of system variables that SyMenu has,  reconfiguring USERPROFILE operating system variable. This is this is  done in the section <b>Scrip After Install</b>:<br/>MakeDir ".\USERPROFILE_PORTABLE"<br/>MakeDir ".\USERPROFILE_PORTABLE\AppData"<br/>MakeDir ".\USERPROFILE_PORTABLE\AppData\Local"<br/>MakeDir ".\USERPROFILE_PORTABLE\AppData\Roaming"<br/>MakeDir ".\USERPROFILE_PORTABLE\Documents"<br/>MakeDir ".\USERPROFILE_PORTABLE\Desktop"<br/>AddVar USERPROFILE=..\..\USERPROFILE_PORTABLE<br/>DelFile *.msi<br/><br/>Some remarks:<br/>1.      In the 'MakeDir' stataments we use "<span style="color:FF3300"><b>.\</b></span>USERPROFILE_PORTABLE" because the statement is going to <u>be executed by installer</u> and the reference is the install folder, <b>MuseScore_ (x64) _sps\</b>.<br/>2. In the 'AddVar' stataments we use "<b><span style="color:FF3300">..\..\</span></b>USERPROFILE_PORTABLE"   because the statement is going to be executed in every each application  launch so the the reference is the folder of the Main Exe File, in this  case <b>MuseScore_ (x64) _sps\MuseScore 3\bin\</b>        MuseScore3.exe<br/>3. Normally it's not necessary to create all the folders because the  program does it by itself but it helps to understand the user the  clarification of the following point.<br/>4. In the <b>Not Sealth</b> section is included one useful information for the user:<br/><br/> "<i>You  can move an installed configuration from %APPDATA%\MuseScore,  %LOCALAPPDATA%\MuseScore and %USERPROFILE%\Documents\MuseScore to the  equivalent in the SPS App MuseScore folder "USERPROFILE_PORTABLE</i>"<br/><br/><b>KeyCastOW:</b><br/>Now the build is dowloaded from well know <a href="https://chocolatey.org/" target="_blank" rel="nofollow">Chocolatey.org</a>.<br/><i>"Chocolatey is a software management solution unlike anything else you've ever experienced on Windows. Chocolatey brings the concepts of true package management to allow you to version things, manage dependencies and installation order, better inventory management, and other features."</i><br/><br/>The "nupkg" package is  a zip archive and, in this case, you can get easily the original program.<br/><br/>.<br/><br/><i>edited by VVV_Easy_Symenu on 31/05/2020</i>]]></description>
<pubDate>Fri, 06 Apr 2018 20:27:22 GMT</pubDate>
</item>
</channel>
</rss>
