Tag Archives: .NET

Perry’s Music Streamer

Perry’s Music Streamer has evolved into what is now called Nest. Do check it out!

For lack of a better name, Perry’s Music Streamer is a web application that I’m currently developing which enables you to stream mp3’s from your home computer using any other computer or device with a modern web browser. Here you can find more information about this project. The project was started in June of 2010 and has been going strong since!

Continue reading

How to Create a TreeView File Browser Component in VB.NET – Part 2

This tutorial is part of a series: Part 1 | Part 2TreeView Part 2

In Part 1 of this tutorial series, I presented a way to use the .NET TreeView control as a file browser similar to Windows Explorer in functionality. As we navigate through this TreeView, the BeforeExpand event is handled so that each node is dynamically populated as soon as it gets expanded.

The second part of this tutorial focuses on displaying the native system icons for each file and folder in the TreeView.

Continue reading

Introducing Perry’s ID3 Tag Viewer

A few years ago I attempted to write an ID3 tag parser for MP3 files. The ID3v1 specification was easy to understand and implement, but the complex ID3v2 specification threw up some hurdles with SyncSafe integers, encoded bits, multiple sub-versions (ID3v2.2.0, ID3v2.3.0, ID3v2.4.0), and custom frame data. Needless to say, I couldn’t implement the specification properly and my parser would trip up on certain MP3 files, but I’ve recently revisited this project and fixed the showstopping bugs.

Continue reading

Perry’s ID3 Tag Viewer

Screenshot 1Perry’s ID3 Tag Viewer parses ID3v1 and ID3v2 tags stored in MP3 files. Not only does it extract common data such as the Artist, Album and Title, but it also extracts frames that contain data which MP3 players and tagging software simply do not care about, such as Private (PRIV) frames, User Defined Text Information (TXXX) frames, and other custom third-party frames that might contain hidden/encrypted data. Perry’s ID3 Tag Viewer utilizes a custom ID3 tag parsing library written from scratch, based on the official specifications at ID3.org.

Continue reading

How to Create a TreeView File Browser Component in VB.NET

Windows Explorer

Windows Explorer's familiar tree navigation.

This tutorial is part of a series: Part 1 | Part 2

As a developer I am often faced with the task of creating a tree-style file browser for navigating the file system similar to Windows Explorer. VB6 provides the DirList and FileList controls, but VB.NET does not provide a control with similar functionality, let alone a full fledged file browser control. It does however include a very nice TreeView control, and with a bit of code you can leverage this powerful control to navigate your file system similar to Windows Explorer.

The idea is pretty simple:

  • Each TreeNode in the TreeView represents a file or folder in the file system.
  • Each TreeNode knows the full path of the file or folder that it represents.
  • Recursion is not used; nodes are populated on demand. When a directory node is expanded by the user, a TreeView event is triggered which clears and repopulates the directory node.

In the first part of this tutorial I’ll show you how to create a simple re-usable File Browser Tree Component by letting the TreeView control do most of the work. In the second part of this tutorial, I’ll show you how to add several features (icons, context menus, drag/drop, etc.) that will spice up your TreeView File Browser Component and bring it more up to par with Windows Explorer.

Continue reading

The iosys Game Engine

The iosys Game Engine

Screenshot from a live test run of the iosys Game Engine.

The iosys Game Engine is a 3D video game engine and toolset programmed in VB that I developed while learning the DirectX SDK. I’ve moved on from DirectX for the time being, but I still consider this to be one of my greatest programming achievements ever. I started learning DirectX with a few decent books, some documentation on the web, and an invaluable tutorial series by Jack Hoxley titled DirectX4VB. My experience with DirectX and programming evolved quickly during this time and as a result, the engine went through several refactorings.

Continue reading

How to Use Windows Shell Icons in VB.NET

Folder Options

Folder Options

This tutorial explains how to code a simple, reusable Shell Icon Manager component in VB.NET. Windows maintains registered file types and associated icons as seen in the Folder Options dialog box, but there is no way to access them through managed (.NET) code, so we must use Win32 API functions to access them through the Windows shell.

This shell icon manager is useful if you need to:

  • Produce a list of file type / icon associations similar to the “Registered file types” in Windows XP.
  • Get a file’s real icon instead of using icons that look similar, so you can develop an interface that is more streamlined with the native Windows interface.
  • Create a file browser similar to Windows Explorer by tapping into the same icons that Windows Explorer uses. Pair this idea with my other article titled How to Create a TreeView File Browser Component in VB.NET and you’ll have a file browser that closely resembles Windows Explorer.

Continue reading