Delete confirmation dialog may be (partially) hidden behing start menu.
As a result the dialog may be not accessible because start menu(s) are
displayed as top-most windows.
Thus when executing menu command we will make menu(s) non-topmost. So that
other windows can be drawn on top of menu(s).
Fixes#257
`Open-Shell` needs to adjust itself after OS upgrade. It seems that
`StartMenuHelper` registration is lost after such upgrade:
http://www.classicshell.net/forum/viewtopic.php?f=7&t=8082#p34821
To fix this registration, administrator rights are required (means user
interaction, UAC).
While this is acceptable in consumer environment, it is typically not
desired in business environment where users typically doesn't have
administrator rights.
This patch allows to run `Open-Shell` in silent upgrade mode that will:
* check if OS version changed (otherwise end immediately)
* perform OS upgrade tasks without any user interraction
Such mode can be then used to create scheduled task that will run this
silent upgrade check on every boot with system rights:
`schtasks /Create /RU "NT AUTHORITY\SYSTEM" /SC ONSTART /TN "Open-Shell OS updgrade check" /TR "%ProgramFiles%\Open-Shell\StartMenu.exe -upgrade -silent"`
#167
* Fix naming inconsistencies
'Menu' vs 'StartMenu'
* Installer: Remove Facebook link
* Installer: Remove PayPal donate remnants
* OpenShellReadme: Remove info about product version
* Build: Add symbols to 7z archive
It is much smaller than ZIP (15MB vs 34MB).
* Build: Don't create source package
There is no need to create package with sources as sources for given
release can be easily obtained from git.
* AppVeyor: Remove unneeded install script
__MakeFinal.bat now handles it.
* Build: Less verbose output
* Build: Support for version suffix
AppVeyor may add suffix to version (X.Y.Z-abc) in case of PR builds.
* AppVeyor: Disable shallow clone
To be able to use git commands (in source indexing script).
Use history depth 1 instead.
* Build: Add source index to PDBs
Add source information to PDBs so that source files can be retrieved from Github by debugger.
CMenuContainer object was not destroyed when Start Menu window was closed.
It was referenced by IFrameworkInputPane::AdviseWithHWND call (to be able
to receive input pane notifications). The problem was that dereferencing
(IFrameworkInputPane::Unadvise) was called from CMenuContainer destructor
that is called only when object's refcount goes to zero.
In previous Windows versions it somehow worked, because for some reason
CMenuContainer object was no longer referenced when its window was
destroyed.
Apparently there was some change in IFrameworkInputPane handling in recent
Windows builds (starting with 17692).
To fix the issue we have to call IFrameworkInputPane::Unadvise() when
CMenuContainer's window is about to be destroyed.
* Set version of binaries based on CS_VERSION environment variable
* Use AppVeyor supplied product version
* Automatically generate ProductCode GUID
* Convert version (CS_VERSION) to number (CS_VERSION_NUM)
* Remove pause to be automated build friendly
* Use 7-Zip instead of WinRar
* Enable parallel builds
* Build improvements
* Push final installer to AppVeyor
* AppVeyor config