Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
* load api functions
DECLARE INTEGER RegOpenKeyEx IN Win32API ;
INTEGER nKey, STRING @cSubKey, INTEGER nReserved, ;
INTEGER nAccessMask, INTEGER @nResult
DECLARE INTEGER RegQueryValue IN WIN32API INTEGER nKey, ;
STRING @cSubKey, STRING @cBuffer, INTEGER nBufferSize
DECLARE INTEGER RegQueryValueEx IN Win32API INTEGER nKey, ;
STRING cValueName, INTEGER nReserved, ;
INTEGER @nType, STRING @cBuffer, INTEGER @nBufferSize
DECLARE INTEGER RegCloseKey IN Win32API INTEGER nKey
DECLARE RegCreateKeyEx IN ADVAPI32.DLL INTEGER, STRING, INTEGER, ;
STRING, INTEGER, INTEGER, INTEGER, INTEGER @, INTEGER @
DECLARE RegSetValueEx IN ADVAPI32.DLL INTEGER, STRING, INTEGER, ;
INTEGER, STRING, INTEGER
DECLARE RegCloseKey IN ADVAPI32.DLL INTEGER nHKey
DECLARE SHChangeNotify IN Shell32.DLL INTEGER, INTEGER, STRING, STRING
DECLARE INTEGER RegOpenKey IN ADVAPI32.DLL INTEGER hKey, ;
STRING lpSubKey, INTEGER @phkResult
DECLARE INTEGER RegCreateKey IN ADVAPI32.DLL INTEGER nHKey, ;
STRING @cSubKey, INTEGER @nResult
* some constants
#DEFINE EXEFILE "c:\program files\myfolder\myapp.exe" && your program file name and path here
#DEFINE EXEDESC "My Application" && your app description here
#DEFINE FILE_EXT ".RST" && your file type here
#DEFINE SECURITY_ACCESS_MASK 983103
#DEFINE SHCNE_ASSOCCHANGED 0x08000000
#DEFINE SHCNF_IDLIST 0x0000
#DEFINE HKEY_CLASSES_ROOT -2147483648
#DEFINE HKEY_CURRENT_USER -2147483647
#DEFINE HKEY_LOCAL_MACHINE -2147483646
#DEFINE HKEY_USERS -2147483645
#DEFINE KEY_ALL_ACCESS 0x3F
* create a registry key for your application
lcExe = FORCEEXT(JUSTFNAME(EXEFILE), "")
lnResult=0
lnDisplay=0
lcKeyName = lcExe
lcKeyValue = EXEDESC
lnKeyLen = LEN(lcKeyValue)
RegCreateKeyEx(HKEY_CLASSES_ROOT, lcKeyName, 0, "REG_SZ", 0, SECURITY_ACCESS_MASK, 0, @lnResult, @lnDisplay)
RegSetValueEx(lnResult, "", 0, 1, lcKeyValue, lnKeyLen)
RegCloseKey(@lnResult)
* register your file type
lnResult= 0
lnDisplay = 0
lcKeyName = ".RST"
lcKeyValue = lcExe
lnKeyLen = LEN(lcKeyValue)
RegCreateKeyEx(HKEY_CLASSES_ROOT, lcKeyName, 0, "REG_SZ", 0,SECURITY_ACCESS_MASK, 0, @lnResult, @lnDisplay)
RegSetValueEx(lnResult, "", 0, 1, lcKeyValue, lnKeyLen)
RegCloseKey(@lnResult)
* register the command that has to be executed when the file type is double clicked in Windows Explorer
lnResult= 0
lnDisplay = 0
lcKeyName = lcExe + "\shell\open\command"
* if you want to pass the file name that was doubleclicked in Explorer as a parameter, then
* replace the following line with:
* lcKeyValue = EXEFILE + " %1"
lcKeyValue = EXEFILE
lnKeyLen = LEN(lcKeyValue)
RegCreateKeyEx(HKEY_CLASSES_ROOT, lcKeyName, 0, "REG_SZ", 0, SECURITY_ACCESS_MASK, 0, @lnResult, @lnDisplay)
RegSetValueEx(lnResult, "", 0, 1, lcKeyValue, lnKeyLen)
RegCloseKey(@lnResult)
* add a reference top the icon.
* note: Windows 'extracts' the icon that was attached to the exe/project at design time
lnResult= 0
lnDisplay = 0
lcKeyName = lcExe + "\DefaultIcon"
lcKeyValue = EXEFILE + ",0" && ",0" is a pointer to the icon inside the .EXE
lnKeyLen = LEN(lcKeyValue)
RegCreateKeyEx(HKEY_CLASSES_ROOT, lcKeyName, 0, "REG_SZ", 0, SECURITY_ACCESS_MASK, 0, @lnResult, @lnDisplay)
RegSetValueEx(lnResult, "", 0, 1, lcKeyValue, lnKeyLen)
RegCloseKey(@lnResult)
* Instruct Windows to refresh the icon & file type information
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL)