Network Drive Controller Copyright 2015-2019 by Michael Burns. All rights reserved. v1.42 - November 30, 2019 1. Added grip to bottom on Console window to make it easier to re-size. 2. Added allowing selection of multiple items for connection or disconnection. If multiple items are selected and any of the other buttons are pressed, only the top-most item is affected. (User requested feature.) 3. Updated help file. v1.41 - November 29, 2019 1. Added "Connect All Possible" & "Disconnect All Possible" buttons. 2. Update help file to say how one can trigger NDC from a script. (User request.) 3. Changed button & checkbox layout. 4. Made Console dialog re-sizable. The languages the NDC Console is written in (mix of x86 Assembly & PB) don't automatically re-size the controls therein when the parent dialog size/shape is changed, nor does Windows do so either, so I had to add a re-sizing engine & database, monitor the Console dialog size and trigger the re-sizing engine manually in the Console dialog callback function. That's why I didn't do this earlier as I don't have a use for this feature (& it's a bit of work and I'm lazy). (User requested feature.) 5. Updated help file. v1.40 - November 3, 2109 1. Added Checkbox to console password request dialog to allow display of password. 2. Added Checkbox to console password set dialog to allow display of password. 3. Help file updated. v1.39 - October 5, 2019 1. Added right-click context menus. Right clicking on a drive listing causes a context menu to open listing (Connect, Disconnect, Edit, Clone+Edit, Move Up, & Move Down). 2. Help file updated. v1.38 - June 5, 2019 1. Fixed bug in periodic update check communication routine in the icon tray module. This is related to the mid-May addition of a SSL certificate to the michaelburns.net website. Module would sometimes mis-parse the response to it's asking michaelburns.net what the most up-to-date version of NDC is. v1.37 - June 1, 2019 1. Fixed the update check communication routine which broke when I added a SSL certificate to the michaelburns.net website, which I did in mid-May 2019. 2. When NDC asks michaelburns.net what the current version of NDC is (which it does by asking - no user info is sent), it attempts to ask via https. Falls back to http if it has to. 3. Help file updated. v1.36 - April 16, 2019 1. Fixed bug where an FTP path could slip though as a server path so an apparent FTP drive mapping could get saved. NDC does not support mapping FTP connections to drive letters because Windows does not support mapping FTP connections to drive letters. Windows does support mapping an FTP connection as a "Network Location" without a drive letter, but NDC does not support Network Location mappings. (User reported bug.) 2. Fixed bug where display did not always update when show password checkbox checked or unchecked. 3. Added checkbox to allow hiding of the drive path. (User requested feature.) 4. Update help file. v1.35 - January 9, 2019 1. Fixed bug where tray program could check for updates even when told not to. 2. Installer now provides the option to create a System Restore point for the PC before installing NDC. I've not had any reports of NDC messing up PC's, but I like the idea of making it easy to roll back the install or update just in case. Note that Windows 8 & 10 normally won't allow a new System Restore point to be created unless 24 hours have passed since the last Restore Point was created. This interval can be changed in the System Registry. You can see how here: https://www.tenforums.com/tutorials/94682-change-system-restore-point-creation-frequency-windows-10-a.html Windows Vista & 7 do not have this 24 hour default System Restore interval. 3. Binaries (exe files) are now digitally signed. This insures that any alterations of the exe's after I release them is detectable. 4. Minor code cleanup. 5. Updated help file. v1.34 - November 11, 2018 1. No longer have console open automatically at end of installation to reduce confusion between that behavior & the installer's request to reboot system. 2. If System Tray icon active, and the "Automatically Check For Updates" is active, then the System Tray icon program will check for updates once per day. The check interval is once every 24 hours with the interval starting when the Tray icon program starts. This means that doing things like restarting the PC or toggling the NDC Console up may restart the interval. The program uses the Windows API SetTimer function & Windows message pump so the CPU utilization is basically unaffected. v1.33 - October 16, 2018 1. Attached the NDC icon to other executables used by the installer/uninstaller. Just cosmetic. 2. Compiler for tray program set to optimize for speed rather than minimum size of binary. (To minimize it's use of Windows resources.) Other modules are still set for size optimization. 3. Fixed bug in NDC Console module where editing a drive mapping that had a null password could display random giberish in the password field. (User reported bug.) 4. Updated help file. v1.32 - September 16, 2018 1. Added keeping the focus on a given item when the "Move Up" & "Move Down" buttons are used to make it easier to perform repeated moves on the same item. 2. Add a menu item that causes a tray item to be present that when clicked on, brings up the Console. Normally no part of NDC is running after the drives are mapped. Nor is any part of NDC running after the Console is closed. But if one opts to have a System Tray icon, then a small program will remain running that calls the Console when left clicked. Right clicking on the tray icon gives the user the option to stop the icon program. (User requested feature.) 3. Updated help file. v1.31 - July 27, 2018 1. Changed the way the display refreshes when the "Move Up" & "Move Down" buttons are used so that it refreshes faster. 2. Fixed typos in help file. v1.30 - May 20, 2018 1. Fixed bug introduced in v1.29 where manually connected mapped drives with the correct drive letter & path did not display as connected because the network was incorrect. Now, any drive that is connected will display as connected if the drive letter and path are correct even if the network is not correct. 2. Added "Move Up" & "Move Down" buttons to allow reordering of the Network Drives list (move a row up or down in the list). This is probably not an issue for 99.9% of users, but my drive list has 16 entries most of which are rarely used, but are necessary. The drive ordering is not entirely cosmetic in that when the user logs into their account, NDC checks whether to try to map a drive in the order listed. Depending on the system, this order may be important. 3. Updated help file. v1.29 - April 9, 2018 1. Updated help file. 2. Security improvements on checking for active network interface. 3. Added caps lock check when passwords are entered on top of any Windows may perform. 4. Re-architected the "Connected ?" column to filter by network. If a given drive letter was connected, and that drive letter was used multiple times, all of the instances would display the connection status even those to the other networks. This was due to the way Windows reported connection status by drive letter. Now, only the drive actually mapped for the active network(s) shows the active connection status. v1.28 - February 3, 2018 1. Fixed typo in help file & release notes. 2. Fixed bug introduced in v1.25 which triggered a password too long error in the Add/Edit dialog when the password was null. (User reported bug.) 3. Code cleanup. v1.27 - January 25, 2018 1. Security improvements on server communications when program checks for updates. 2. Security change on drive mapping database. v1.26 & earlier will not be able to correctly recognize mapped drives created or edited with v1.27 or later versions. v1.27 & later versions will however, correctly recognize mapped drives made with v1.26 & earlier versions, and automatically convert them to the v1.27 database format. This means that downgrading from v1.27 or later to v1.26 or a lower version isn't possible once mapped drives are created or modified by v1.27 or later, unless the v1.27 or later mapped drives are deleted and recreated with the older version. 3. Fixed typo in database corruption error message. 4. Updated help files. v1.26 - January 22, 2018 - Not released to public, only to one person for testing purposes. 1. Added Master Password feature to allow locking the console to prevent casual changes. (User requested feature.) 2. Fixed bug in Innosetup script where part of the uninstaller would be rerun for the number of times the NDC installation had been updated. 3. Updated help files. 4. Fixed minor bug in "Refresh List" button routine that could cause the refresh to not actually refresh the display. 5. Rewrote "Delete All Drives" routine to be more efficient and robust. 6. Fixed typo in one of the "Delete All Drives" warning messages. 7. Changed Innosetup script so that older versions of NDC are not allowed to be installed over newer versions. (v1.25 & earlier will install over newer versions.) v1.25 - January 8, 2018 1. Additional security checks on inputs with an eye towards preventing possible buffer overflows when accessing the Windows API. So now the console checks for passwords to be less than 128 characters, UserIDs less than 104 characters, Network Names less than 32 characters, Paths less than 248 characters (260 minus the 8.3's 12 characters). Note, as near as I can tell, the Windows GUI will only allow you to create UserID's as large as 20 characters, but larger ones can be created programatically. SSID's (which Windows will consider a WiFi networks "network name") are limited to 32 characters. In a future version, I may allow the user to set these sizes smaller to better match policy restrictions admins may have imposed on machines. If anyone thinks these defaults should be changed, I'd like to hear from you. 2. Code cleanup. 3. Added post install one-time check for updates. While my site & CNET are the only sites I support, many others now carry NDC and some don't update their setups often. 4. Compiler set to optimize for minimum size of binaries rather than speed. (NDC is not a numerically intensive program so the speed hit is negligible.) 5. Innosetup script change to display welcome screen showing the version about to be installed. 6. Help file updated. Typos fixed. Support link added. 7. Help menu area reorganized. Support menu selection added. 8. Added system calls to update system icons faster in strategic places within the program. (User requested feature.) v1.24 - December 15, 2017 1. Fixed bug where the "present drive" could disappear when the edit dialog was open. (User reported bug.) 2. Added the "present drive" to the drive list when the edit dialog is open. 3. Changed how the edit & add dialog behaves when conflict warnings are acknowledged by the user. Now the dialog stays present making corrections easier. 4. Updated Help file. v1.23 - December 13, 2017 1. Updated Help file. 2. Fixed typo in manual update check message dialog. 3. Fixed bug introduced in v1.21 where when editing an existing mapping, hitting the Cancel button on the edit dialog causes the last mapping on the list to be deleted. (User reported bug.) 4. Fixed bug where when editing an existing mapping, hitting the Save button on the edit dialog can cause the dialog to hang. (User reported bug.) v1.22 - December 10, 2017 1. Updated Help file. 2. Added System-menu box in the console's main dialog title bar (X in upper right that can close the application). (User requested feature.) 3. Added Minimize button in the console's main dialog title bar (_ in upper right that can minimize the application). (User requested feature.) 4. When adding or editing a drive, if a network has been selected in the "Network Name" box, then the available driver letters in the "Drive" box is filtered of any drive letters already taken by prior network mappings on that network removed. The drive list was already filtered to remove drive letters already assigned to hard/optical drives. One can still manually type any drive letter into the box, but if a conflict is created the user is warned & the configuration is not saved. (User requested feature.) 5. Minor code cleanup to Innosetup installer script. 6. Added Windows & Mircosoft trademark statement when dialog shown when "About" menu option chosen. v1.21 - November 26, 2017 1. Set Innosetup to only allow the installer to run if Windows Vista or higher. 2. Enhanced logging info. 3. Enhanced OS determination by displaying the OS build version (helps me when dealing with Windows 10 related bugs). 4. Added ability for anonymous connections to mapped drives (i.e. no UserID), in which case the user leaves the User ID field blank of the Add/Edit dialog. (User requested feature.) 5. Added ability to leave NDC settings intact during an uninstall in case NDC is reinstalled later. Windows won't be able to use saved NDC settings to do any drive mapping. (Default is to not delete all NDC settings.) 6. Fixed bug where hitting cancel on a "Clone + Edit" could result in a duplicate drive being created & automatically saved. 7. Updated Help file. v1.20 - November 4, 2017 1. Minor security improvements. 2. Reorder TAB order on main dialog. (User reported bug.) 3. Reorder TAB order on secondary dialog. (User reported bug.) 4. Added more input validations. 5. Added a wildcard selection (*) for Network name, so that one can use NCD to mount drives for all networks. (User requested feature.) 6. Added check to prevent wild card Network from conflicting with a non-wildcard mapping. 7. Change the start delay from being in minutes to being in seconds. (User requested feature.) 8. Added Innosetup mod to convert the existing startup delay (if there is one) from minutes to seconds if upgrading from v1.19 or lower. 9. Updated Help file. v1.19 - October 18, 2017 1. Removed Redpill virtual machine (VM) Check. Only use RDTSC counter method for VM checking. Redpill seemed to cause problems with Hyper-V under Windows 2016 Server. (User reported bug.) 2. Added operating system check. Part of debugging issue fixed by #1 above. 3. Added OS identification when dialog shown when "About" menu option chosen. 4. Updated Help file. 5. Fixed issue in Innosetup where not all items always appeared in the Windows start menu. v1.18b - October 17, 2017 - Not released to public, only to one person. 1. Removed virtual machine (VM) Check as part of debugging Windows 2016 Server issue. (User reported bug.) v1.18 - August 12, 2017 1. Updated Help file. 2. Added a check when a drive is added, so that it does not conflict with an existing mapping. i.e. You can't have more than one entry where both the Network Name and Drive Letter are the same as some other entry. 3. Indicates if a WebDav mapping reports it is encrypted. v1.17 - July 19, 2017 1. Changed how drives mapped with no password are displayed. 2. Fixed bug where trailing "/" in path (for SMB, CIFS or Netbios paths) would cause problems. (User reported bug.) v1.16 - June 26 2017 1. Fixed typo in download file name. 2. Provided allowance for shares where the password is blank. (User requested feature.) 3. Updated help files. v1.15 - April 20, 2017 1. Display refresh on Console run as separate thread. This can sometimes speed up the screen refreshing. 2. Add a "remove all mapped drives" menu option. 3. Additional Innosetup changes to facilitate a cleaner uninstall process. 4. Fixed issue that started happening after the April 11, 2017 Windows Updates where the program would hang trying to refresh the drives list when connected to a VPN. v1.14 - December 18, 2016 1. The add mapped drive dialog drop-down list of drive letters now lists all drive letters not already used by the PC's internal hard drives & optical drives. (One has always had the ability to assign any drive letter by typing it in, even those letters not in the drop-down list,and that feature still exists.) 2. Minor display bug fix. 3. Help file updated. v1.13 - December 15, 2016 1. Add network type for active connections. 2. Moved log files to the users Documents folder in a "NDC Logs" subdirectory. This allows the logging to work even if not run with Administrator privileges. Also, this more consistent with the fact that the NDC settings are user specific. v1.12 - December 5, 2016 1. Added ability for user to turn on logging that generates local log files to disk to help me or them to diagnose problems. No credential info is every written to the log files, however the server path is. Files are not erased, so they can accumulate and take up disk space, so leaving this turned on is not recommended. (Default is off for privacy. User needs to opt-in.) 2. Minor help file improvements. 3. Added WebDAV protocols to types of drive mappings. See caveats in help file in the "Permissions & Other Issues" section. 4. Updated help files to include WebDAV. 5. Minor bug fix on menus. 6. Fixed bug in Inno Setup installer script that pointed to outdated product URL. v1.11 - November 19, 2016 1. Minor cleanup of look to the Network Drives list. 2. Minor errors in help file corrected. 3. Minor error checking improvements. 4. Security improvements in variable handling, mainly additional explicit overwriting of RAM holding sensitive info once that info is no longer needed before releasing the RAM to the Operating System. 5. Minor change to the version check to detect an error with the remote server. v1.10 - October 16, 2016 1. Added "Clone + Edit Drive" button to make it easier to duplicate a drive to be connected to via another Network name. 2. Security improvements to memory handling & network mapping storage. v1.9 & earlier will not be able to correctly recognize mapped drives created or edited with v1.10 or later versions. v1.10 & later versions will however, correctly recognize mapped drives made with v1.9 & earlier versions. This means that downgrading from v1.10 or later to v1.9 or a lower version isn't possible once mapped drives are created or modified by v1.10 or later, unless the v1.10 or later mapped drives are deleted and recreated with the older version. 3. Minor bug fixes. v1.9 - August 4, 2016 1. Fixed bug in Inno Setup installer script that could cause an error when NDC is first run after installation. 2. Minor code cleanup. v1.8 - June 4, 2016 1. Added user adjustable time delay after logon before attempting to map drives. This can be useful if the PC is on a network that takes a long time to stabilize its network connections. v1.7 - April 13, 2016 1. Updated copyright notice. 2. Fixed minor display bug in Network Drives list where multiple drives could sometimes inadvertently be selected. 3. Added an optional improved detection method for whether network is up & running sufficiently to connect drives by adding an "aggressive" mode for network detection. (Default is off for privacy. User needs to opt-in.) v1.6 - Feb 28, 2016 1. Added detection for when web.com (who hosts my site) is having reliability problems, and when that occurs, the update check will not offer an upgrade. v1.5 - Feb 4, 2016 1. Fixed minor display bug in Network Drives list. v1.4 - Jan 7, 2016 1. Security improvements to memory handling such as tighter explicit overwriting of RAM holding sensitive info once that info is no longer needed. v1.3 - Oct 20, 2015 1. Added mutex checking to prevent multiple instances of program from running at the same time. v1.2 - Oct 3, 2015 1. Added ability for user to force the console to manually check for updates. 2. Added ability for user to turn on automatic checking for updates on logon & when console is opened. (Default is off for privacy. User needs to opt-in.) v1.1 - Sept 30, 2015 1. Added ability to edit existing network drive mapping. v1.0 Initial Release - Sept 14, 2015 Network Drive Control was developed & tested on a Windows 7 Ultimate 64-bit SP1 machine though versions 1.20. From v1.21 onward, Network Drive Control is developed & tested on a Windows 10 Professional 64-bit machine. Network Drive Controller has been specifically tested before release of v1.0 on the following types of machines: Windows 7 Professional 32-bit SP1 (virtual machine) Windows 7 Professional 64-bit SP1 (real machine) Windows 7 Enterprise 32-bit SP1 (real machine) Windows 7 Enterprise 64-bit SP1 (both real & virtual machines) Windows 7 Ultimate 64-bit SP1 (real machine) Windows 10 64-bit (virtual machine) For minor revisions, Network Drive Controller is tested on the following types of machines: Windows 7 Professional 32-bit SP1 (virtual machine) Windows 7 Enterprise 64-bit (real machine) Windows 10 Professional 64-bit (real machine) Windows 10 Enterprise 64-bit (virtual machine) Interactions with users has resulted in Network Drive Controller being tested at least once (usually on a user's machine as part of solving a problem for the user) on the following types of machines: Windows Server 2016. Microsoft® and Windows® are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.