Building a Windows System Tray Application

One of the main issues I face with managing our companies internal applications is the fact that users never seem to send decent screenshot or details of a specific error. We receive numerous support tickets that include “[system] is not working”, with no more information at all.
This is a nightmare for my team to try and investigate, considering our users are spread over multiple timezones. The first thing we do is try and contact the user in question and ask for more information such as screenshot, browser version and more detailed error message.
Now wouldn’t it be nice if the user was “trained” to hit a specific keyboard short cut that would invoke an input screen to gather all this information? Well I am going to try and investigate how easy this is do over a few upcoming articles.

Some things the application must do:

  1. Run silently in the system tray of the users machine
  2. Be a clickonce applications for smooth updating
  3. Ability to run without network access and queue up requests
  4. Pull local log files, browser version etc from the users machine
  5. Take a screen shot, or full desktop shot of the users machine
  6. Submit this information to a workflow system

Some additional ideas are:

  1. The workflow could know which application the user is having trouble with and gather the log files automatically for that system to combine with the ticket
  2. Submit the ticket to either our IT helpdesk or TFS environment for further investigation.
  3. We could push notifications to the user through the system tray icon to warn them of critical issues or ticket resolutions

Some links I have started to gather for references for this application are listed below:

A New Milestone Has Been Reached

So it seems I have managed to keep this blog running for over 3 years now. This in my book deserves a celebration as prior to this one I had many false starts. So I don’t update this often but it is certainly update much more than any previous blogs I tried to stand up.

I have also been making a clear effort to record interesting things I find useful in my day-to-day life and hopefully overtime I will see how my articles and content change.

As always, thanks for stopping by.

SkyDrive on Windows 8 with Office 2013: Turning a useful tool into a useless one

I’ve been a user of Dropbox for some time now and really like its simplicity, plus the way you can easily shared folders amongst other users. The only limiting factor was the free space they provided you which wasn’t too much trouble as if you were clever you can increase this through their Beta program or invite your “friends”.

When Microsoft released SkyDrive I wasn’t phased and it would have taken a lot for me to review my Dropbox loyalty however this was certainly tested when Microsoft offered long time Live account holders to upgrade to 25Gb of free space, so I took the plunge.

I’ve been using Dropbox and SkyDrive in parallel now with some mixed results, more so now that I am using Windows 8, but I will leave my main frustration for a little later.

In all SkyDrive worked well on Windows 7 as it was a single install which ran in your system tray synchronising files in the background. SkyDrive on Windows 8 is another matter entirely.

In fairness my problems may not just be related to SkyDrive on Windows 8, as I have decided to also upgrade to Office 2013, however putting my other issues aside I am trying to focus on the Windows Application, the basic SkyDrive application.

It seems that nearly every single time I load up a document that is in my SkyDrive folder to either review or print without making changes you would think I should just be able to close the file and all in well in the world, however I get the nagging flag on the SkyDrive systray icon and SkyDrive moaning that the file I just accesses requires my attention.


Upon loading up the error list I am greeted with SkyDrive saying I need to open the file for more information.


So I open the file and it appears the file is now flagged as “Offline”, this seems to be due to me opening the file, not editing anything and closing it again. skydrive-offlinecopy.

So to resolve this issue I am forced to “Save” my unedited file so that SkyDrive can push the “changes” to SkyDrive.


Why can’t the SkyDrive application work in the background to upload and synchronise files and folders, more specifically why am I now forced to “Save” changes to a file I have clearly not edited just so I can get rid of this stupid message.

My patiences is wearing thin with SkyDrive and I will most likely take a subscription out with Dropbox as this appears to just work, and they have a very nice shared folder features which is hugely useful for me between clients and friends.

Dropbox 2 : 0 SkyDrive

Woocommerce Gift Certificates

I’ve posted in the past about looking to create my own version of Gift Certificates for the WordPress WooCommerce plugin, the reason for this was because there was no current plugin that provided this functionality.

During the past few months however there have been two versions come out and with this I have decided to stop my own development, for the cost of $45 you can get the plugin, which in my eyes is certainly worth me not doing the work myself

If you want to find out more check out WooCommerce Gift Certificates Pro over at IgniteWoo.

Hope you find this useful.

Windows 8 and RDP with Windows Server 2012

So today I found a nice “feature” of the new Metro Windows 8 interface. Now that the start button can be exposed by moving your mouse to the bottom left of the screen this does not work well when you have RDP in full screen mode.

I have just connected to Windows Server 2012 using my Windows Surface RT Tablet in full screen and wanted to load up the start menu of the RDP session, moving my mouse to the bottom left corner of the screen will infact bring up the start button on the Windows Surface RT OS and not the RDP session.

A workaround for this is to use the start button on the key board, but the fact remains this adds additional confusion. At least the start buttons are somewhat colour coded to help you distinguish which version they relate to!

K2 4.6.4 Released

K2 blackpearl 4.6.4 has just been released which includes the following new features and enhancements:

  • SharePoint Copy and Move
    When moving, copying or updating a document or list item in SharePoint it is now possible to preserve the existing SharePoint document or List Item’s MetaData and version history when using the SharePoint Document Wizard or the SharePoint List Item Wizard. To make use of this new functionality on existing workflows, update the  design templates, open the wizard and make the necessary configuration and redeploy the process.
  • IPC UI and threading
    The IPC Event has been improved by simplifying the mapping of Process  data and XML fields between the child and parent process using a new  grid control.  Asynchronous  IPCs will now follow the same steps as a Synchronous IPC except it will stay Asynchronous. This will prevent duplicate child instances and IPCs will no longer get stuck.

For full details visit the K2 blackpearl website.

K2 Task List – iOS App

So our company have finally pushed out a policy to allow our iOS devices to connect to our corporate wifi, apart from the obvious benefits in intranet web access I am very excited about coupling K2 smartforms and the K2 mobile task list to allow users to approve items on the go, this will become even more exciting when the infrastructure guys enable 3G connectivity.

In the next few days/weeks I will try and post a few tips and tricks to mobile enable a few K2 smartforms.

K2 SmartObjects and Attachments

The K2 ServiceObject for SQL does not support some field types, one of them being varbinay, so to upload attachments you need to use nvarchar(MAX) as your database column type for the K2 ServiceObject to become aware of it.

The reason for this is because K2 serialises attachments as XML strings and there for required the field nvarchar(MAX).

The following fields are not supported by the SQL Service Objects

– TimeStamp
– Image
– SQL_Variant
– Binary
– VarBinary
– Numeric

Another way to easily store documents is to use a SharePoint document library.

I know IT