Sub AppStart (Form1 As Form, Args() As String)
Root: HKCR; Subkey: Raw Video Bitmap File\DefaultIcon; ValueType: string; ValueData: {app}\bin\raw_video_file_icon.ico,0; Flags: uninsdeletevalue noerror
#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\bin\ raw_video_file_icon.ico
[Registry]
Root: HKCR; SubKey: .rvb; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Bitmap Files; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Bitmap Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Bitmap Files\DefaultIcon; ValueType: string; ValueData: {app}\{#MyAppExeName},0; Flags: uninsdeletevalue noerror
[Registry]
Root: HKCR; SubKey: .rvj; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Jpeg Files; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Jpeg Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Jpeg Files\DefaultIcon; ValueType: string; ValueData: {app}\{#MyAppExeName},0; Flags: uninsdeletevalue noerror
[Registry]
Root: HKCR; SubKey: .rvp; ValueType: string; ValueData: Raw Video Png Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Png Files; ValueType: string; ValueData: Raw Video Png Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Png Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Png Files\DefaultIcon; ValueType: string; ValueData: {app}\{#MyAppExeName},0; Flags: uninsdeletevalue noerror
Once you release the tutorial, If haven't yet done so, join our Facebook Group and Post about it there so that everyone on the group can see it!Many thanks all for help,
I will try your advices.... I see very active forum today
probably is a good day to release my next WebGL tutorial, time permitting.
I've never tried it wth more than one assigned file extension, but I don't think you'd need multiple [Registry] sections. I'd guess it would be more like:In that case would be possible to have the player with it's icon (the app icon), and any format have a different icon to differentiate it on the desktop ?
Eg. one with B (bitmap based encoder), one with J (jpeg based encoder) and one with P (png based encoder) letters printed out icons ?
[Registry]
Root: HKCR; SubKey: .rvb; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Bitmap Files; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Bitmap Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Bitmap Files\DefaultIcon; ValueType: string; ValueData: {app}\{#MyAppExeName},0; Flags: uninsdeletevalue noerror
Root: HKCR; SubKey: .rvj; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Jpeg Files; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Jpeg Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Jpeg Files\DefaultIcon; ValueType: string; ValueData: {app}\{#MyAppExeName},0; Flags: uninsdeletevalue noerror
Root: HKCR; SubKey: .rvp; ValueType: string; ValueData: Raw Video Png Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Png Files; ValueType: string; ValueData: Raw Video Png Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Png Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Png Files\DefaultIcon; ValueType: string; ValueData: {app}\{#MyAppExeName},0; Flags: uninsdeletevalue noerror
If you already have a series going, link it into the groupYes thanks @Cableguy, I will check it. Not because I wrote WebGL library, I already wrote dozen of libraries, but WebGL is an insane library. It permits to do all with 3D, but even you can get full 3D games with even spatial sound and physics engines and even support of 4 gamepads at full frames depending on video card. On the next tutorial I will explain how to create full 3D games and change the full scene by just load another scene model. At this point pass the scene model to the physic engine and it automatically will calculate all the scene in a couple of milliseconds, so you will end up with the physics you have added by code in addition with the scene. It now is fully developed even for Android, here it is show on the main app, but it at same time even is exposed over HTTP and you can access from any web browser. Stay tuned.
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "VideoPlayer"
#define MyAppVersion "1.2"
#define MyAppPublisher "DigitalRobotics"
#define MyAppExeName "VideoPlayer.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{A338886B-6B36-9CC2-BBBE-4377EAC4692C}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\{#MyAppPublisher}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputDir=.
Compression=lzma
SolidCompression=yes
SetupIconFile=icon.ico
ArchitecturesAllowed=x64
ArchitecturesInstallIn64BitMode=x64
OutputBaseFilename=Setup {#MyAppName}
UninstallDisplayIcon={app}\{#MyAppExeName}
VersionInfoVersion=1.0.0.0
ChangesAssociations=yes
;ChangesAssociations setup .iss script forces Explorer to refresh its file extensions so that the
;icon you specify will be shown on the associated files without a logoff/restart being necessary.
;Su Windows 11 sembra che le icone siano viste senza fare logoff.
[Languages]
Name: english; MessagesFile: compiler:Default.isl
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
[Files]
Source: build\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon
[Run]
Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent
;[Registry]
;Root: HKCR; SubKey: .rvb; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
;Root: HKCR; SubKey: Raw Video Bitmap Files; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror
;Root: HKCR; SubKey: Raw Video Bitmap Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
;Root: HKCR; Subkey: Raw Video Bitmap Files\DefaultIcon; ValueType: string; ValueData: {app}\{#MyAppExeName},0; Flags: uninsdeletevalue noerror
[Registry]
Root: HKCR; SubKey: .rvb; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Bitmap Files; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Bitmap Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Bitmap File\DefaultIcon; ValueType: string; ValueData: {app}\bin\raw_video_bitmap_icon.ico,0; Flags: uninsdeletevalue noerror
Root: HKCR; SubKey: .rvj; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Jpeg Files; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Jpeg Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Jpeg File\DefaultIcon; ValueType: string; ValueData: {app}\bin\raw_video_jpeg_icon.ico,0; Flags: uninsdeletevalue noerror
#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\bin\ raw_video_bitmap_icon.ico
#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\bin\ raw_video_jpeg_icon.ico
[Registry]
Root: HKCR; SubKey: .rvb; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Bitmap Files; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Bitmap Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Bitmap File\DefaultIcon; ValueType: string; ValueData: {app}\bin\raw_video_bitmap_icon.ico,0; Flags: uninsdeletevalue noerror
Root: HKCR; SubKey: .rvj; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Jpeg Files; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Jpeg Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Jpeg File\DefaultIcon; ValueType: string; ValueData: {app}\bin\raw_video_jpeg_icon.ico,0; Flags: uninsdeletevalue noerror
Thank you, I will, but I don't want to "monopolise" posting in the FB Group... We need it to be ALIVE and for that it need members posting!You can link all my tutorials you see on my overview, not just the WebGL related links.
I have added file associations in at least three different source codes of mine, and in one of them, I even implemented a custom context menu for the extensions. In all those cases, the functionality worked correctly and the associations were applied without any issues.Something do not return to me....
This is my Inno Setup script:
B4X:; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "VideoPlayer" #define MyAppVersion "1.2" #define MyAppPublisher "DigitalRobotics" #define MyAppExeName "VideoPlayer.exe" [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppId={{A338886B-6B36-9CC2-BBBE-4377EAC4692C} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} DefaultDirName={pf}\{#MyAppPublisher}\{#MyAppName} DefaultGroupName={#MyAppName} OutputDir=. Compression=lzma SolidCompression=yes SetupIconFile=icon.ico ArchitecturesAllowed=x64 ArchitecturesInstallIn64BitMode=x64 OutputBaseFilename=Setup {#MyAppName} UninstallDisplayIcon={app}\{#MyAppExeName} VersionInfoVersion=1.0.0.0 ChangesAssociations=yes ;ChangesAssociations setup .iss script forces Explorer to refresh its file extensions so that the ;icon you specify will be shown on the associated files without a logoff/restart being necessary. ;Su Windows 11 sembra che le icone siano viste senza fare logoff. [Languages] Name: english; MessagesFile: compiler:Default.isl [Tasks] Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked [Files] Source: build\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName} Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon [Run] Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent ;[Registry] ;Root: HKCR; SubKey: .rvb; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror; Tasks: ; Languages: ;Root: HKCR; SubKey: Raw Video Bitmap Files; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror ;Root: HKCR; SubKey: Raw Video Bitmap Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror ;Root: HKCR; Subkey: Raw Video Bitmap Files\DefaultIcon; ValueType: string; ValueData: {app}\{#MyAppExeName},0; Flags: uninsdeletevalue noerror [Registry] Root: HKCR; SubKey: .rvb; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror; Tasks: ; Languages: Root: HKCR; SubKey: Raw Video Bitmap Files; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror Root: HKCR; SubKey: Raw Video Bitmap Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror Root: HKCR; Subkey: Raw Video Bitmap File\DefaultIcon; ValueType: string; ValueData: {app}\bin\raw_video_bitmap_icon.ico,0; Flags: uninsdeletevalue noerror Root: HKCR; SubKey: .rvj; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror; Tasks: ; Languages: Root: HKCR; SubKey: Raw Video Jpeg Files; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror Root: HKCR; SubKey: Raw Video Jpeg Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror Root: HKCR; Subkey: Raw Video Jpeg File\DefaultIcon; ValueType: string; ValueData: {app}\bin\raw_video_jpeg_icon.ico,0; Flags: uninsdeletevalue noerror
Even I used these in the IDE:
and copied the icon files to project folder, but after installation, both .rvb and .rvj have te same icon, the app icon, the copied icons are not used at all.B4X:#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\bin\ raw_video_bitmap_icon.ico #CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\bin\ raw_video_jpeg_icon.ico
May I'm doing something wrong here ?
Even there is a strange thing, I compiled the app that show Args(0) on a message box,
when I double-click on .rvb file, it open the app and show the file path,
when I double-click on .rvj file, it open the app but the messagebox is void, it do not show the file path here
..... So for sure I managed something wrong. These lines probably contais something wrong:
B4X:[Registry] Root: HKCR; SubKey: .rvb; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror; Tasks: ; Languages: Root: HKCR; SubKey: Raw Video Bitmap Files; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror Root: HKCR; SubKey: Raw Video Bitmap Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror Root: HKCR; Subkey: Raw Video Bitmap File\DefaultIcon; ValueType: string; ValueData: {app}\bin\raw_video_bitmap_icon.ico,0; Flags: uninsdeletevalue noerror Root: HKCR; SubKey: .rvj; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror; Tasks: ; Languages: Root: HKCR; SubKey: Raw Video Jpeg Files; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror Root: HKCR; SubKey: Raw Video Jpeg Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror Root: HKCR; Subkey: Raw Video Jpeg File\DefaultIcon; ValueType: string; ValueData: {app}\bin\raw_video_jpeg_icon.ico,0; Flags: uninsdeletevalue noerror
The associations of .rvb and .rvj files are successfully added to Windows, I can see it on Default Apps/Files by extensions, but the icons doesnt' works and .rvj do not return the path in Args(0).
Attached a screeshot.
[Files]
Source: build\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: build\raw_video_bitmap_icon.ico; DestDir: {app}; Flags: ignoreversion
Source: build\raw_video_jpeg_icon.ico; DestDir: {app}; Flags: ignoreversion
[Registry]
Root: HKCR; Subkey: ".rvb"; ValueType: string; ValueData: "RawVideoBitmapFile"; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoBitmapFile"; ValueType: string; ValueData: "Raw Video Bitmap File"; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoBitmapFile\Shell\Open\Command"; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoBitmapFile\DefaultIcon"; ValueType: string; ValueData: "{app}\raw_video_bitmap_icon.ico,0"; Flags: uninsdeletevalue
Root: HKCR; Subkey: ".rvj"; ValueType: string; ValueData: "RawVideoJpegFile"; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoJpegFile"; ValueType: string; ValueData: "Raw Video Jpeg File"; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoJpegFile\Shell\Open\Command"; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoJpegFile\DefaultIcon"; ValueType: string; ValueData: "{app}\raw_video_jpeg_icon.ico,0"; Flags: uninsdeletevalue
I have found in the past that the icon associations sometimes need a PC reboot in order to be updated. Particularly when you are running multiple installation routines and tweaking things. For some reason WIndows sometimes seems to remember the old icon that was associated with a file type.but all files (rvb and rvj no matter) have just the app icon
#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\bin\ raw_video_bitmap_icon.ico
Root: HKCR; Subkey: "RawVideoBitmapFile\DefaultIcon"; ValueType: string; ValueData: "{app}\bin\raw_video_bitmap_icon.ico,0"; Flags: uninsdeletevalue noerror
[Registry]
Root: HKCR; SubKey: .rvb; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Bitmap Files; ValueType: string; ValueData: Raw Video Bitmap Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Bitmap Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Bitmap File\DefaultIcon; ValueType: string; ValueData: {app}\bin\raw_video_bitmap_icon.ico,0; Flags: uninsdeletevalue noerror
Root: HKCR; SubKey: .rvj; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror; Tasks: ; Languages:
Root: HKCR; SubKey: Raw Video Jpeg Files; ValueType: string; ValueData: Raw Video Jpeg Files; Flags: uninsdeletekey noerror
Root: HKCR; SubKey: Raw Video Jpeg Files\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletevalue noerror
Root: HKCR; Subkey: Raw Video Jpeg File\DefaultIcon; ValueType: string; ValueData: {app}\bin\raw_video_jpeg_icon.ico,0; Flags: uninsdeletevalue noerror
[Files]
Source: build\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: build\raw_video_bitmap_icon.ico; DestDir: {app}; Flags: ignoreversion
Source: build\raw_video_jpeg_icon.ico; DestDir: {app}; Flags: ignoreversion
ChangesAssociations=yes
;ChangesAssociations setup .iss script forces Explorer to refresh its file extensions so that the
;icon you specify will be shown on the associated files without a logoff/restart being necessary.
;Su Windows 11 sembra che le icone siano viste senza fare logoff.
Source: build\raw_video_bitmap_icon.ico; DestDir: {app}; Flags: ignoreversion
Source: build\raw_video_jpeg_icon.ico; DestDir: {app}; Flags: ignoreversion
#define MyAppName "VideoPlayer"
#define MyAppVersion "1.2"
#define MyAppPublisher "DigitalRobotics"
#define MyAppExeName "VideoPlayer.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{A338886B-6B36-9CC2-BBBE-4377EAC4692C}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\{#MyAppPublisher}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputDir=.
Compression=lzma
SolidCompression=yes
SetupIconFile=icon.ico
ArchitecturesAllowed=x64
ArchitecturesInstallIn64BitMode=x64
OutputBaseFilename=Setup {#MyAppName}
UninstallDisplayIcon={app}\{#MyAppExeName}
VersionInfoVersion=1.0.0.0
ChangesAssociations=yes
;ChangesAssociations setup .iss script forces Explorer to refresh its file extensions so that the
;icon you specify will be shown on the associated files without a logoff/restart being necessary.
;Su Windows 11 sembra che le icone siano viste senza fare logoff.
[Languages]
Name: english; MessagesFile: compiler:Default.isl
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
[Files]
Source: build\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: build\raw_video_bitmap_icon.ico; DestDir: {app}; Flags: ignoreversion
Source: build\raw_video_jpeg_icon.ico; DestDir: {app}; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon
[Run]
Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent
[Registry]
Root: HKCR; Subkey: ".rvb"; ValueType: string; ValueData: "RawVideoBitmapFile"; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoBitmapFile"; ValueType: string; ValueData: "Raw Video Bitmap File"; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoBitmapFile\Shell\Open\Command"; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoBitmapFile\DefaultIcon"; ValueType: string; ValueData: "{app}\raw_video_bitmap_icon.ico,0"; Flags: uninsdeletevalue
Root: HKCR; Subkey: ".rvj"; ValueType: string; ValueData: "RawVideoJpegFile"; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoJpegFile"; ValueType: string; ValueData: "Raw Video Jpeg File"; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoJpegFile\Shell\Open\Command"; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; Flags: uninsdeletekey
Root: HKCR; Subkey: "RawVideoJpegFile\DefaultIcon"; ValueType: string; ValueData: "{app}\raw_video_jpeg_icon.ico,0"; Flags: uninsdeletevalue
I'm not sure why you need to add those. I'd have thought that the build\* line would copy everything in build\.Source: build\raw_video_bitmap_icon.ico; DestDir: {app}; Flags: ignoreversion Source: build\raw_video_jpeg_icon.ico; DestDir: {app}; Flags: ignoreversion
What do you have in your AppStart sub?Now remain just one problem, .rvb files return the path, but .rvj do not
I've changed this in the source code:I'm not sure why you need to add those. I'd have thought that the build\* line would copy everyting in build\.
Anyway, if it works, it works!
Although, copying 'build\raw_video_bitmap_icon.ico' implies to me that the icon files are in the \build\ folder, not \build\bin\?
#Region Project Attributes
#MainFormWidth: 600
#MainFormHeight: 600
'#CommandLineArgs: /Path/To/My/Video.rvb
#PackagerProperty: IconFile = ..\Files\icon_launcher.ico
#PackagerProperty: ExeName = VideoPlayer
'#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\bin\ raw_video_bitmap_icon.ico
'#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\bin\ raw_video_jpeg_icon.ico
#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\ raw_video_bitmap_icon.ico
#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\ raw_video_jpeg_icon.ico
#End Region
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
MainForm.Show
If Args.Length > 0 Then
Try
Dim path As String = Args(0)
If File.Exists(path, "") And path.ToLowerCase.EndsWith(".rvb") Then 'don't assume that it is a valid path
'ListView1.Items.AddAll(File.ReadList(Args(0), ""))
FilePath = path
'File.GetFileParent(
End If
Catch
Log(LastException)
End Try
End If
Dim PagesManager As B4XPagesManager
PagesManager.Initialize(MainForm)
End Sub
If File.Exists(path, "") And path.ToLowerCase.EndsWith(".rvb") Then 'don't assume that it is a valid path
If File.Exists(path, "") And (path.ToLowerCase.EndsWith(".rvb") Or path.ToLowerCase.EndsWith(".rvj")) Then 'don't assume that it is a valid path
Source: build\raw_video_bitmap_icon.ico; DestDir: {app}; Flags: ignoreversion
Source: build\raw_video_jpeg_icon.ico; DestDir: {app}; Flags: ignoreversion
It's amazing how many times just writing out the code again, or even just copying/pasting it into another place can help you spot something you've been missingEDIT: I found the problem.....this line:
B4X:If File.Exists(path, "") And path.ToLowerCase.EndsWith(".rvb") Then 'don't assume that it is a valid path
Yes... I just edited the iss script, and my B4X code was badIt's amazing how many times just writing out the code again, or even just copying/pasting it into another place can help you spot something you've been missing
'#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\bin\ raw_video_bitmap_icon.ico
'#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\bin\ raw_video_jpeg_icon.ico
#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\ raw_video_bitmap_icon.ico
#CustomBuildAction: After Packager, %WINDIR%\System32\robocopy.exe, ..\ temp\build\ raw_video_jpeg_icon.ico
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?