private static string GetNiceInputName(string input, Device device)
        {
            switch (device.DeviceInformation.DeviceType) {
                case DeviceType.Keyboard:
                    return input;

                case DeviceType.Mouse:
                    return "Mouse " + (Int32.Parse(input) + 1);

                default:
                    string[] parts = input.Split(';');

                    string r = device.Properties.ProductName + " " +
                        device.GetObjectInformation(Int32.Parse(parts[0]), ParameterHow.ByOffset).Name;
                    if (parts.Length == 2) {
                        r += parts[1];
                    }

                    return r;
            }
        }