KeePass Password Safe

March 15, 2009

I was looking for a simple and secure way to store my passwords. There are many utilities available like Roboform, Password Corral, KeePass etc.  I only tried KeePass and it works just the way I wanted. I can use it without installating it. Just download the zipped version, extract it on your computer and launch KeePass.exe. You can save username/password information in various builtin catergories called groups. You can also create your own groups and subgroups.

Read more about KeePass at http://keepass.info/

KeePass main screen

KeePass main screen


Windows Mobile Phone Signal Strength

March 9, 2009

There is no API to determine the current signal strength of the phone radio on a Windows Mobile Phone Device. But as the signal value changes, its updated in the registry at the following location.

[HKEY_LOCAL_MACHINE\System\State\Phone]

Signal Strength Raw” value under the above key stores signal strength value in percentage (0 – 100).

You might want to know in your application when signal strength status changes.  Polling registry is a resource intensive operation and should be avoided. Instead you can use RegistryNotifyCallback function provided by State and Notifications Broker mechanism. This powerful feature is available since WM 5.0 and gives applications an easy way to get notified when a particular registry value changes. Read more about it in MSDN.

http://msdn.microsoft.com/en-us/library/aa455748.aspx


Programmatically capture images with Camera application

March 6, 2009

While developing an application I found that following methods can be used to launch the Camera capture application.

I have seen the following code work on WM 5.0 device:

SHELLEXECUTEINFO ExecInfo = {0};
ExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ExecInfo.lpFile = L”\\windows\\pimg.exe”;
ExecInfo.lpParameters = L”-camerakey”;
ExecInfo.lpVerb = L”open”;
ShellExecuteEx(&ExecInfo);

And following code on WM 6.0 device:

void ShowCameraCapture()
{

SHCAMERACAPTURE shcc;

// Set the SHCAMERACAPTURE structure.
ZeroMemory(&shcc, sizeof(shcc));
shcc.cbSize = sizeof(shcc);
shcc.hwndOwner = hwndOwner;
shcc.pszInitialDir = NULL;
shcc.pszDefaultFileName = NULL;
shcc.pszTitle = TEXT(“PK Camera”);
shcc.VideoTypes = CAMERACAPTURE_VIDEOTYPE_ALL;
shcc.nResolutionWidth = 0;
shcc.nResolutionHeight = 0;
shcc.nVideoTimeLimit = 0;
shcc.Mode = CAMERACAPTURE_MODE_STILL;

// Launch the Camera Capture screen
SHCameraCapture(&shcc);

}

You can fillup the fields of SHCAMERACAPTURE structure for controlling many aspects of camera operations. Look into MSDN for details.