Archive for the ‘VB’ Category

h1

VB.Net – Hide Form at Startup

28/08/2009

I’ve been using Microsoft Visual Basic 2008 (Express Edition) recently to create some utilities.  As part of this I needed to have an application start-up but only display as an icon in the system tray.  After attaching a notify icon control to my main form I set the form’s load method to set the display in task bar and visible properties of the form to be false.

Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
notifyiconMain.Visible = True
Me.WindowState = FormWindowState.Minimized
Me.Visible = False
End Sub

However this code doesn’t have quite the effect you think it should – i.e. hiding the form and displaying the icon in the system tray.  What in fact happens (at least on Windows XP) is the window is squished up next to the start menu (the icon in the system tray is also there – as we would want).

That window shouldn't be visible

That window shouldn't be visible

These few lines of code work fine once the form is created and displayed, so the issue is definitely linked to the initial creation of the form.

After trying several options (such as minimise, restore, minimise) I succumbed to Googling for an answer and whilst I found lots of answers they were all complicated, a little laborious or just bad coding practice.  However I did find a different and surprisingly simple solution.

Rather than setting the window as minimised in the load method just set the WindowState property of the form to “Minimized“.  The load method then simply becomes…

Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
notifyiconMain.Visible = True
Me.Visible = False
End Sub
h1

Send Web Cam Pictures to EverNote with SnapIT

23/08/2009

Since Google Notebook went out of development earlier this year I’ve made the migration over to EverNote. It has many cool features one of the coolest being the ability to upload images and have EverNote run OCR to index the content of the image.  The mobile phone EverNote applications allow a phone’s camera to be used to take a snapshot image and to upload it to EverNote over a 3G connection.  Unfortunately the Windows desktop application has no functionality for capturing images in the same way through a web camera and with the proliferation of netbooks I feel that this is a feature that is sadly missing – well for me anyway.   So after a bit of research I embarked on a quick weekend VB.Net project to put together a little application that could do this – and so I created SnapIT.

SnapIT Main Screen

SnapIT Main Screen

SnapIT allows you to take a photo with an attached or built in camera (by pressing the “Capture Image” button) and save it (by pressing the “Store Image” button) to a specified folder as a JPEG with a file name based on the time at which it was taken.  It also allows you to send the image off to an EverNote database with options to specify which notebook it gets sent to (it will of course default to the default notebook), a title and tags (separated by commas).  Where the image ends up is determined by the checkbox options that have been selected (next to the “Store Image” button).

Settings window

Settings window

It’s a standalone executable and stores a few settings in an INI file it creates in the same folder.  When you first use it (assuming you want to save images or send them to EverNote) you will need to set a few file/folder paths.  This can be done from File > Settings.  You need to set a folder to store images in, the location of ENScript.exe (used to send the image to the database) and the location of the EverNote database file to which images should be sent.

This is just something I threw together for my own use and given that I wrote it in just a day or so it really hasn’t gone through much testing, so please keep that in mind when using it.  That being said if you find a bug then add a comment to this blog post and if I can reproduce it I may just find the time to fix it and post a new version.

h1

Command Line Utility to Create Test Files

31/07/2009
Using the utility on the command line

Using the utility on the command line

In the past I’ve used FSUTIL to create large test files of data to process.  Unfortunately you need administrator permissions to use this utility.  I decided to write a command line utility (called “Make Test File” but abbreviated to MTF.EXE) to allow non-administrators to do the same.  It’s written in VB.NET so it isn’t as quick as FSUTIL, but as they say “it does the job”, and it fulfilled my immediate needs.

It takes two parameters – the size of the file (in bytes) and the file path to write the file to.  To see an example of how to use it and the output click on the thumbnail image on the right.  The resulting file just contains zeros.

If there’s any demand I may look into additional features such as being able to specify what the file is filled with or creation of multiple files using some sort of incremental naming convention.