Visual Basic .NET - Keyboard stroke / screen scrape listen to execute database lookup.
Project is to write a VB .Net application that has the following requirements:
1) Must be compatible with Windows 2000, Windows XP, and Windows Vista
2) Program should be able to minimize to the system tray.
3) Must have ability to configure SQL statement by admin (passworded) so that database lookup can be customized.
4) Database connection must be compatible with IBM i series DB2 (ODBC). Database connection should be self contained inside the program so that no other setup is required other than install of the program.
5) Must be able to listen for keyboard strokes to initiate database lookup. For example listen for CTRL + 1234 to initiate a query searching for a record with 1234 in a field. SQL statement would be created after the program is delivered. The command key (CTRL key in the above example) should be able to be customized by the user.
6) When query is executed the results should be displayed via a small popup "desktop alert" from the system tray similar to how MS Outlook shows a preview of a new email message when it arrives.
7) Full source code and VB project files required to be submitted upon delivery. All source code should be documented in-line.
8) Would also like to have an alternate way to initiate the database query such as:
a) Application would detect when a certain windows application window (configurable by admin) opens.
b) Application would then look for key data in that window at defined coordinate within the window and scrape the data from that location to initiate the database query.
example) Application detects window named "Trouble Dispatch" then looks for a customer number that is located 200 px from the left of the window and 100 px from the top of the window. The application would then use the number that it finds in that location to initiate the database query for that customer number. It is acceptable to specify the full location by 4 coordinates to create a “box” where the data resides on screen.
c) The screen location of the window would not be constant, but the location within the window itself would remain constant.
d) The location of the data (coordinates) should be able to be changed from the admin section (passworded) so that data could be pulled from multiple windows.
e) The name of the window should be customizable from the admin window (passworded) and the application should have the ability to listen for multiple windows at the same time.