Rick Strahl's Web Log

Wind, waves, code and everything in between...
ASP.NET • C# • HTML5 • JavaScript • AngularJs
Contact   •   Articles   •   Products   •   Support   •   Search

WebLog Posts in Category Windows

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.

Application that won’t Pin to Taskbar in Windows 7

I've run into a dead end with an application of mine that won't pin to the Windows 7 taskbar. I've tried a number of different settings but I just cannot get the app to show the Pin to taskbar (or any othe of the taskbar context options) to work.

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.

.NET 3.5 Framework Distribution Size

One of the considerations of whether to choose .NET 3.5 for your non-server applications might be distribution size. If you're building a vertical application that you're distributing over the Internet you are probably concerned about the size of your installation if you want people to download it. Recent versions of the .NET runtime have a made decidedly nasty turn for the worse when it comes to...

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...