Rick Strahl's Weblog  

Wind, waves, code and everything in between...
.NET • C# • Markdown • WPF • All Things Web
Contact   •   Articles   •   Products   •   Support   •   Advertise
Sponsored by:
Markdown Monster - The Markdown Editor for Windows

WebLog Posts in Category Windows

ASP.NET (324) .NET (175) Windows (76) JavaScript (72) jQuery (61) Visual Studio (54) IIS (48) Csharp (47) WPF (47) HTML (46) AJAX (45) ASP.NET (33) Localization (32) LINQ (30) WCF (28) MVC (26) Personal (25) Security (23) HTML5 (23) FoxPro (22) CSS (21) Angular (20) C# (19) Web Services (19) Web Api (16) COM (16) ADO.NET (15) Vista (11) XML (11) Sql Server (10) HTTP (10) IIS7 (10) Markdown (9) WebView (9) Microsoft AJAX (8) IIS7 (7) West Wind Ajax Toolkit (7) Web Connection (7) Entity Framework (6) Html Help Builder (5) Mobile (5) Markdown Monster (5) Live Writer (5) Internet Explorer (5) C++ (5) ASPNET5 (5) OWIN (5) Web (5) Software Development (5) SignalR (5) NuGet (5) WinForms (5) Westwind.Globalization (4) Silverlight (4) Source Control (4) Cordova (4) DataBinding (3) Conferences (3) ASP.NET Core (3) Help Builder (3) ISV (3) LetsEncrypt (3) Office (3) Opinion (3) Networking (3) Razor (3) Web Browser Control (3) WebLog (3) Web Development (2) Visual Studio Code (2) Tools (2) RegEx (2) RSS (2) Speaking (2) Linux (2) Bugs (2) Help (2) Installation (2) Dotnet (2) ASP.NET vNext (2) .NET Standard (2) Addins (2) Authentication (2) Deployment (2) Desktop (1) Credit Card Processing (1) Cross-Platform (1) CSharp Dotnet (1) Blazor (1) Blogging (1) Control Development (1) Chocolatey (1) .NET ASP.NET Windows (1) Security (1) Visual Studio (1) ADO.NET (1) ASP.NET Markdown (1) AI (1) Angular JavaScript (1) Dynamic Types (1) Email (1) FireFox (1) Flexbox (1) Git (1) Graphics (1) Hardware (1) JSON (1) IOS (1) Musings (1) Migration (1) Testing (1) Threading (1) SEO (1) rxJs (1) RazorPages (1) Travel (1) Typescript (1) VS Code (1) WebBrowser (1) WebDeploy (1) Web Deployment Projects (1) Web Design (1) Web Assembly (1) WebSockets (1) WebSurge (1) Windows-Terminal (1) Windsurfing (1) WFH (1) WPF Windows (1) WSL (1) wwHoverPanel (1)

Sharing Tab Missing in Windows 11 Folder Properties

For some unfathomable reason, Windows 11 has removed the Sharing Tab on the Explorer Properties Context menu by default. The Sharing Tab allows you to shared folders and drives for remote access. In this post I discuss how to get the Sharing Tab back and also touch on how to make sure your machine can actually accept remote connections so you can share your folders and drives.

Working around the WPF ImageSource Blues

The WPF Image control and its ImageSource property can be problematic if you are loading a lot of images in a list. Depending on where you load images from, and how, you can very easily get bogged down with slow, blocking load operations, and memory leaks when the controls are released. In this post I describe a couple of specific problems I ran into loading a sizable list of images from files and show a few ways how to avoid the potential pitfalls related to ImageSource peculiarities.

Embedding a minimal ASP.NET Web Server into a Desktop Application

Did you ever need to embed a Web Server into a non-Web application? In this post I describe how you can use host ASP.NET in a non-Web application and specifically in a WPF desktop app. What do you need, how is it different and some of the issues that you need to consider if you want to use ASP.NET in your non-Web applications.

Save Files With Elevated Permissions on UnauthorizedAccessException

If you have an application that generically allows you to edit and save files, you might on rare occasions need to save files in locations that where a regular user account does not have permissions to save. Rather than failing wouldn't it be nice to let the user know and optionally allow saving with elevated permissions? In this post I describe the workflow and implementation on how to do just that.

Caching your WebView Environment to manage multiple WebView2 Controls

I've been struggling with rare WebView initialization errors in one of my applications, that have been difficult to debug and track down. After a lot of trial and error I discovered that the problem is related to WebView Environment instantiations that might be stepping on each other. In this post I describe the problem and a solution that involves creating a single WebView Environment and reusing it for all WebView initialization.

Getting the .NET Desktop Runtime Installed with a Custom Runtime Checker and Installer

I've recently moved my Markdown Monster Desktop Application to .NET 7.0 and I had to make a decision on how to get the Runtime installed or packaged with my application. In this post I review the different deployment modes, the plus's and cons and the solution I ended up with which was to build a custom install wrapper that can check and install the runtime if not already present from an Installer or interactively.,

Basic Windows Machine Hardware information from WMI for Exception Logging from .NET

When writing out error information for a desktop application to a log whether local or to a telmetry engine, it's useful to get some idea of what hardware the app is running on. WPF applications in particular can have odd behaviors that are related to hardware acceleration, running inside of a VM or particular video drivers. In this short post I show how you can get very basic machine and GPU information that provides information on these basic system stats that can prove useful to trackdown rare hardware related issues.

Windows Audio Encoding Failure after Settings Change

Ran into a problem with Windows Audio not playing for MP3, WAV and other music files as well as some applications like Spotify. Any audio playback ended up resulting in an error related to an invalid encoder. Turns out the problem was an unexpected settings change. Here's the scoop.

SetResolution: Setting Windows Display Resolution from the Terminal

I recently switched to a single 4k monitor and had a need to quickly switch resolutions to avoid the UI hostile Windows Display Resolution widget in Settings. I ended up creating a small command line utility called SetResolution that lets you quickly and easily set a new Resolution, create profiles of resolutions to switch to.

Integrating Long Path Names in Windows Applications

Long Path Names in Windows are a pain in the butt, but Windows 10 recently starting adding better support for Long Paths in Version 1607+ which for now has to be enabled explicitly. It also requires an application configuration switch in the manifest file. As nice as that support is, it doesn't solve all problems especially when integrating with other components or external applications that don't support long paths. In this post I describe what works, what doesn't and a few hacks to make most things work.

WebView and Modal Dialogs in WPF Async Code

Another day another problem with the WebView control - this time dealing with certain Windows dialogs crashing the WebView control and making it unresponsive so that the control has to be reloaded or - more commonly the application has to be restarted.

WebView2: Forwarding Alt Keys to a Host WPF Window

I've been puzzling over how to reliably integrate keyboard forwarding from the WebView2 control into WPF host forms. Unlike the IE WebBrowser control the WebView2 doesn't automatically forward Alt keys to the host form so special handling is required. In this post I describe why this is a problem and show the workaround to make this work.

Opening an Admin Windows Terminal from Visual Studio

Opening Windows Terminal from another application is a bit of a pain. In particular I wanted to open Windows Terminal as an External Tool from Visual Studio and found it wasn't as easy as referencing the `wt.exe` executable. Opening as an Administrator adds additional complexity. In this post I'll talk about the use case of an External Tools and the settings to launch both a regular and admin Windows Terminal instance from External Tools.

Chromium WebView2 Control and .NET to JavaScript Interop - Part 2

In part 2 of this post series I take a look at how to use the new Chromium WebView2 to interact with the DOM document and interoperate between .NET and JavaScript, both calling into JavaScript from .NET, and calling into .NET from Javascript

Taking the new Chromium WebView2 Control for a Spin in .NET - Part 1

This is Part 1 of a two part article that gives an overview of the new WebView2 Web browser control that is based on Edge Chromium. In Part 1 I look at the basics of what's needed to run the control using the WebView runtime, and how to get the control embedded and configured to use for basic HTML tasks. In Part 2 I look at interaction between the .NET application and WebBrowser and Javascript.

Window Activation Headaches in WPF

Ran into a problem with properly activating a WPF when launching from Explorer and indirectly trying to activate an already running instance 'from within itself'. It seems simple, but windows focus-stealing restrictions can cause problems with actually getting focus into an application window. Here's how.

Mirror your iOS Device Screen on Windows with the free 5KPlayer

Apple doesn't exactly make it easy to use iOS devices on Windows and one complication is how you can cast your iOS device to a Windows screen. This is useful for presentations or screen captures that I often do and in the past i've gone through a number of shady tools that have come and gone. Recently ran into 5KPlayer which is a nice video player that as a bonus acts as an AirPlay server and makes short work of casting iOS content to Windows

Using WSL to Launch Several Bash Commands from an Application

Struggled today with launching WSL from a Windows application to automate an external build process. Turns out this was a lot harder than it should have been due to some quirks on how the `wsl.exe` and `bash.exe` are registered by the Windows Sub System for Linux.

Missing Sharing Tab in Windows Explorer and Sharing with PowerShell

On several of my machines I've found that the 'Sharing Tab' in Explore had gone missing and I've been unable to create a share through the Windows UI. Apparently some update or software installed mucked with my settings that created an explicit exclusion to disable this Shell Addin. In this post I describe how to fix this problem and then offer several solutions: Fixing the UI problem and maybe more usefully show how you can use Powershell to share a folder or drive instead of the Windows UI.

Troubleshooting Windows Sleep Insomnia

Windows long has had problems making machines stay in Sleep mode. In this post I describe some of the problems and likely solution by using `powercfg.exe` to hunt down and disable devices that can wake the computer from sleep.

Deleting Problem Folders and Files on Windows: Could not find this Item Error

Ever have a problem not being able to delete a file or folder because the filename is invalid? You see it in Explorer, but you can't delete or move the file? Well I just ran into this issue and after some digging figured out that you use extended path syntax `\\?\` to get around some interesting naming and sizing issue with Windows path operations.

Windows Authentication and Account Caching on Web Browser Auto-Logins

If you're working with Windows authentication to access Windows or Active Directory groups be aware that there's a gotcha with newly added groups when users are automatically logged into the Web browser.

Open Internet Settings Dialog directly on Windows

Windows is making it harder to find classic Control Panel windows and the Internet Settings dialog is no exception. The Networking options no longer have a link to it, so you have remember where to look for it. Here's a quick way to get to it.

Programmatically Opening Windows Terminal in a Specific Folder

The new Windows Terminal provides many cool new features and much improved Terminal performance which makes it very desirable to use even in its current preview state. However, unfortunately the Terminal currently lacks a command line interface to control startup, do if you want to externally launch a shell some workarounds are required to get it to start out of a specific folder.

First Steps in porting Markdown Monster WPF App to .NET Core 3.0

I spent a good part of the day today getting Markdown Monster to run on .NET Core 3.0 and in this post I packaged up my notes into a lengthy post with how went through this process. It wasn't exactly quick to make this happen but MM has a few peculiarities that made this process a little bit more trying than it could have been. I'll summarize some thoughts at the end on both the process and the relevance of this process.

Updating Windows Applications and Installers for non-Admin Installation

I recently updated Markdown Monster to run as a non-admin installation even when running the full installer. There have been many requests for this functionality and in this post I describe several of the updates required in order to make this work.

JavaScript Debugging in a Web Browser Control with Visual Studio

Debugging a Web Browser Control embedded in a Windows application can be a bear because there's no obvious way to debug the the JavaScript code or HTML DOM/CSS inside of the application. Although the Web Browser uses the Internet Explorer Engine for HTML rendering and JavaScript execution and provides most of the engine features, the Debugger and F12 are not part of that. As it turns out you can use Visual Studio to hook up a script debugger and provide a rich debugging experience with the full IE debugger, Console and even a DOM/CSS Explorer. In this post I show how.

Automating IIS Feature Installation with Powershell

IIS often gets a bad wrap for being diffcult to install and configure. However, using some of the built-in tooling for administration using PowerShell it's actually quite easy to configure IIS and even set up a new site and application pool with a few short scripts that are much quicker, and more repeatable than using the various Windows UI features. Here's how.

Virus Scanning Madness for Software Distribution

I've been having having lots of problems recently with VirusTotal, which is used by Chocolatey to scan for malware in Chocolatey distribution packages. VirusTotal is a Web based service that aggregates around 60 virus scanners against an installation binary. The problems is that I frequently see random malware hits by various obscure scanners. In this post I describe the problem and the farce that this has become as some of the malware hits are obviously false positives that actually reverse in a rescan.

Dragging and Dropping Images and Files into the Web Browser Control

Dragging content into the Web Browser control and capturing the content dropped can be tricky. The Web Browser Control is based on Internet Explorer and is actually an ActiveX control hosted inside of a container and because of that is difficult to deal with. In this post I describe how you can get around this issue and still capture images and files dropped on the control and handle the drop operations.

Video Rendering Issues for WPF Windows

Recently I ran into a few reports of black screen of death rendering of Markdown Monster when starting up from a very few users of the application. They reported the screen just shows black, while actually being responsive to moving and showing menus etc. Also moving to another screen often fixes the problem. It turns out this is a hardware related issue with WPF with certain video hardware/monitor combinations. In this post I describe the problem and the workaround to get the application to render properly even on compromised hardware.

Creating a portable and embedded Chocolatey Package

Chocolatey is an awesome tool to install software. As a publisher you have a lot of choices of how to create packages and in this post I describe the two packages that I use with Markdown Monster, which is a full downloaded installer package and a fully self contained embedded portable package. Here I cover the basics of Chocolatey package creation and some of the steps required to create a portable package from a full installation and some of the challenges you might run into along the way.

Faking out the .NET Runtime Version

I've been struggling with DPI Scaling issues in WPF in Markdown Monster and .NET 4.6.2 has a few fixes that address the problems I've been working on. However, requiring 4.6.2 is a problem due to lowish adoption rates and skittishness about installing new versions of .NET. In this post I show a little hack that allows me to compile my app to .NET 4.6.2 but don't require user to have that version installed so those that have it can take advantage of the updates.

Introducing Markdown Monster - a new Markdown Editor

I'm happy to announce Version 1.0 of Markdown Monster a Markdown Editor and Weblog Publishing tool for Windows. In this post I give a quick tour of Markdown Monster and provide links to all you need to know to check out this great new Markdown editor.

Windows Update Hell

I've been fighting Windows Update Hell for the last month with failed updates wreaking havoc on my machine. Updates fail to install completely and roll back and then continue to retry each day. Attempts to turn off the particular update now fails as well, so I'm stuck in this groundhog day like loop of pain. This is a cry for help, in hopes somebody has additional ideas on what to try.

Automating Installation Builds and Chocolatey Packaging

Having a quick and easy way to build a final deployable applicationsin a few minutes has been a huge motivation for me. I can update code and release a new build as soon as a feature is added or a bug is fixed, and my release cycle is much more frequent than it was before. I used to be much more conservative with releases - if something was broken it'd have to wait. But with an easy release mechanism all of that has changed and I can push new releases out much more frequently and I really like the fact that it works this way. In this post I describe my deployment processing for Markdown Monster for creating an installer, publishing it on my Web site and creating and publishing a Chocolatey package.

Dealing with Anti-Virus False Positives

I've been struggling with false positive Anti-Virus warnings for Markdown Monster. In this post I describe what problems I was running into and how eventually managed to get a clean distribution of Markdown Monster out the door.

Windows Updates and Lost Software Licenses and Activations

Windows Updates often hose Software Activations and Licenses for various commercial software packages. It's a pain in the ass and it's time to let those vendors that use the outdated practice of counting activations based on Windows OS criteria is no longer viable.

Creating Single Instance WPF Applications that open multiple Files

If you're building document centric applications, Singleton style EXE applications are pretty common. Rather than creating new windows for each opened file, a more common scenario is to open new tabs in a single instance. In this post I'll describe how to create a WPF application that allows only a single instance to run and passes command line arguments passed in secondary instances to the primary instance and I'll describe some pitfalls that you might have to watch out for.

Windows 10 Bash Shell Network Connectivity not working?

When trying out the Windows 10 Bash on Ubuntu shell, I ran into several problems with networking. Turns out that there are issues with IPv6 and by swapping or removing the IPv6 nameserver entries with IPv4 versions connectivity can be restored back.

Path Environment Editing Improvements in Windows 10

Windows 10 Update 1 has apparently added a nice improvement to editing environment variables and more importantly added a real list based editor for the plethora of global and private paths that seem to sneak into developer machines and their system PATH configurations.

Windows 10 RTM Upgrade and Driver Update Issues

My Windows 10 update from the Insider Previews to RTM did not go smooth. I had a driver issue that apparently was not allowing me to upgrade and Windows 10 doesn't allow for hiding updates. Here's what went wrong and how I fixed it.

Multiple Desktops in Windows

Windows 10 natively supports multiple desktops which provides great opportunity for reducing clutter while working and getting stuff done. In this post I show how the new Windows 10 multi-desktop features work and also show how you can use multiple desktops in previous versions of Windows.

Windows 10 Upgrade and IIS 503 Errors

After upgrading my machine to Windows 10 today I found that IIS, while working was throwing 503 Service Unavailable errors on every page. Turns out the issue is the Rewrite Module wasn't updated in the upgrade and that's causing a hard crash of the IIS module. Here's how to fix this issue.

Adding Files to the Windows MRU/Recent Document List

In this post I talk about adding shortcut files to the Windows Most Recently Used (MRU) list that is also used for task bar icon Jump Lists. There are easy APIs that let you add associated files to your application's MRU. With a little extra work you can also read this list inside of your own applications so you can build your application specific MRU lists and let Windows manage the storage of the linked references rather than your own configuration. Here's how.

Updated DeleteFiles Utility now on Chocolatey

I've updated my DeleteFiles utility that can be used to recursively delete files and folders. I've recently updated the utility with a few new features including support for long paths (greater than MAX_PATH) that can choke out Explorer and other Windows shells. There are also additional options for previewing and recycle bin support as well quiet command line mode and a few improvements in the timeout filter for file selection. Last but not least, you can now install DeleteFiles directly from Chocolatey so it's easy to load DeleteFiles and get it onto your system and system path in seconds.

Capturing Performance Counter Data for a Process by Process Id

Process specific Performance Counters in .NET work directly only with Process Names, not Process Ids which can be problematic if you need to monitor performance of multiple instances of the same process. In this post I describe how you can capture multiple processes uniquely and monitor each individually.

Dell XPS 15 review

I recently picked up new Dell XPS 15 to replace an older XPS machine. Lots of things to like about this machine - here's a quick review of what I liked and didn't.

Modern/Metro Internet Explorer: What were they thinking???

The 'Modern' version of Internet Explorer in Windows 8/8.1 is a full screen version Internet Explorer with a custom shell around it. This version of IE has a couple of pretty annoying quirks that affect Web pages significantly.

Disable User Account Control On Windows 8

User Account Control can be a real pain and in Windows 8 there's no easy way to turn it off. However, using Group Policy you can still completely disable it if you decide to do so. Here's how.

HTML5 and CSS3 Editing in Windows Live Writer

Windows Live Write is an excellent tool for editing, managing and publishing blog posts effectively. It includes a nice WYSIWYG editor for editing posts which can work off your blog's CSS styling. Unfortunately Live Writer does not use CSS3 or HTML5 as it's stuck using the IE 7 engine for rendering its live preview and editing mode. Here's a workaround to get Live Writer to render your blog theme using HTML5 and CSS3.

Fixing a SkyDrive Sync Disaster

Recently I ran into a major sync problem with SkyDrive, where SkyDrive decided to update my synced folders with older data from the server, overwriting newer local files. After mangling thousands of files I ended up creating a small utility that lets me look and update these files in bulk. This post discusses the issues and provides a utility to facilitate fixing the problem.

UNC Drive Mapping Failures: Network name cannot be found

Ran into a nasty issue yesterday trying to map a remote drive via UNC pathing. Basically I was unable to connect with failures occurring instantly and without prompting for credentials even when asking to use different credentials. Turns out the problem is the Network Provider Order - here's more info.

Process.Start() and ShellExecute() fails with URLs on Windows 8

It appears that on Windows 8 there's a bug in the ShellExecute() API that causes failure in URL navigation when running under Administrative privileges.

A Small Utility to Delete Files recursively by Date

After again searching for a script or tool that can easily delete files recursively down a folder hierarchy with a date filter and coming up with several 'almost there' solutions I sat down and created a small Console app that handles this task. I've posted the resulting project on Github, with both the binary and source code, in case you ever find yourself with the same need.

Windows 8 Live Accounts and the actual Windows Account

When you log on with a Windows Live account in Windows 8, what really happens to your credentials? It's not quite obvious, so here are a few thoughts and examples that demonstrate the relationship between Windows and Live accounts.

A tiny Utility to recycle an IIS Application Pool

Here's a small console app to recycle an Application Pool which seems to be something I've needed to do repeatedly in the past.

.NET 3.5 Installation Problems in Windows 8

I ran into a major headache with getting .NET 3.5 properly on my Windows 8 install - although installed SP1 was missing and wouldn't properly install. Here's what happened, how to check for the version actually installed and how to work around it.

Make your CHM Help Files show HTML5 and CSS3 content

Want to get your CHM files to display content in HTML5 and CSS rather than the stock IE7 quirks more rendering used by default? This blog post describes how you can take advantage of newer HTML and CSS specs in your CHM files.

Opening the Internet Settings Dialog and using Windows Default Network Settings via Code

Most applications that need to use HTTP to go online require some sort of HTTP configuration options to allow for custom network configurations. An easy way to do this is to rely on the default connection settings that Windows provides. Here's how to use the Windows network settings and how to bring them up visually for editing programmatically.

Web Browser Control & Specifying the IE Version

The Microsoft Web Browser control's default rendering mode is not standards compliant - it's stuck in IE 7 quirks mode even on systems that run a later version of IE such as IE 11. This produces terrible results if you're attempting to use HTML 5 or or CSS 3 markup in your HTML to display. However, the Web Browser control does support using specific versions of Internet Explorer via some registry values that can be set for a specific application. This post shows how to configure your application to work with a specific version of Internet Explorer's rendering engine.

WinInet Apps failing when Internet Explorer is set to Offline Mode

Ran into a problem with applications using WinInet not being able to connect to the Internet when IE is stuck in Offline Mode. Here's the problem and a code workaround that works at least with the latest version of IE.

ASP.NET Routing not working on IIS 7.0

Got caught be a difference in behavior between IIS 7.0 and IIS 7.5 with how module management to extensionless URLs are fired in IIS. Routing was working fine on my dev machine, but not on my live server. Here's what you need to watch out for.

Loading Assemblies off Network Drives

Remote loading of assemblies and CAS policy in .NET have always been hassle and although .NET 4.0 improves security, lightning up rules to be on par with Win32 applications, for COM Interop and custom runtime hosting old rules still apply. Luckily there's some help in the form of a new configuration switch that allows overriding remote loading of assemblies.

IIS not starting: The process cannot access the file because it is being used by another process

Ran into a nasty problem today with IIS not starting up and the culprit turned out to be: Skype. Here's what the deal is.

No Preview Images in File Open Dialogs on Windows 7

I ran into a problem with a File Open dialog in Silverlight (but this applies to any Windows File Open Dialogs) where I could not get image previews to work. It turns out this setting is controlled by Explorer Customization settings which is a pain to figure out while tracking down the issue.

Windows 7 and a Quick Launch Toolbar

I installed Windows 7 this week after my Vista installation finally started going really whacky while I was in Europe. All things considered Vista has been good – the previous install lasted nearly 2 1/2 years without a repave which is more than any OS I’ve had ever had installed before. The Windows 7 install went fairly smooth for me – no install problems although I screwed myself royally doing...

Editing Applicationhost.config on 64 bit Win2008

Today I needed to edit ApplicationHost.config only to - well, not find the damn file anywhere on my machine. It turns out 64 bit Windows uses redirection in the System32 folder and while running with a 32 bit Explorer replacement and a 32 bit editor I was unable to find the file until I switch to the stock tools in Windows which are 64 bit.

Moving my Site onto a 64 Bit Server

I'm finally getting ready to install my new Server and after some back and forth and testing on Windows 2008 I decided to go ahead and bite the bullet and go with the 64 bit version of Server. I've had mixed feelings about installing 64 bit given that I have had exactly zero experience running under 64 bit. I've not really seen a compelling reason on the desktop to run a 64 bit OS especially...

Getting rid of the useless Windows Shutdown Tracker Dialog

If you install and run or manage a Windows Server OS you've probably run into the annoying shut down dialog. Maybe you have even been hit by walking away after restarting and forgetting about the damn dialog hanging the system before rebooting/restarting. Well, just did that on an install thank you very much. It's not a secret how to get around this and it's easy to fix, but buried deep enough that it's easy to not find it immediately and so not fix it. Here's how.

Sensible Debugging in IE 8

One thing that caught my attention in the IE 8 notes and that eventually made me download and install it is that it will feature the Developer Toolbar which has been an add-in for previous IE versions as a built in tool. Not only that but IE 8 includes a very FireBug-like debugger that can be easily hooked up to page content. This is a very worthwhile improvement IMHO because the debugging...

IE 8 to support Standards Mode out of the Box - Yay!

Microsoft announced today on the IE Blog that IE 8 will run in high standards mode by default, which is a complete about face from the previous position that was going to require special meta-tag headers to force the browser to run this way. This is an unexpected, but very welcome turn of events and brings some hope that we'll in our lifetime will have a version of IE that is compliant with the remainder of the browser world.

The long Path to getting an proper cased Path & Filename with Win32

I'm working through a couple of small bugs in Help Builder today and one issue that's come up is that in some (but not all cases) file selections when inserting images and doing screen captures turn out in inaccurate casing. Images are embedded into the document typically as relative images and the...

Registration Ids: The simpler the better?

Having gone through easily 50 registration screens in the last few days, reinstalling applications on my new box got me to once again thinking about registration codes in applications. Somebody last week asked me as I provided them with a software key with Help Builder - what's this - this isn't a...

File Locations on Windows Machines = Absolute Madness

I configured and updated a brand new machine last week and overall the process has been pretty smooth and painless. But once again I'm reminded how silly Windows' scattering of files all over the place really is. I installed the new box on Monday. It's now Saturday night and I'm still picking up a...

Programmatic Printer Driver Installation re-visited for Vista

A long while back I posted an entry regarding how to install a printer driver programmatically by shelling out and using rundll32.exe to execute the PrintUi.dll which can handle a variety of print tasks including installing a printer driver. This code's been working fine, but it's been giving...
West Wind  © Rick Strahl, West Wind Technologies, 2005 - 2024