Scott Hanselman

Vote on this Whidbey Bug: How to create a Tray Icon (NotifyIcon) with WinForms 2.0

January 16, '05 Comments [9] Posted in Programming
Sponsored By

Whatisplaying1

While Tray Icons (and applications that use ONLY TrayIcons as their UI) are a major part of our lives, there's limited support in WinForms (2.0) for them without resorting to P/Invoke and vestigial MainForms who only call this.Hide().

NotifyIcon should be extended to support BalloonHelp. Hans Blomme's now-famous extended version of NotifyIcon is the canonical example. It still works under 2.0, but the 2.0 addition of the ContextMenuStrip makes it a little tricky. His free stuff could be integrated into the 2.0 NotifyIcon easily, adding a powerful (and missing) feature to 2.0 WinForms. Additionally, there should be a way for a Form to startup hidden to avoid the flash of the form before it calls this.Hide(), deferring to it's NotifyIcon.

Help us all out and vote to get this omission fixed in Whidbey.

UPDATE: Some Reflectoring has confirmed that has in fact been fixed in the December CTP! All is as it should be. Thanks to Chris Sells and Scott Swigart.

Now playing: Kanye West, Twista & Jamie Foxx - Slow Jamz

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

I'm digging Skype more and more, the I'm tired of all the different "Me" issues. Also, moving your Skype contacts.

January 13, '05 Comments [8] Posted in Diabetes | XML
Sponsored By

skype1.jpgI'm digging Skype more and more. I'm GlucoPilot (note the custom URL handlers). The new Skype 1.1, while it apparently has some installer issues (I haven't faced) is a great improvement over 1.0.

The best new addition is conference calling. It seems to only be as good as the worst connection in the conference. I spoke with Omar in California and Adam in Brazil (this week), and it seemed a little dodgy due to Adam's connection.

Skype is great but I have to problems. One is simple, the other is unforgivable.

1. It's yet another identity. As far as I'm concerned my email address is the closest thing to "who" I am online that I can get. I'd rather not have ANOTHER 'nick.' But, I can live with this.

2. The real issue is that I have three computers and (unless I'm nuts) Skype doesn't allow storing your Skype Contacts remotely and don't even have an export function.

This is nuts. But, I figured I could look in Applicationdata\skype, etc and manually merge XML files, right?

GASP. This is the first time in recent memory that I looked at a settings file for a NEW application (especially a 'viral marketing' one like Skype) and didn't find XML config underlying. Skype uses a binary format to store your contacts list locally. Frankly - SHOCKING.

However, someone pointed me to www.jyve.com which purports to offer another abstraction layer on top of Skype and manage contacts. We shall see.

For now, there's a lot of Me's out there.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

How to detect where and if the .NET Framework SDK is installed?

January 11, '05 Comments [0] Posted in Programming | Tools
Sponsored By

FrameworklocationJohn Wood put up a cool command-line Cyclomatic Complexity analyzer and inside he runs around looking for the location of ILDASM.exe so he can do his calculations on the underlying IL (so it's largely a text processing exercise). I complained to him that his tool failed to find the SDK on my machine (probably because I have 3 different CLRs instaled).

How do you find out where the .NET Framework SDK is installed? Aaron Stebner to the rescue. The values beneath HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\FRAMEWORKSDK tell you where the SDK is installed. If there's a 7.1 value, you know where the .NET 1.1 Framework SDK is installed. If there's an 8.0 value, you know where the .NET 2.0 Framework SDK is installed. The value on the other side of the version number is the location.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

On the record, I owe Richard Grimes lunch - Free .NET Fusion (Assembly Loading) Workshop

January 11, '05 Comments [0] Posted in Programming | Tools
Sponsored By

I owe Richard Grimes lunch. Heck, dinner even. He has posted a fantastic self-paced workshop that delves into the details of the .NET Assembly Loader (Fusion).

Location of .NET assemblies and how to change the default locations

  • Using .NET tools to resolve problems with assembly locations and how to fix broken applications
  • Sharing assemblies with the GAC, updating GAC dependencies with publisher policy files, GAC references
  • Dynamic loading of assemblies, partial named assemblies

I'm in awe of the effort that has been put into this. It's a better reference than MSDN when it comes to these details. It's all incredibly well organized, linear as appropriate, and easy to read. Assembly loading is a difficult issue, and I've never seen such a fine reference.

Thanks Richard!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.