Drive Space Indicator FAQ

[size=125]General Questions:[/size][/u][/b]
1a) Should I use the add-on or the SFX to install this Program?
1b) Is this Program compatible with Windows Vista/7?
1c) My Anti-Virus software reports that this software is infected.
1d) What changes have been made to this Program?
1e) There is a Problem with the Program. What do I do?
1f) I have an idea or suggestion for this Program.  What do I do?
1g) Can I redistribute this Program?
1h) Can I become a beta-tester for you?

[size=125]Command-Line Switches:[/size][/u][/b]
2a) Overview of the Command-Line Switches:
2b) Can I use these switches with the Silent/Standard Installer?
2c) Can I use these switches with the add-on version?
2d) Why is the "/DELAY" switch and/or "Delay At Startup" option needed?

[size=125]Detection Questions:[/size][/u][/b]
3a) How does the hardware detection work for hard drives?
3b) Why are there no indicator icons for floppy drives?
3c) Why isn't my device picked up correctly?
3d) I have a memory card reader. Why doesn't it show when the media is inserted/removed?
3e) Can your Program support my (insert hardware device here)?
3f) I read #3g. If you won't write large portions of code to support a single device, why do support GMail?
3g) If I unplug my hardware and plug it in again, it gets another drive letter. Will the Program keep the icon I assigned?

[size=125]Language Questions:[/size][/u][/b]
4a) My language isn't supported by your software!
4b) Why was the (language) language file deleted?
4c) Which languages are supported by the current version?
4d) What do I do if the translation is wrong or needs correcting?
4e) I am the translator and need to update the language file. What do I do?
4f) Why doesn't the Programmer update the out-of-date language files?
4g) How do I rebuild the Installer for myself to include my version of a language file?
4h) How do I use the multiple-plural support in this Program?
4i) The string needs the two variables swapped. How do I do that?
4j) How do I use the language auto-select feature?

[size=125]Icon Theme Questions:[/size][/u][/b]
5a) Can I use my icons with this Program?
5b) I want to build an Icon Theme. Is there any way to make doing any quicker?
5c) I want to share an Icon Theme. What do I do?

[size=125]Miscellaneous Questions:[/size][/u][/b]
6a) How do I communicate with the Programmer?
6b) Why doesn't bbclean work with this Program?
6c) Is there any way to get the source code to the Program?
6d) I read 6c.  Why not?
6e) Is there a way to import/export the device icon settings?
6f) What is WMI and why does this Program need it?
6g) How does the update function work?
6h) What is "folder management"?
6i) What is "shortcut management"?

[size=125]Optical Drive Questions:[/size][/u][/b]
7a) Why doesn't this Program work with virtual drives created by UltraISO?
7b) Why isn't the icons displayed correctly for my CD/DVD/Virtual/Removable drive?
7c) Why are there no indicator icons for CD/DVD/Virtual drives?
7d) Why can't your Program tell a virtual drive from an optical drive?

General Questions

1a) Should I use the add-on or the SFX to install this Program?
If you are installing or updating this Program on an already installed copy of Windows, you should use the SFX or the silent installer, because the installer will shut down currently running versions of DSI, then install itself.  If you are using the
RyanVM Integrator or nLite, you should use the add-on to integrate it into your copy of Windows.

1b) Is this Program compatible with Windows Vista/7?
Yes, it is. If you want to turn off Vista's indicator, simply go into the View menu for the folder and select a different view type, like selecting Icon instead of Tiles.

1c) My Anti-Virus software reports that this software is infected.
This
AutoIT topic contains links to many AV software companies in order to report inaccuracies, as compiled AutoIT Programs are occasionally reported to AV companies as viruses. This is because some idiots have decided to use AutoIT for malicious purposes. Unfortunately, those people cause grief to other legitimate Programs which use AutoIT.

1d) What changes have been made to this Program?
You really need to look at the
ChangeLog.  There really has been too many changes to list in the Question/Answer format.

1e) There is a Problem with the Program. What do I do?
When contacting me, please include the version number and what occurred with the Program.  If this is an icon Problem (Program not showing correct icon), please include the all information from the diagnostic tab and I'll take a look to see if I can fix the Program. Screenshots may also be helpful in diagnosing whatever Problem that you've encountered.

1f) I have an idea or suggestion for this Program. What do I do?
Please share your idea. I'm always looking for ways to imProve this Program and I need feedback from the users! I may not be able to implement all the ideas, but I will try.... Oh, yeah. Please send ideas that are RELEVANT to the Program. Don't send stupid stuff like "I want to edit my spreadsheet using this Program"!

1g) Can I redistribute this Program?
I will allow redistribution of the Program only in it's unmodified form, as long as Proper credit is given.

1h) Can I become a beta-tester for you?
At this time, there is no beta Program available to become a part of.  When new bugs are found and fixed, the new version is made available to everybody at the same time.

Command-Line Switches

2a) Overview of the Command-Line Switches:
Quote
/NOBAR = Disables displaying bars beneath Drive icons
/USEFLOPPY = Display bars beneath Floppy Drive icons
/NOCHECK = Disables Program update checking
/1CYCLE = Run only one icon update cycle, then quit
/UPDATE:[n] = Set time between update cycle to [n] minutes.  Valid values: 1, 2, 3, 5, 10, 15, 20, 30, 60
/UPDATE:Never = Set time between update cycle to Never
/DELAY:[n] = Pauses Program execution for 0 to 9 minutes before executing 1st cycle.
/LANG:AUTO = Auto-detect which language to use for DSI
/LANG:[n] = Force language [n] to be used.  Program aborts with error if language not found.
/THEME:[n] = Force theme [n] to be used  Program aborts with error if theme not found.
/ICON:[n] = Displays icon in tray for drive [n]
/PROGTRAY = Force Program tray to be shown
/PROGTRAY:0 = Force Program tray to be hidden
/LIBICON = Use icon from Icon Theme for Program tray
/LIBICON:0 = Use Drive Space Indicator icon for Program tray.
/NOSC = Do not create shortcut for DSI
/SC = Create shortcut in folder "Drive Space Indicator" in Start Menu
/SC:[n] = Create shortcut in folder [n] in Start Menu
/PASSIVE = Installs DSI, displaying only the screen showing Progress of the installation
/SILENT = Installs DSI without displaying any of the Installation GUI

2b) Can I use these switches with the Silent/Standard Installer?
Yes! Even though the switches were initially intended solely for run-time, the installers will apply the specified settings to the Program.

2c) Can I use these switches with the add-on version?
Yes! For example, if you wanted to change the default theme to XPtsp, you would alter the Entries_DriveSpace.ini file so that it read:
Quote
DriveSpace.exe /SVCPACK /THEME:XPtsp
The new switch in this example is in bold. Once you're done, archive the files back together and you've got a custom add-on!

2d) Why is the "/DELAY" switch and/or "Delay At Startup" option needed?
Well, one of the Problems that a few people, including myself, have found is that when the computer boots up and DSI starts, Explorer crashes. Some machines don't experience this Problem. Why? I don't know. Nothing I do seems to make any difference with Explorer crashing.

I finally found a solution that works to prevent Explorer from crashing, though. That solution is the "/DELAY" switch, which can be modified by using the "Delay At Startup" options in the menu. It pauses the Program execution for a set number of minutes. On my machine, a 2 minute delay keeps Explorer from crashing. It may be set to anywhere from 1 minute to 9 minutes, but there is no delay set by default.

How will you know if you need it?  Well, the answer is simple: If Explorer crashes at boot-time, you need to set it. If you need the Program to wait a few minutes until everything is ready (ie: you run
FtpDriveand don't want to see constant updates caused by FtpDrive updating the system), you need to set it. So forth and so on....

Detection Questions

3a) How does the hardware detection work for drives?
The Program makes several calls to
Windows Management Instrumentation (WMI) in order to determine which drive(s) letter is associated with which piece(s) of hardware.  If it can't associate the drive letter with a PNP device ID, it gets the device ID from the registry.

Once PNP device IDs are determined, the PNP device ID is checked.  If the first 3 characters of the PNP device ID is "USB", it is assigned the USB drive icons. If the first 4 characters are "1394", then FireWire icons are assigned. If the drive letter is the Operating System drive, then the OS drive icons are assigned. Otherwise, normal drive icons are used.

The AutoIt functions only reports the active network connections instead of all network connections, so DSI solves this issue by making several calls through WMI in order to determine the network connections and passes that information back to the main loop.

3b) Why are there no indicator icons for floppy drives?
By default, the Program doesn't attempt to access the drives because the floppy drive grinding got on my nerves during testing. You can enable the indicator bars for floppy drives by checking the "Show Floppy Drive Icons with Bars" option on the "Options" tab.

The default behaviour of no icons for floppy drives can be overwritten by using the [strong]/USEFLOPPY[/strong] switch while installing.

3c) Why isn't my device picked up correctly?
I can't write detection code for the device because I don't know what the PNP device ID will look like.  What also makes Proper device detection impossible is that devices within the same category have remarkably different PNP device IDs.

3d) I have a memory card reader. Why doesn't it show when the media is inserted/removed?
That's because either (1) Windows doesn't send a message indicating that media has been inserted, or (2) I don't know what message to look for that would indicate a media change. I can't do anything about the former Problem. I'll continue researching to see if I can solve the latter Problem.

3e) Can your Program support my (insert hardware device here)?
If the hardware device doesn't create a drive letter Properly, then no. No drive letter means that this Program can't change the icon for it. I have no way of detecting if what the state of the hardware is, nor can I detect such configurations without a serious amount of information, which I can't get short of you sending your entire system (and peripherals) to me (which is unacceptable! - I wouldn't accept the shipment anyhow!) I won't write large portions of code for a single device that does not create a drive letter, just to detect how much space it has on it.

3f) I read #3e. If you won't write large portions of code to support a single device, why do support GMail?
The only thing I can do for GMail is to change the icon in the shell extension. The code in question is maybe 5 or 6 lines total. I can do the same for any other shell extension by means of the same code I'm using for GMail. All I need to know is the CLSID of the software in question.

3g) If I unplug my hardware and plug it in again, it gets another drive letter. Will the Program keep the icon I assigned?
Yes! Each device's icon setting is stored in the registry, so when it gets plugged in again at some future point, the device will get the icon that was assigned it to.

Language Questions

4a) My language isn't supported by your software!
If you want your language supported by this Program, please translate the
English.ini file found in the Program and send it to me. I'll include the new translation in both the next version, as well as make it available for download through the Updates tab.

4b) Why was the (language) language file deleted?
The first time I ever deleted a language file as part of the SFX install routine was the Dutch language, version 5.1.0.20. In this instance, the last update done to that language file was for version 5.0.0.22. There were 20 releases between v5.0.0.22 and v5.1.0.0, and another 20 releases afterwards, with the language file not being updated. I felt it was not in the best interest of the Program to have such an out-of-date language that no one was willing to update. So I deleted the language file and removed it from the SFX and Add-On. Imagine my shock when offers to update that language file came in soon after....

The second time I had to delete a language file was during the upgrade from v5.1.x.x to v5.2.0.0. The conversion script really screwed up the Serbain language file, basically emptying the file, which made it unusable for this Program.

Now, while I detest deleting language support, I will if absolutely no one updates the language file in a reasonable amount of time. I consider 2 1/2 weeks reasonable, and 2 1/2 months a completely unreasonable amount of time.

4c) Which languages are supported by the current version?
<table border="1" width="100%]
   <tr>
      <th width="25%]Language</th>
      <th width="25%"Translator</th>
      <th width="25%"Version</th>
      <th width="25%"Last Uploaded</th>
   </tr>
   <!-- BEGIN translator -->
   <tr>
      <td>{translator.U_LANGUAGE}</td>
      <td>{translator.U_TRANSLATOR}</td>
      <td>{translator.L_VERSION}</td>
      <td>{translator.L_UPLOADED}</td>
   </tr>
   <!-- END translator -->
</table>

4d) What do I do if the translation is wrong or needs correcting?
I STRONGLY urge you to contact the translator with this issue.    Private Message (PM) links are available in
4c under "Translator".

4e) I am the translator and need to update the language file.  What do I do?
At present time, the only way to get the language file updated is to either: (1) PM me or post in the RyanVM topic about a link to the updated file -OR- (2) PM me or post in the RyanVM topic about the individual lines that need changing in the file.

In the future, I am planning to add features that will allow the translators to upload the new file directly to my web site. Although, at this time, I'm not sure how to accomplish this without leaving my web site open to hackers....

4f) Why doesn't the Programmer update the out-of-date language files?
Actually, I've tried to use an online translation service to translate a few lines.  I was told by several forum members that the translations were not good, and was told by one member that he/she would rather use the English version than a bad translation..... So, since I only speak English, that's why.

4g) How do I rebuild the Installer for myself to include my version of a language file?
Unpack the 7zip archive, put your language file into the folder, then recompress using 7zip. I personally use the highest setting to compress it, as it saves the most space. Next, you will need the Config.txt file and the Modified 7zip SFX module. Combine them in the command-line using the following command:
Quote
COPY /B 7ZSD_All.sfx+Config.txt+[archive name].7z [SFX].exe
where archive name is the 7zip file you just created, and SFX is the output SFX executable name.

4h) How do I use the multiple-plural support in this Program?
According to the information in Khargaroth's post, the _IIF statement should be formed like this:
Quote
_IIf($a&lt;5,_IIf($a=1,1,2),3)
OR
Quote
_IIf($a=1,1,_IIf($a&lt;5,2,3))
where $a is the variable using passed to the Program. The expression is evaluated in real-time and the results are checked to make sure they are within the array bounds. (ie: if format check specifies 3rd string and there are only 2, then the 2nd string is used.) The script converts the string into an array, using the | character as the seperator.

The string should be formatted like this:
Quote
Case 1|Case 2|Case 3
There are only two strings that currently support this: Main_05 and Menu_1C. The expression can be nested a number of times, such as displayed in the Polish language file:
Quote
_IIf($a&lt;55,_IIf($a&gt;51,2,_IIf($a&gt;44,3,_IIf($a&gt;41,2,_IIf($a&gt;34,3,_IIf($a&gt;31,2,_IIf($a&gt;24,3,_IIf($a&gt;21,2,_IIf($a&gt;4,3,_IIf($a&gt;1,2,1))))))))),3)

Please note that AutoIt has a limit of times you can nest functions like this. Please don't exceed this limit because you will crash AutoIt!
 
4i) The string needs the two variables swapped. How do I do that?
I've altered the Program so that the Program checks for the existance of a "%s2". The Program will swap the two parameters being passed to the function and correct the line back to "%s". An example of
the need for this was found in the French file.  It read:
Quote
Menu_4D4=Ic?nes %s par %s
And the output would end up being like:
Quote
Ic?nes Rhor par VistaBlue (English translation: Rhor icons by VistaBlue)
Modifying the French file so that it reads:
Quote
Menu_4D4=Ic?nes %s2 par %s
corrects the output so that, as intended, it reads like this:
Quote
Ic?nes VistaBlue par Rhor (English translation: VistaBlue Icons by Rhor)

4j) How do I use the language auto-select feature?
Use the /LANG:AUTO command-line switch to tell DSI to attempt to detect your language.  It will then compare the Language ID currently used with the compatible IDs contained within each language file and make an apPropriate match. If no match is found, DSI will default to English.

Icon Theme Questions

5a) Can I use my icons with this Program?
Sure! Information about the format of the Icon Themes is available
here.

5b) I want to build an Icon Theme. Is there any way to make doing any quicker?
Sorry.  There is no EASY way to build an Icon Theme.  A Program is in the planning stages in order to assist users with building an Icon Theme.  I've been using a Program called
Axialis IconWorkshop in order to edit icons and build the DLL files that are the Icon Themes.

5c) I want to share an Icon Theme. What do I do?
Contact me with the details of where to find the Icon Theme that you've uploaded. I will review the Theme to ensure compliance and add it to the web site if it is.  Make sure that if permission is required to publish it, that a file with that permission is included with the Icon Theme. I will, of course, comply with any take-down request made by icon creators. I will NOT be held responsible for other people ignoring copyrights!

Miscellaneous Questions

6a) How do I communicate with the Programmer?
A discussion topic is available at the topic at the
RyanVM forum, which should be used to report Problems, suggestions, and anything else you may want to communicate. You must be member of the RyanVM forum in order to post.  Fortunately, registering is easy. 

Another discussion topic is also available at the WinCert forum. In order to post there, you must be a member of the WinCert forum. Registering there is also easy.

It doesn't make a difference which forum you post in.  I try to check both topics frequently.

6b) Why doesn't bbclean work with this Program?
Explorer uses a registry key that can be modified (as this Program does) in order to change the icons for any drive.  Bbclean apparently doesn't read those registry keys, and thus, never shows the changes that this Program strives to make. If this bothers you, please contact the author of that Program to remedy this Problem.

6c) Is there any way to get the source code to the Program?
No, I don't distribute the source code to my Program.

6d) I read 6c.  Why not?
Well, I trusted people not to steal my code when the Program was VistaDrive.  The source code to the Program was open to all.  Unfortunately, 2 people decided that they liked my code so much that they used my code and called it something else, without giving me credit.

What is worse about this situation is that I have seen people bashing the original Program and Promoting their "version" of my code.  Frankly, I have to say that I don't appreciate having my Program being ripped off and then criticized!

6e) Is there a way to import/export the device icon settings?
Yes! The settings are stored in HKEY_LOCAL_MACHINE\SOFTWARE\Doug\DriveSpace\PNP key. Just import/export using REGEDIT.

6f) What is WMI and why does this Program need it?
WMI is the Windows Management Instrumentation tools. Much data can be gleaned through calls to it and many actions taken by calling it. My Program uses it to detect (1) hardware PNP device IDs for hard drives, (2) the network connections made don't show up through internal AutoIT functions, and (3) to manage the shortcuts in an individual folder. There may be other things that the Program uses it for, but those are the main needs. Without WMI, the Program would be seriously impaired where it came to Proper hardware detection.

6g) How does the update function work?
The Program contacts my web site to pull a file called
Version.txt and parses it. Once the user checks/unchecks which updates he/she wants to update, the Program will contact my web site and pull the requested files from it and installs them. In order to update the Program, the Program must shut down immediately after calling new Program to install itself.

6h) What is "folder management"?
At some future point, the Program will be able to actively manage the shortcuts inside a particular folder.  Shortcuts that point to the root of a drive (like E:\) would be automatically added to the list of shortcuts being managed by the Program.

6i) What is "shortcut management"?
Any shortcut that refers to the root of a drive (like E:\) can be added and/or
removed from the list of shortcuts being managed. The icon of managed shortcuts is updated
during the update cycle so that the managed shortcuts always have the correct icon
associated with them.

Optical Drive Questions

7a) Why doesn't this Program work with virtual drives created by UltraISO?
Apparently, the Problem with
UltraISO is that the device driver never gets assigned Device Properties. It has it's own icons that the drive uses and will never respond Properly to registry edits that Explorer supports. So, if this bothers you, please complain to the Programmer who writes UltraISO. They would have to correct their software.

7b) Why isn't the icons displayed correctly for my CD/DVD/Virtual/Removable drive?
I can only check for what I know. Correct hardware identification isn't an easy task...

In order to fix this, open the Program, go to the "Tray" tab, and select the drive that isn't displayed Properly. Then click on the "Change Type for Selected Drive" button. Just click on the apPropriate button with the icon representing the drive type you want it to display and you're done!

7c) Why are there no indicator icons for CD/DVD/Virtual drives?
Windows does not report the media size for optical (CD-ROM and DVD-ROM) drives correctly. The APIs report either that the drive isn't ready, or that the disk is empty or full (both are being defined as "free space = total space").

7d) Why can't your Program tell a virtual drive from an optical drive?
Well, virtual drive software is designed to emulate a phyiscal CD/DVD reader to Windows.  It wouldn't make sense for there to be a way to detect that the drive isn't a physical drive, as it would defeat the purpose of such a drive.  I have removed the virtual drive detection code from the Program, as there is no way to correctly identify whether a drive is virtual or not.  That's why I wrote in code to allow the user to "fix" incorrect identifications....