Re: How do I make the mouse cursor get a value..?

Tech-Archive recommends: Fix windows errors by optimizing your registry



Ah, you want the text from an external application!
In that case do some Googling for the SendMessage API and WM_GETTEXT.

RBS


<Internetdomainowner@xxxxxxxxxxx> wrote in message news:59edd0b4-71c6-4600-aa71-ab5645bff7e1@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
On Jul 20, 5:21 pm, "RB Smissaert" <bartsmissa...@xxxxxxxxxxxxxxxx>
wrote:
Well, you asked:
if it was possible for Excel VBA to read the value of a mouse cord x z
value...

I am sure what you want is possible, but it looks messy to me, particularly
Sendkeys, which
really should be your very last option. What situation in practical terms
are you trying to solve?

RBS

<Internetdomainow...@xxxxxxxxxxx> wrote in message

news:b2a9b358-b0ab-4811-9f7e-31839ec72813@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
On Jul 20, 3:00 pm, "RB Smissaert" <bartsmissa...@xxxxxxxxxxxxxxxx>
wrote:





> I get the feeling there must be a simpler way to do what you want, but
> this
> will get you the mouse coordinates:

> Option Explicit
> Private Type POINTAPI
> x As Long
> y As Long
> End Type
> Private Declare Function GetCursorPos _
> Lib "user32" (lpPoint As POINTAPI) As Long

> Function GetCursorPosition() As Long()

> Dim Point As POINTAPI
> Dim arr(1 To 2) As Long

> GetCursorPos Point

> arr(1) = Point.x
> arr(2) = Point.y

> GetCursorPosition = arr

> End Function

> Sub test()

> Dim arr() As Long

> arr = GetCursorPosition()

> MsgBox "x " & arr(1) & vbCrLf & _
> "y " & arr(2), , "mouse coordinates"

> End Sub

> RBS

> <Internetdomainow...@xxxxxxxxxxx> wrote in message

>news:64e0d135-1a5f-4a76-bf16-7614cdeca152@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

> > Fellow programmers thank you for your time. I need some assistance...
> > I am trying to figure out how to get the mouse cursor select from text
> > from a specific x z cord and paste the value in a text box on my
> > userform. Here is some code I tried...

> > SetCursorPos 255, 413

> > Do Until UserForm1.TextBox1.Value = 521
> > DoEvents
> > Application.Run "mouscoords"
> > mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
> > SendKeys "^C", True
> > UserForm1.TextBox3.SetFocus
> > SendKeys "^V", True
> > mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
> > UserForm1.TextBox1.Value = UserForm1.TextBox1.Value + 1
> > SetCursorPos UserForm1.TextBox1.Value, 413
> > DoEvents
> > Loop

> > It doesn't seem to want to work... I'd imagine that this isn't the
> > best way of doing this but but I'm curious if anyone has gotten
> > something simlar to work. I was also wondering if it was possible for
> > Excel VBA to read the value of a mouse cord x z value... Any ideas?
> > There seems to be alot of brilliant people on this message board so I
> > look forward to see what the end result is.

> > Thank you ever so much!- Hide quoted text -

> - Show quoted text -

Thank you for your reply however, I'm already aware of how to get the
X Z cords... what I'm looking for it to do is select a range of text
in a given x z cordinate -- then copy it. My macro is programmed do
this but for whatever reason it's not. The process is explained
below...

'------------------- STARTING POSISTION OF HIGHLIGHT TEXT
SetCursorPos 255, 413
'------------------- END POSISTION OF TEXT is equal to 521, 413
Do Until UserForm1.TextBox1.Value = 521
DoEvents
'------------------- Grabs the current X Z values
Application.Run "mouscoords"
'------------------- LEFT CLICK THE MOUSE BUTTON
mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
'------------------- COPY THE CURRENT LETTER HIGHLIGHTED
SendKeys "^C", True
'------------------- SETFOCUS TO THE OUTPUT TEXT BOX ON THE USERFORM
UserForm1.TextBox3.SetFocus
'------------------- PASTE THE COPIED VALUE
SendKeys "^V", True
'------------------- RELEASE THE LEFT MOUSE CLICK
mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
'------------------- +1 to the X value so the cursor moves again
UserForm1.TextBox1.Value = UserForm1.TextBox1.Value + 1
'------------------- NEW CURSOR POSISTION
SetCursorPos UserForm1.TextBox1.Value, 413
'------------------- REPEAT THE WHOLE PROCESS OVER AGAIN
DoEvents
Loop- Hide quoted text -

- Show quoted text -

The applications of code that does this endless... versus a normal
webquery imagine if you were able to read the value of text on any
program that doesn't normally allow you to copy it. Or if it was
possible having this as an option for websites that use frames (which
makes it so that a normal excel webquery doesn't work).

I got the program to select the text on a basic website but I can't
seem to get it to copy the text after it's highlighted...

Private Sub CommandButton1_Click()
SetCursorPos 255, 413 ' 552, 357

DoEvents
Application.Run "mouscoords"
mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
Do Until UserForm1.TextBox1.Value = 521
UserForm1.TextBox1.Value = UserForm1.TextBox1.Value + 5
SetCursorPos UserForm1.TextBox1.Value, 413
DoEvents
Loop

SendKeys "^C", True

mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
UserForm1.Spreadsheet1.ActiveCell.Paste

End Sub

.


Quantcast