I wonder why to use XnView Portable (by PortableApps.com) if just copying the xnview binaries and all needed ini
and similar files to optical media or usb drive. As described by Pierre a long time ago.
Q.A Can you tell the reason please?
Q.B:
It is very well described where is the XnView control panel for determining the storage
of its settings (registry or ini file, if ini file then in which directory).
But how is the first half of the true?
How is the checkup order the XnView uses during its startup. First registry, then ini file.
Or in opposite order?
Where the settings from "System Integration -> Save Options" are stored?
During XnView startup they must be recreated from some storage. Where is that storage?
In other words: let's assume at all supported places (registry, ini file in windows directory,
ini file in xnview installation directory, ini file in users directory) there are valid xnview settings available.
That means valid ini file in windows directory, and in xnview installation directory, and in users directory
and in the registry. Which one will be taken? How is the complete order?
While starting XnView from CD/USB drive I notice that it attempts to change registry.
Found with Sysinternals Process Monitor.
It attempts to change registry by doing e.g following (registry value set)
Date & Time: 09.10.2010 20:25:13
Event Class: Registry
Operation: RegSetValue
Result: ACCESS DENIED
Path: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Documents
TID: 884
Duration: 0.0000056
Type: REG_SZ
Length: 92
Data: C:\Documents and Settings\All Users\Documents
Description: XnView for Windows
Company: XnView, http://www.xnview.com
Name: XnView.exe
Version: 1.96.0.0
Path: H:\_Tools_\XnView\XnView.exe
Command Line: "H:\_Tools_\XnView\XnView.exe" xxxx_2009\ -ini _Tools_\XnView\xnview.ini
PID: 2920
Parent PID: 3288
Session ID: 0
User: XXXX-PC01\yyyy
Auth ID: 00000000:0001d998
Architecture: 32-bit
Virtualized: n/a
Integrity: n/a
Started: 09.10.2010 20:22:41
Ended: 09.10.2010 20:23:20
Modules:
xnview.exe 0x400000 0x423000 H:\_Tools_\XnView\xnview.exe
odbcint.dll 0x14e0000 0x17000 C:\WINDOWS\system32\odbcint.dll
PortableDeviceApi.dll 0x10930000 0x49000 C:\WINDOWS\system32\PortableDeviceApi.dll
WpdShext.dll 0x16210000 0x27e000 C:\WINDOWS\system32\WpdShext.dll
GdiPlus.dll 0x4ec50000 0x1ab000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.6001.22319_x-ww_f0b4c2df\GdiPlus.dll
uxtheme.dll 0x5ad70000 0x38000 C:\WINDOWS\system32\uxtheme.dll
netapi32.dll 0x5b860000 0x55000 C:\WINDOWS\system32\netapi32.dll
mpr.dll 0x71b20000 0x12000 C:\WINDOWS\system32\mpr.dll
samlib.dll 0x71bf0000 0x13000 C:\WINDOWS\system32\samlib.dll
ntlanman.dll 0x71c10000 0xe000 C:\WINDOWS\system32\ntlanman.dll
netrap.dll 0x71c80000 0x7000 C:\WINDOWS\system32\netrap.dll
netui1.dll 0x71c90000 0x40000 C:\WINDOWS\system32\netui1.dll
netui0.dll 0x71cd0000 0x17000 C:\WINDOWS\system32\netui0.dll
winspool.drv 0x73000000 0x26000 C:\WINDOWS\system32\winspool.drv
avifil32.dll 0x73b50000 0x17000 C:\WINDOWS\system32\avifil32.dll
shgina.dll 0x73d70000 0x13000 C:\WINDOWS\system32\shgina.dll
odbc32.dll 0x74320000 0x3d000 C:\WINDOWS\system32\odbc32.dll
msctf.dll 0x74720000 0x4c000 C:\WINDOWS\system32\msctf.dll
msctfime.ime 0x755c0000 0x2e000 C:\WINDOWS\system32\msctfime.ime
msgina.dll 0x75970000 0xf8000 C:\WINDOWS\system32\msgina.dll
msvfw32.dll 0x75a70000 0x21000 C:\WINDOWS\system32\msvfw32.dll
drprov.dll 0x75f60000 0x7000 C:\WINDOWS\system32\drprov.dll
davclnt.dll 0x75f70000 0xa000 C:\WINDOWS\system32\davclnt.dll
winsta.dll 0x76360000 0x10000 C:\WINDOWS\system32\winsta.dll
imm32.dll 0x76390000 0x1d000 C:\WINDOWS\system32\imm32.dll
comdlg32.dll 0x763b0000 0x49000 C:\WINDOWS\system32\comdlg32.dll
cscdll.dll 0x76600000 0x1d000 C:\WINDOWS\system32\cscdll.dll
userenv.dll 0x769c0000 0xb4000 C:\WINDOWS\system32\userenv.dll
ctwdm32.dll 0x76b10000 0x5000 C:\WINDOWS\system32\ctwdm32.dll
winmm.dll 0x76b40000 0x2d000 C:\WINDOWS\system32\winmm.dll
wintrust.dll 0x76c30000 0x2e000 C:\WINDOWS\system32\wintrust.dll
imagehlp.dll 0x76c90000 0x28000 C:\WINDOWS\system32\imagehlp.dll
clbcatq.dll 0x76fd0000 0x7f000 C:\WINDOWS\system32\clbcatq.dll
comres.dll 0x77050000 0xc5000 C:\WINDOWS\system32\comres.dll
oleaut32.dll 0x77120000 0x8b000 C:\WINDOWS\system32\oleaut32.dll
comctl32.dll 0x773d0000 0x103000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
ole32.dll 0x774e0000 0x13d000 C:\WINDOWS\system32\ole32.dll
setupapi.dll 0x77920000 0xf3000 C:\WINDOWS\system32\setupapi.dll
cscui.dll 0x77a20000 0x54000 C:\WINDOWS\system32\cscui.dll
crypt32.dll 0x77a80000 0x95000 C:\WINDOWS\system32\crypt32.dll
msasn1.dll 0x77b20000 0x12000 C:\WINDOWS\system32\msasn1.dll
apphelp.dll 0x77b40000 0x22000 C:\WINDOWS\system32\apphelp.dll
msacm32.dll 0x77be0000 0x15000 C:\WINDOWS\system32\msacm32.dll
version.dll 0x77c00000 0x8000 C:\WINDOWS\system32\version.dll
msvcrt.dll 0x77c10000 0x58000 C:\WINDOWS\system32\msvcrt.dll
advapi32.dll 0x77dd0000 0x9b000 C:\WINDOWS\system32\advapi32.dll
rpcrt4.dll 0x77e70000 0x93000 C:\WINDOWS\system32\rpcrt4.dll
gdi32.dll 0x77f10000 0x49000 C:\WINDOWS\system32\gdi32.dll
shlwapi.dll 0x77f60000 0x76000 C:\WINDOWS\system32\shlwapi.dll
secur32.dll 0x77fe0000 0x11000 C:\WINDOWS\system32\secur32.dll
kernel32.dll 0x7c800000 0xf6000 C:\WINDOWS\system32\kernel32.dll
ntdll.dll 0x7c900000 0xb2000 C:\WINDOWS\system32\ntdll.dll
shell32.dll 0x7c9c0000 0x817000 C:\WINDOWS\system32\shell32.dll
user32.dll 0x7e410000 0x91000 C:\WINDOWS\system32\user32.dll
Or by doing following (registry key create)
Date & Time: 09.10.2010 20:22:43
Event Class: Registry
Operation: RegCreateKey
Result: ACCESS DENIED
Path: HKLM\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\Winmm
TID: 1872
Duration: 0.0000307
Desired Access: All Access
Description: XnView for Windows
Company: XnView, http://www.xnview.com
Name: XnView.exe
Version: 1.96.0.0
Path: H:\_Tools_\XnView\XnView.exe
Command Line: "H:\_Tools_\XnView\XnView.exe" xxxx_2009\ -ini _Tools_\XnView\xnview.ini
PID: 2920
Parent PID: 3288
Session ID: 0
User: XXXX-PC01\yyyy
Auth ID: 00000000:0001d998
Architecture: 32-bit
Virtualized: n/a
Integrity: n/a
Started: 09.10.2010 20:22:41
Ended: 09.10.2010 20:23:20
Modules:
xnview.exe 0x400000 0x423000 H:\_Tools_\XnView\xnview.exe
winspool.drv 0x73000000 0x26000 C:\WINDOWS\system32\winspool.drv
avifil32.dll 0x73b50000 0x17000 C:\WINDOWS\system32\avifil32.dll
msvfw32.dll 0x75a70000 0x21000 C:\WINDOWS\system32\msvfw32.dll
imm32.dll 0x76390000 0x1d000 C:\WINDOWS\system32\imm32.dll
comdlg32.dll 0x763b0000 0x49000 C:\WINDOWS\system32\comdlg32.dll
ctwdm32.dll 0x76b10000 0x5000 C:\WINDOWS\system32\ctwdm32.dll
winmm.dll 0x76b40000 0x2d000 C:\WINDOWS\system32\winmm.dll
comctl32.dll 0x773d0000 0x103000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
ole32.dll 0x774e0000 0x13d000 C:\WINDOWS\system32\ole32.dll
msacm32.dll 0x77be0000 0x15000 C:\WINDOWS\system32\msacm32.dll
version.dll 0x77c00000 0x8000 C:\WINDOWS\system32\version.dll
msvcrt.dll 0x77c10000 0x58000 C:\WINDOWS\system32\msvcrt.dll
advapi32.dll 0x77dd0000 0x9b000 C:\WINDOWS\system32\advapi32.dll
rpcrt4.dll 0x77e70000 0x93000 C:\WINDOWS\system32\rpcrt4.dll
gdi32.dll 0x77f10000 0x49000 C:\WINDOWS\system32\gdi32.dll
shlwapi.dll 0x77f60000 0x76000 C:\WINDOWS\system32\shlwapi.dll
secur32.dll 0x77fe0000 0x11000 C:\WINDOWS\system32\secur32.dll
kernel32.dll 0x7c800000 0xf6000 C:\WINDOWS\system32\kernel32.dll
ntdll.dll 0x7c900000 0xb2000 C:\WINDOWS\system32\ntdll.dll
shell32.dll 0x7c9c0000 0x817000 C:\WINDOWS\system32\shell32.dll
user32.dll 0x7e410000 0x91000 C:\WINDOWS\system32\user32.dll
No idea if more attempts of local system changes in other places than registry are made when starting from removable media.
Q.C Is this the reason why XnView Portable to be used?
Starting from optical media/usb drive
Moderators: helmut, XnTriq, xnview
Re: Starting from optical media/usb drive
No reason, it's just package...chrizio wrote: Q.A Can you tell the reason please?
Registry, iniQ.B:
It is very well described where is the XnView control panel for determining the storage
of its settings (registry or ini file, if ini file then in which directory).
But how is the first half of the true?
How is the checkup order the XnView uses during its startup. First registry, then ini file.
Or in opposite order?
Depending setting choosen...Where the settings from "System Integration -> Save Options" are stored?
???During XnView startup they must be recreated from some storage. Where is that storage?
The first foundIn other words: let's assume at all supported places (registry, ini file in windows directory,
ini file in xnview installation directory, ini file in users directory) there are valid xnview settings available.
That means valid ini file in windows directory, and in xnview installation directory, and in users directory
and in the registry. Which one will be taken? How is the complete order?
Strange, only by starting XnView?While starting XnView from CD/USB drive I notice that it attempts to change registry.
Found with Sysinternals Process Monitor.
It attempts to change registry by doing e.g following (registry value set)
Date & Time: 09.10.2010 20:25:13
Event Class: Registry
Operation: RegSetValue
Result: ACCESS DENIED
Path: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Documents
Pierre.
Re: Starting from optical media/usb drive
Thanks for your answers.
You tell "registry, then ini". Does it mean that order is fixed coded in XnView?
Let's assume the stationary XnView selects Registry, and the XnView on some removable media selects ini storage.
If then that one from removable media is being invoked which settings storage will be used?
Or similar situation but the stationary XnView uses ini in the program directory.
The same question as above.
> Strange, only by starting XnView?
Yes, only by starting XnView.
You tell "registry, then ini". Does it mean that order is fixed coded in XnView?
Let's assume the stationary XnView selects Registry, and the XnView on some removable media selects ini storage.
If then that one from removable media is being invoked which settings storage will be used?
Or similar situation but the stationary XnView uses ini in the program directory.
The same question as above.
> Strange, only by starting XnView?
Yes, only by starting XnView.
Re: Starting from optical media/usb drive
Yes it's hardcoded. But you can launch xnview with '-ini <ini file>'chrizio wrote:You tell "registry, then ini". Does it mean that order is fixed coded in XnView?
Let's assume the stationary XnView selects Registry, and the XnView on some removable media selects ini storage.
If then that one from removable media is being invoked which settings storage will be used?
Or similar situation but the stationary XnView uses ini in the program directory.
The same question as above.
I've checked, but no RegSetValue at the starting...> Strange, only by starting XnView?
Yes, only by starting XnView.
Pierre.