Hello, I'm having a problem in a Dell Axim X51V with WM5.0.
HardwareButton component in VS2005 (Compact. Net Framework) only manages first 20 keypressing.
Any application written in VS2005 wich includes hardwarecomponent, has this problem.
After 20 key pressing on any hardwarebutton (hardwarekey 1-6), all new press on this keys are ignored.
Can anyone helpme please
Thanks in advance

HardwareButton problem
Rubal Jain
No, I haven't talked to Dell about it. They haven't been very interested in previous problems.
I haven't seen it on any other device but the Dell.
Shanmuk
Hi Paco. I wrote a small application that uses the HardwareButton component and ran it on a DELL x51v (same one you have). I was able to press the arrow buttons a lot, more than the 20 you mention without a problem.
I'm including the code I wrote, can you try it out and possibly modify it so it reproduces the problem you're seeing, then repost your findings
mike
GoranB
Thanks for youre reply.. I think as you, is not possible.. Thanks a lot Dell !!! :-/
So i use the 'enter' button.. (it's for switch off the screen).
thanks again..
kevin_estcst
Hello derek... what update have you installed
I have installed 2 updates but it's dont work :
R142389
System and Configuration Utilities - Driver Dell Axim X51v QVGA System Update for Windows Mobile Version 5.0
Optional 12/4/2006 309 KB
R148392
System and Configuration Utilities - Utility Dell Axim X51v QVGA System Update for Windows Mobile Version 5.0
Optional 2/12/2007 142 KB
Thanks..
George Cai
-Derek
aaronexodus
Thank you for your fast answer but, code you submit don't solve my problem.
This code, in my PPC work ok for direction keys and "Enter" key, but not for hardwarekeys.
Can you try please next code from Microsoft example
using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using Microsoft.WindowsCE.Forms;
namespace HardwareButtonTest
{
public class Form1 : System.Windows.Forms.Form
{
private StatusBar statusBar1;
private HardwareButton hwb1, hwb4;
public Form1()
{
InitializeComponent();
// Display OK button to close the application.
this.ControlBox = true;
this.MinimizeBox = false;
// Create event-handler delegate for the KeyUp
// event for this form. This form is associated
// with each of the hardware buttons, and the
// event occurs when a hardware button is pressed.
// Note that you could also use the KeyDown event
// instead of the KeyUp event.
this.KeyPreview = true;
this.KeyDown += new KeyEventHandler(this.OnKeyDown);
// Call the method to configure
// the hardware button.
HBConfig();
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.statusBar1 = new System.Windows.Forms.StatusBar();
this.SuspendLayout();
//
// statusBar1
//
this.statusBar1.Location = new System.Drawing.Point(0, 230);
this.statusBar1.Name = "statusBar1";
this.statusBar1.Size = new System.Drawing.Size(240, 38);
this.statusBar1.Text = "Press hardware button 1 or 4.";
//
// Form1
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
this.ClientSize = new System.Drawing.Size(240, 268);
this.Controls.Add(this.statusBar1);
this.Location = new System.Drawing.Point(0, 52);
this.Name = "Form1";
this.Text = "HW Button Test";
this.ResumeLayout(false);
}
/* static void Main()
{
Application.Run(new Form1());
}*/
// Configure hardware buttons
// 1 and 4 to activate the current form.
private void HBConfig()
{
try
{
hwb1 = new HardwareButton();
hwb4 = new HardwareButton();
hwb1.AssociatedControl = this;
hwb4.AssociatedControl = this;
hwb1.HardwareKey = HardwareKeys.ApplicationKey1;
hwb4.HardwareKey = HardwareKeys.ApplicationKey4;
}
catch (Exception exc)
{
MessageBox.Show(exc.Message + " Check if the hardware button is physically available on this device.");
}
}
// When a hardware button is pressed and released,
// this form receives the KeyUp event. The OnKeyUp
// method is used to determine which hardware
// button was pressed, because the event data
// specifies a member of the HardwareKeys enumeration.
private void OnKeyDown(object sender, KeyEventArgs e)
{
switch ((HardwareKeys)e.KeyCode)
{
case HardwareKeys.ApplicationKey1:
statusBar1.Text = "Button 1 pressed.";
break;
case HardwareKeys.ApplicationKey4:
statusBar1.Text = "Button 4 pressed.";
break;
default:
statusBar1.Text = "Otra tecla";
break;
}
}
}
}
Siddharth Patil
Have you reported the problem to DELL
I've do it, but they seem to unknown where the problem is.
mphafner
I've had the same problem on the X51 and X50. The X50 worked fine until I upgraded it to WM 5.0. Then it would stop on the 20th button press, so I put 2003 back on and no more problems. I assumed it was a problem with their upgrade since the first X51 I got worked fine.
The X51 worked great until I upgraded to Dell's latest ROM then it had the same problem. On the 20th press it wouldn't respond. I have tried a couple of methods of getting keypress always with the same results. I think for some reason the Windoows messages stop being sent to the app.
My solution -- at least for the present -- is to use the curser keys and the enter button. They work every time.
micxba