IntelliPoint settings...

Does anyone know of how to change IntelliPoint settings at run-time... by this I mean change the settings in memory, so that they are immediately available.

For instance, if I wanted to change the function of the right-click button to be the same as F1 (or something like that), is it possible (okay, I know it is possible, as MS can do it with their control panel app).

I think I have isolated where in the registry the permanent settings are stored, but changing these do not change the current settings in memory until reboot.

Any idea???
Who is Participating?
Here you go, taken from the Microsoft Knowledge Base,

HOWTO: Programmatically Close a Separate Application

The information in this article applies to:

Microsoft Visual Basic Learning Edition for Windows, versions 5.0, 6.0
Microsoft Visual Basic Professional Edition for Windows, versions 5.0, 6.0
Microsoft Visual Basic Enterprise Edition for Windows, versions 5.0, 6.0


This article shows you how use API functions to programmatically close a single instance of most Windows programs through your Visual Basic program. You can use this feature to start a program, run the program without any user interaction, and shut down the program when all the program tasks are completed.

To programmatically close a single instance of a Windows program, you begin by getting the handle to the Window that you want to close with the FindWindow function. The FindWindow API function returns the handle of a top-level window whose class name and window name matches the string parameters. This function returns the handle of the window as a long value if it is successful and a null if it fails. To use this function, you must supply two parameters:

lpClassName - a pointer to a null-terminated string that specifies the class name or is an atom that identifies the class-name string. In this application, you can pass vbNullString.

lpWindowName - a pointer to a null-terminated string that specifies the window name (the window's title).

Use the handle to send a message to close the Window with the PostMessage API. The PostMessage API function sends a message to an application message queue and returns a value immediately. This function returns a non-zero value if the function is successful and zero if the function fails. To use this function, you must specify four parameters:

hWnd - the handle of the window you want to close. This long value is available as the result of the FindWindow function.

uInt - the message to post to the message queue. In this application, you would use the WM_CLOSE message.

wParam - the first message parameter. For this message, you should pass a null value.

lParam - the second message parameter. For this message, you should pass a null value.

A synchronization problem can occur when you send a message to close in the event and the program terminates before the message is processed. The WaitForSingleObject function makes sure the message is processed. To use this function, you must specify two parameters:

hHandle - the handle of the object you want to monitor.

dwMilliseconds - specifies the time-out interval, in milliseconds. If you set this parameter to INFINITE, the function's time-out interval never elapses.

To make sure that the program is closed, use the IsWindow function to determine if the handle still exists. The IsWindow function determines if the handle is valid. The function returns a non-zero value if the handle is valid and zero if the handle does not exists. To use this function, you just have to specify the handle to check.

If the handle still exists, then you can use the TerminateProcess function to stop the handle process. However, this extreme approach is not recommended because while you may have stopped the handle process, the DLL's used by the handle may still reside in memory, causing a memory leak. Use the TerminateProcess function with caution.

The next section shows how to create a sample program that demonstrates how to close a running application from a Visual Basic program. The program starts and stops the Windows calculator program.

Create the Sample Project
Start a new Standard EXE project in Visual Basic. Form1 is created by default.

Add two CommandButtons to Form1.

Copy the following code to the Code window of the Form1 form:

      Option Explicit

      Private Declare Function WaitForSingleObject Lib "kernel32" _
         (ByVal hHandle As Long, _
         ByVal dwMilliseconds As Long) As Long

      Private Declare Function FindWindow Lib "user32" _
         Alias "FindWindowA" _
         (ByVal lpClassName As String, _
         ByVal lpWindowName As String) As Long

      Private Declare Function PostMessage Lib "user32" _
         Alias "PostMessageA" _
         (ByVal hwnd As Long, _
         ByVal wMsg As Long, _
         ByVal wParam As Long, _
         ByVal lParam As Long) As Long

      Private Declare Function IsWindow Lib "user32" _
         (ByVal hwnd As Long) As Long

      'Constants used by the API functions
      Const WM_CLOSE = &H10

      Private Sub Form_Load()
         Command1.Caption = "Start the Calculator"
         Command2.Caption = "Close the Calculator"
      End Sub

      Private Sub Command1_Click()
      'Starts the Windows Calculator
         Shell "calc.exe", vbNormalNoFocus
      End Sub

      Private Sub Command2_Click()
      'Closes the Windows Calculator
         Dim hWindow As Long
         Dim lngResult As Long
         Dim lngReturnValue As Long

         hWindow = FindWindow(vbNullString, "Calculator")
         lngReturnValue = PostMessage(hWindow, WM_CLOSE, vbNull, vbNull)
         lngResult = WaitForSingleObject(hWindow, INFINITE)

         'Does the handle still exist?
         hWindow = FindWindow(vbNullString, "Calculator")
         If IsWindow(hWindow) = 1 Then
            'The handle still exists. Use the TerminateProcess function
            'to close all related processes to this handle. See the
            'article for more information.
            MsgBox "Handle still exists."
            'Handle does not exist.
            MsgBox "Program closed."
         End If
      End Sub
Press the F5 key to run the program. Click Start the Calculator to start the Windows calculator program. Click Close the Calculator to close the Windows calculator program.
i think you can develop an addin for vb and monitor kbrd or mouse
taplinAuthor Commented:
rkot2000... thanks for the idea, but I don't think it gets at what I need.  I need to be able to update the current settings for IntelliPoint as they are in memory; or, I need to refresh the current mouse handler drivers to look at the settings in the registry.

Thank you,
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

Try these 2 urls if you're interesting in (re)programming mouse in VB

And should you be interested in (re)programming the Wheel, take a look at this

Look for more mouse related info at that site.  I'll bet you'l find an answer there

Another thing.  Do you want these changes to be system-wide or just app-wide?  If so, then just use the Mouse related events of your form and controls

taplinAuthor Commented:

Thank you for your input also.  However, this still isn't quite what I am looking for.  Let me give a very specific example, as I was probably too vague up top.

With IntelliPoint and the newer mouses, such as the ones with buttons on the left and right sides of the mouse, you can program any of the buttons to do whatever you want, so long as one button is the normal "click" button.  For instance, by default, the button on the left hand side of the mouse is defaulted to "back" in an internet browser, and the button on the right-hand side is defaulted to "forward".  Using the IntelliPoint control panel app, you can change these settings to a set of predefined choices.  For instance, I could change the left-hand side button to CTRL+C, so that every time I click it, text is copied.  I want to be able to reprogram the mouse to be able to do this - system wide.  I want to perform the same functionality as IntelliPoint.

When you change the settings in IntelliPoint and then exit the window, the new changes occur.  My problem is this: I can set the settings in the registry that cause the buttons to change to whatever I want upon reboot, but I cannot figure out how to get IntelliPoint (or the mouse driver, or whatever) to "refresh" itself if I don't want to reboot.

Okay, so that's what I'm trying to do.  I'm going to add some points, as I knew this was going to be a tough one.

Again, thank's to both ramses and rkot2000 for your help thus far!
taplinAuthor Commented:
More points!
taplinAuthor Commented:
Well, I tried to do 500... but I guess 300 is the limit!
hmm.. I'll look in to it after I finish doing the dishes...
Should this help, bellow is a list of all registry activity made after pressing the Apply button when changing the Rightbutton assignment from the default to F1 (Help)

Hope this helps

2      Point32      QueryValueEx      0xC184DAA0\PSAPI      NOTFOUND            
3      Point32      OpenKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS      hKey: 0xC1888C80      
4      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\SubVersionNumber      SUCCESS      20 0       
5      Point32      CloseKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS            
6      Point32      OpenKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS      hKey: 0xC1888C80      
7      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\SubVersionNumber      SUCCESS      20 0       
8      Point32      CloseKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS            
9      Point32      QueryValueEx      0xC184DAA0\HID      NOTFOUND            
10      Point32      QueryValueEx      0xC184DAA0\SETUPAPI      NOTFOUND            
11      Point32      QueryValueEx      0xC184DAA0\COMDLG32      SUCCESS      "COMDLG32.DLL"      
12      Point32      QueryValueEx      0xC184DAA0\CFGMGR32      NOTFOUND            
13      Point32      QueryValueEx      0xC184DAA0\RPCRT4      SUCCESS      "RPCRT4.DLL"      
14      Point32      OpenKey      HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Documents      SUCCESS      hKey: 0xC1888C80      
15      Point32      QueryValueEx      HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Documents\DisableStartInMyDocs      NOTFOUND            
16      Point32      QueryValueEx      HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Documents\HideMyDocsFolder      NOTFOUND            
17      Point32      CloseKey      HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Documents      SUCCESS            
18      Point32      OpenKey      HKLM\SYSTEM\Setup      NOTFOUND            
19      Point32      OpenKey      HKLM\Software\Microsoft\Windows\CurrentVersion\Setup      SUCCESS      hKey: 0xC1888C80      
20      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\SourcePath      SUCCESS            
21      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\SourcePath      SUCCESS      "F:\SOFTWA~7\WIN98\"      
22      Point32      CloseKey      HKLM\Software\Microsoft\Windows\CurrentVersion\Setup      SUCCESS            
23      Point32      OpenKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS      hKey: 0xC1888C80      
24      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\DevicePath      SUCCESS      "D:\OS\INF"      
25      Point32      CloseKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS            
26      Point32      OpenKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS      hKey: 0xC1888C80      
27      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\SubVersionNumber      SUCCESS      20 0       
28      Point32      CloseKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS            
29      Point32      OpenKey      HKLM\System\CurrentControlSet\Control\DeviceClasses      SUCCESS      hKey: 0xC1888C80      
30      Point32      OpenKey      HKLM\System\CurrentControlSet\Control\CommAlias      NOTFOUND            
31      Point32      QueryValueEx      0xC29A8940\PORTNAME      SUCCESS      "LPT1"      
32      Point32      QueryValueEx      0xC29A8940\FRIENDLYNAME      SUCCESS      "ECP Printer Port (LPT1)"      
33      Point32      QueryValueEx      0xC29B9C80\PORTNAME      SUCCESS      "COM1"      
34      Point32      QueryValueEx      0xC29B9C80\FRIENDLYNAME      SUCCESS      "Communications Port (COM1)"      
35      Point32      OpenKey      HKLM\System\CurrentControlSet\Control\SessionManager\KnownVxDs      NOTFOUND            
36      Point32      CreateKey      HKLM\System\CurrentControlSet\Control\DeviceClasses      SUCCESS      hKey: 0xC1888C80      
37      Point32      CreateKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS      hKey: 0xC188C750      
38      Point32      CloseKey      HKLM\System\CurrentControlSet\Control\DeviceClasses      SUCCESS            
39      Point32      QueryValueEx      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}\@ClassName      NOTFOUND            
40      Point32      QueryKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS      Keys: 0 Values: 0      
41      Point32      CloseKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS            
42      Point32      OpenKey      HKLM\System\CurrentControlSet\Control\CommAlias      NOTFOUND            
43      Point32      QueryValueEx      0xC29A8940\PORTNAME      SUCCESS      "LPT1"      
44      Point32      QueryValueEx      0xC29A8940\FRIENDLYNAME      SUCCESS      "ECP Printer Port (LPT1)"      
45      Point32      QueryValueEx      0xC29B9C80\PORTNAME      SUCCESS      "COM1"      
46      Point32      QueryValueEx      0xC29B9C80\FRIENDLYNAME      SUCCESS      "Communications Port (COM1)"      
47      Point32      OpenKey      HKLM\System\CurrentControlSet\Control\SessionManager\KnownVxDs      NOTFOUND            
48      Point32      CreateKey      HKLM\System\CurrentControlSet\Control\DeviceClasses      SUCCESS      hKey: 0xC1888C80      
49      Point32      CreateKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS      hKey: 0xC182BE60      
50      Point32      CloseKey      HKLM\System\CurrentControlSet\Control\DeviceClasses      SUCCESS            
51      Point32      QueryValueEx      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}\@ClassName      NOTFOUND            
52      Point32      QueryKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS      Keys: 0 Values: 0      
53      Point32      CloseKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS            
54      Point32      OpenKey      0xC1888C80\{4D1E55B2-F16F-11CF-88CB-001111000030}      SUCCESS      hKey: 0xC182BE60      
55      Point32      CloseKey      0xC1888C80\{4D1E55B2-F16F-11CF-88CB-001111000030}      SUCCESS            
56      Point32      CloseKey      0xC1888C80      SUCCESS            
57      Point32      OpenKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS      hKey: 0xC1888C80      
58      Point32      QueryValueEx      HKCU\Control Panel\Microsoft Input Devices\Mouse\MSW_SmartUniversal      SUCCESS      "ON"      
59      Point32      CloseKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS            
60      Point32      OpenKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS      hKey: 0xC1888C80      
61      Point32      SetValueEx      HKCU\Control Panel\Microsoft Input Devices\Mouse\MSW_SmartUniversal      SUCCESS      "ON"      
62      Point32      CloseKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS            
63      Point32      OpenKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS      hKey: 0xC1888C80      
64      Point32      QueryValueEx      HKCU\Control Panel\Microsoft Input Devices\Mouse\MSW_SmartPanning      NOTFOUND            
65      Point32      CloseKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS            
66      Point32      OpenKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS      hKey: 0xC1888C80      
67      Point32      QueryValueEx      HKCU\Control Panel\Microsoft Input Devices\Mouse\MSW_SmartScrolling      NOTFOUND            
68      Point32      CloseKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS            
69      Point32      OpenKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS      hKey: 0xC1888C80      
70      Point32      QueryValueEx      HKCU\Control Panel\Microsoft Input Devices\Mouse\MSW_SmartAutoScroll      NOTFOUND            
71      Point32      CloseKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS            
72      Point32      OpenKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS      hKey: 0xC1888C80      
73      Point32      SetValueEx      HKCU\Control Panel\Microsoft Input Devices\Mouse\TrayIcon      SUCCESS      "FALSE"      
74      Point32      CloseKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS            
75      Point32      OpenKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS      hKey: 0xC1888C80      
76      Point32      SetValueEx      HKCU\Control Panel\Microsoft Input Devices\Mouse\R_BtnAssignment      SUCCESS      0x20      
77      Point32      CloseKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS            
78      Rundll32      OpenKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS      hKey: 0xC1888C80      
79      Rundll32      SetValueEx      HKCU\Control Panel\Microsoft Input Devices\Mouse\DeviceNum      SUCCESS      0x7      
80      Rundll32      CloseKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS            
81      Point32      OpenKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS      hKey: 0xC1888C80      
82      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\SubVersionNumber      SUCCESS      20 0       
83      Point32      CloseKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS            
84      Point32      OpenKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS      hKey: 0xC1888C80      
85      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\SubVersionNumber      SUCCESS      20 0       
86      Point32      CloseKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS            
87      Point32      QueryValueEx      0xC184DAA0\HID      NOTFOUND            
88      Point32      QueryValueEx      0xC184DAA0\SETUPAPI      NOTFOUND            
89      Point32      QueryValueEx      0xC184DAA0\COMDLG32      SUCCESS      "COMDLG32.DLL"      
90      Point32      QueryValueEx      0xC184DAA0\CFGMGR32      NOTFOUND            
91      Point32      QueryValueEx      0xC184DAA0\RPCRT4      SUCCESS      "RPCRT4.DLL"      
92      Point32      OpenKey      HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Documents      SUCCESS      hKey: 0xC1888C80      
93      Point32      QueryValueEx      HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Documents\DisableStartInMyDocs      NOTFOUND            
94      Point32      QueryValueEx      HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Documents\HideMyDocsFolder      NOTFOUND            
95      Point32      CloseKey      HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Documents      SUCCESS            
96      Point32      OpenKey      HKLM\SYSTEM\Setup      NOTFOUND            
97      Point32      OpenKey      HKLM\Software\Microsoft\Windows\CurrentVersion\Setup      SUCCESS      hKey: 0xC1888C80      
98      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\SourcePath      SUCCESS            
99      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\SourcePath      SUCCESS      "F:\SOFTWA~7\WIN98\"      
100      Point32      CloseKey      HKLM\Software\Microsoft\Windows\CurrentVersion\Setup      SUCCESS            
101      Point32      OpenKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS      hKey: 0xC1888C80      
102      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\DevicePath      SUCCESS      "D:\OS\INF"      
103      Point32      CloseKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS            
104      Point32      OpenKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS      hKey: 0xC1888C80      
105      Point32      QueryValueEx      HKLM\Software\Microsoft\Windows\CurrentVersion\SubVersionNumber      SUCCESS      20 0       
106      Point32      CloseKey      HKLM\Software\Microsoft\Windows\CurrentVersion      SUCCESS            
107      Point32      OpenKey      HKLM\System\CurrentControlSet\Control\DeviceClasses      SUCCESS      hKey: 0xC1888C80      
108      Point32      OpenKey      HKLM\System\CurrentControlSet\Control\CommAlias      NOTFOUND            
109      Point32      QueryValueEx      0xC29A8940\PORTNAME      SUCCESS      "LPT1"      
110      Point32      QueryValueEx      0xC29A8940\FRIENDLYNAME      SUCCESS      "ECP Printer Port (LPT1)"      
111      Point32      QueryValueEx      0xC29B9C80\PORTNAME      SUCCESS      "COM1"      
112      Point32      QueryValueEx      0xC29B9C80\FRIENDLYNAME      SUCCESS      "Communications Port (COM1)"      
113      Point32      OpenKey      HKLM\System\CurrentControlSet\Control\SessionManager\KnownVxDs      NOTFOUND            
114      Point32      CreateKey      HKLM\System\CurrentControlSet\Control\DeviceClasses      SUCCESS      hKey: 0xC1888C80      
115      Point32      CreateKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS      hKey: 0xC188C750      
116      Point32      CloseKey      HKLM\System\CurrentControlSet\Control\DeviceClasses      SUCCESS            
117      Point32      QueryValueEx      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}\@ClassName      NOTFOUND            
118      Point32      QueryKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS      Keys: 0 Values: 0      
119      Point32      CloseKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS            
120      Point32      OpenKey      HKLM\System\CurrentControlSet\Control\CommAlias      NOTFOUND            
121      Point32      QueryValueEx      0xC29A8940\PORTNAME      SUCCESS      "LPT1"      
122      Point32      QueryValueEx      0xC29A8940\FRIENDLYNAME      SUCCESS      "ECP Printer Port (LPT1)"      
123      Point32      QueryValueEx      0xC29B9C80\PORTNAME      SUCCESS      "COM1"      
124      Point32      QueryValueEx      0xC29B9C80\FRIENDLYNAME      SUCCESS      "Communications Port (COM1)"      
125      Point32      OpenKey      HKLM\System\CurrentControlSet\Control\SessionManager\KnownVxDs      NOTFOUND            
126      Point32      CreateKey      HKLM\System\CurrentControlSet\Control\DeviceClasses      SUCCESS      hKey: 0xC1888C80      
127      Point32      CreateKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS      hKey: 0xC182BE60      
128      Point32      CloseKey      HKLM\System\CurrentControlSet\Control\DeviceClasses      SUCCESS            
129      Point32      QueryValueEx      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}\@ClassName      NOTFOUND            
130      Point32      QueryKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS      Keys: 0 Values: 0      
131      Point32      CloseKey      HKLM\System\CurrentControlSet\Control\DeviceClasses\{4d1e55b2-f16f-11cf-88cb-001111000030}      SUCCESS            
132      Point32      OpenKey      0xC1888C80\{4D1E55B2-F16F-11CF-88CB-001111000030}      SUCCESS      hKey: 0xC182BE60      
133      Point32      CloseKey      0xC1888C80\{4D1E55B2-F16F-11CF-88CB-001111000030}      SUCCESS            
134      Point32      CloseKey      0xC1888C80      SUCCESS            
135      Rundll32      OpenKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS      hKey: 0xC1888C80      
136      Rundll32      QueryValueEx      HKCU\Control Panel\Microsoft Input Devices\Mouse\DeviceNum      SUCCESS      0x7      
137      Rundll32      CloseKey      HKCU\Control Panel\Microsoft Input Devices\Mouse      SUCCESS            
138      Point32      QueryValueEx      0xC184DAA0\PSAPI      NOTFOUND            
Oh yes, I forgot to give you info on the format of the list.

First is a number.  number 4 happens before number 5, then comes the name of the module calling the registry, then the requested action, ie OpenKey, then the Key that is being called, followed by either SUCCESS, NOTFOUND, or NOMORE and lastly, if applicable, the data that is transfered between the registry and the calling module

entrys that call a key in the format like 0x... are not actually caling the registry but an external file, like win.ini
taplinAuthor Commented:
Oh man...

I will be looking at your response, but it's going to have to be tonight or tomorrow morning... that's going to take a bit of time to figure out.  I really appreciate your help!

BTW, how'd you get that info?

I use an utility called RegMon (Registry Monitor)

It's free 4 all, to be downloaded from:

Glad to be of service

taplinAuthor Commented:
Hey... thanks for the info on the RegMon app.  After looking through all the registry settings, I'm trying a different approach.  I knew of the registry settings IP uses to save the configuration in HKEY_CURRENT_USER\Control Panel\Microsoft Input Devices\Mouse.  I realized that by terminating the point32 process from Task Manager (yes, I know, not recommended, but for the sake of research it works great!), and then reloading point32, the new settings take.

I've posted a question pertaining to the best way to get point32 to terminate from VB.  If you have any thoughts, they would be greatly appreciated.  I'd like to avoid modifying a couple dozen registry settings, as there is too much chance of screwing something up by not knowing the ramifications of changing each setting.


p.s.  Either way, you get the points for all your help!
If believe you'd have to 1st obtain the handle of point32 program and then SendMsg WM_CLOSE to that handle

Hold on... I'll look it up

These can also be of assistance in finding the handle of Point32:

Howto: get a Window Handle Without Specifying an Exact Title:


How to Get a Window's Class Name and Other Attributes:

Hope this helps

Just scream 4 more :-)

taplinAuthor Commented:
YOU ARE THE MAN!!!!!!!!!!!!!!!!!!!!

Did it!  Works great!  No more need to scream!  Thank you so much!

I determined the Window title and passed it in via the code, and everything works great!

taplinAuthor Commented:
Forgot to accept the answer!!!
You're welcome.

I'll keep Email-Notification for this question ON so, should you have any more questions/comments regarding this topic, just add a comment and I will be notified so that we can look in to that right away

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.