Invalid resx File Windows XP Only

Wednesday, May 24th, 2017

Invalid resx File in C# .NET Solution on Windows XP Only

If a c# application you've developed that targets the .NET Framework version 4.0 crashes on Windows XP but does NOT crash on Windows Vista through Windows 10, it is most likely due to an embedded resource issue (in one of the .resx files in the solution).  Upon opening the solution of my problematic program in Visual Studio 2010 on Windows XP, I received an error similar to the following:

Invalid resx file. Command completed successfully. Could not load type...

I fixed the issue by deleting one of my icon (.ico) files from the solution that was 256 x 256 pixels and replaced it with the same icon with a size of 255 x 255 pixels.  While a 256 x 256 pixel icon file is perfectly valid in newer versions of Windows, the maximum size of an .ico file can only be 255 x 255 on Windows XP x86 SP3.  I still target XP machines since I have a Netbook with it that will always be running XP.

WinRar Create SFX Self Extracting Installation Wizard and Add Registry Settings

Saturday, January 19th, 2013

Creating a SFX Installation Wizard with WinRar that Can Modify Registry Settings

WinRar's "SFX options…" dialog does not contain any information or guides that help you modify registry settings after the files for your installation have been extracted.  This is a hinderance, but it is extremely possible to modify registry settings by running a batch file after the installation has been completed.  First, make sure the .bat file is included with the rest of your installation files that you selected before making the SFX archive.  In the "Advanced SFX options" window, click on the Setup tab.  Under "Run after extraction", type in just the name of the .bat file you're going to be running.

The Batch File Itself:

This template batch file checks to see if the operating system is 32-bit or 64-bit.  This is an important distincting as it will affect how you setup keys for each type of operating system.  64-bit system keys are usually placed in the Wow6432Node key, so it is important to make this distinction so that your registry settings will work properly.  This batch file called "Program Registry Adder 1.0" provides examples on how to add and modify registry keys depending on the operating system type.

Download Program Registry Adder 1.0

Adding Keys with a .bat (batch) File:

To add specific keys, you use the following parameters:

REG ADD "HKLM\SOFTWARE\My Proggy\" /f /v "InstallDir" /t REG_SZ /d "%PPROG%

The first parameter specifies which hive and key should be created.  The /f flag forces the addition.  The /v flag is the name of the key that should be created.  The /t flag specifies what type of Registry key should be created.  The example uses REG_SZ, which is just a string.  The possible types are:

Value Type (Use this in the batch File)
Binary REG_BINARY
DWORD REG_DWORD
Expandable String REG_EXPAND_SZ
Multi-String REG_MULTI_SZ
String REG_SZ
Binary REG_RESOURCE_LIST
Binary REG_RESOURCE_REQUIREMENTS_LIST
Binary REG_FULL_RESOURCE_DESCRIPTOR
None REG_NONE
Link REG_LINK
QWORD REG_QWORD

 

Check out more information here.

The /d flag contains the value of the key.

Conclusion

Using both a self extracting installation wizard and a batch file for registry key settings makes for the perfect free to use professional looking installation script. You can always run the batch file silently by removing all pause statements in the script. 

Keep Num Lock On at Startup on Windows Computers

Thursday, March 29th, 2012

Windows XP, Vista, and Windows 7 :: Keep Num Lock On at Startup

Despite what Microsoft claims, I've seen some computers not revert back to their last set num lock setting when Windows was last shut down.  Granted, this could be caused by Enterprise configurations.Here's a simple batch file that should keep Num Lock always ON when a user logs in.  It may or may not need to be run with administrator privileges based on your enterprise configuration.  I've had several users complain about the fact that Num Lock is turned off when they turn on their computers in the morning.  As a result, this batch file allows you to enable the setting that keeps num lock enabled after a user logs in with minimal effort.  I'm still under the impression that this is more work than the user simply pressing the num lock key to turn it back on.

REGEDIT4
@ECHO OFF
CLS
REGEDIT.EXE /S "%~f0"
EXIT

[HKEY_CURRENT_USER\Control Panel\Keyboard\]
"InitialKeyboardIndicators"="2"