Thursday, May 03, 2007

Programming, RunAsAdminExplorer Shim v2.0.0.Beta8

Finally we release the new beta which mainly contains bug fixes, but has some new features also please see detailed list below.

IMPORTANT!!! This release has a new installer which currently unable to detect previous installations of RAA! Please REMOVE any previous version of the software prior to install the new Beta8!

    Changes in v 2.0.0.Beta8

    Global changes
    - TASK FINISHED: #127580, solution and projects moved to MS Visual Studio 2005
    - Setup changed to Inno Setup. http://www.jrsoftware.org/isinfo.php You can use Quick Start Pack from http://www.jrsoftware.org/isdl.php#qsp The Inno Setup QuickStart Pack includes additional third-party add-ons such as the ISTool script editor and Inno Setup Preprocessor.
    - FEATURE REQUEST IMPLEMENTED: #1588941, RAA can be setup and run under Vista now.
    Current known limitations under vista are :
    - Privilege caption info not supported yet.
    - Beta 8 introduce a fix for 'Could not shutdown from the shell' problem. That fix is not working on Vista, so we have to use currently the original win API SaferCreateLevel to produce the normal user token, which has no shutdown privilege, so under vista you still have to use a shutdown tool.

    In Explorer.exe
    - Added support of recreation of tray status bar icon if the windows shell has been restarted.
    - Added handling of unnecessary single click events in case of a double click on our tray icon
    - BUG FIX: Do not know why but STATIC::WM_RUNASADMIM_MENU triggered in case of click events on the status area not owned by any tray icons?!!?!?!? (that causing RAA menus appear clicking on not owned tray icon area). Temporaly fix can be removed if found the reason.
    - BUG FIX: Main (CExplorerModule) message loop now handles modeless COptionsDialog and CAboutDialog acceleration messages.
    - BUG FIX: #1544086 fixed, CommandLineToArgvW has a special interpretation of backslash characters when they are followed by a quotation mark character (")
    - BUG FIX: #1500208 fixed, frequent calls of LoadImage without using LR_SHARED flag in ChangeTrayIcon eat GDI resources, later we can make a TTrayIcon class that would keep tracked the loaded resources.
    - Added silent (un)install option "-S"
    - BUG FIX: #1686842 fixed, Tasks run as normal user now have shutdown and undock privileges in their token.
    - BUG FIX: Options possibly changed at startup now saved correctly at RAA taskbar window creation.
    - Added new option WarnOptions::WarnOnUnsufficientPrivilege. If set RAA warns the user at startup about possibly insufficient privileges he/she owns and asks for if the warning must be shown at next time also. Stores the result of the answer as the newly added options. If the user has no enough privilege (using RAA without admin privilege) our new ComputeNormalTokenFromCurrent func might fail. In that case we are using the original SaferCreateLevel function to create the normal user token.
    - Added GetFullPathName bug workaround, the virtual folder path names produced by the function call, like ::\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{E211B736-43FD-11D1-9EFB-0000F8757FCD} of 'Scanners and cameras' are could not be opened by the shell, the first '\' at the beginning of the directory name part is brakes the shellparser :-O

    In RunAsAdminHook
    - BUG FIX: Fixed annoying tray icon drag&drop bug mouse release events inside the TrayNotifyWindow did not triggered WM_MOUSELEAVE that is used to handle the end of a d&d operation in RAA explorer.
    - BUG FIX: In LowLevelMouseProc detection of WM_MOUSEMOVE, WM_MOUSELEAVE has run only when NoClickOnDragOverShowHide was not set. :$
    - TASK IMPLEMENTED: #137520 50% ready, offsets of privilege caption info can now be set in RAA OptionDlg.

    In Policy.exe
    - TASK FINISHED: #132820 implemented, Policy check scripts now can examine the parameters passed with the file to be started. Command parameters could be accessed from the policy script by using "context" named variable. Context is an array where the first element of the array (index 0) contain array of parameters, and the second element of the array contains XML node of the policy that fired the rule. NOTE: in some cases the first element of context will be VT_EMPTY.

    In Launcher.exe
    - BUG FIX: ParseCommandLine handled incorrectly the case when only 4 command line params were given with /p

    In RAACommCtrls
    - BUG FIX: When restoring dialog control states from the saved options IDC_SHOW_HIDDEN_TASKBAR_ICONS and IDC_SHOW_CMDDLG_ON_CTRLDOWN were exchanged :$
    - TASK IMPLEMENTED: #137520 50% ready, offsets of privilege caption info can now be set in RAA OptionDlg.
    - Added new option WarnOptions::WarnOnUnsufficientPrivilege in RAA OptionDlg.

    In RAAShellContextMenu
    - Added possibility of unix style, slash separated path copy to the 'Copy path to clipboard' context menu. If Shift held down the path copied in unix style. Of course you can combine the Ctrl and Shift keys to get the path in unix style and quoted at once.
    - BUG FIX: #1686842 fixed, Tasks started as normal user now have shutdown and undock privileges in their token.

    In ExecuteHook
    - Added handling of filenames without path and extension. We try to find runable files in the PATH with the given extension or extensions determined by PATHEXT and transform the unqualified filename to its fully qualified peer. Without that f.e. simple commands run from Win+R shell run dialog were not effected by the Policy.
    - Project node renamed to RAAExecuteHook