۰۱-اسفند-۱۳۸۶, ۱۹:۵۳:۴۴
Option Explicit
Private Const WM_SETTEXT = &HC
Private Const WM_GETTEXT = &HD
Private Const WM_GETTEXTLENGTH = &HE
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Sub Timer1_Timer()
Dim WIN_HWND As Long
Dim STR_CLASS As String
Dim NMAX_CLASS As Long
Dim RET_CLASS As Long
Dim RET_SENDMESSAGE As Long
Dim LEN_MESSAGE As Long
Dim MESSAGE As String
Dim pt As POINTAPI, wnd As Long
Dim pos As POINTAPI
Dim retval As Long
Dim retval2 As Long
Dim sp As String
WIN_HWND = GetForegroundWindow
STR_CLASS = Space$(255)
NMAX_CLASS = 255
RET_CLASS = GetClassName(WIN_HWND, STR_CLASS, NMAX_CLASS)
MESSAGE = " ÓáÇã "
LEN_MESSAGE = Len(MESSAGE)
GetCursorPos pt
retval = GetCursorPos(pos)
retval = WindowFromPoint(pos.x, pos.y)
sp = Space$(255)
retval2 = SendMessage(retval, WM_GETTEXTLENGTH, 0, ByVal sp)
retval2 = SendMessage(retval, WM_GETTEXT, retval2 + 1, ByVal sp)
Text3.Text = Left$(sp, retval2)
If Left$(STR_CLASS, 19) = "YSearchMenuWndClass" Then
retval2 = SendMessage(retval, WM_SETTEXT, ByVal LEN_MESSAGE, ByVal MESSAGE)
SendKeys ("~")
End If
Timer1.Interval = 5000
Text1.Text = Empty
Text1.Text = MESSAGE
Text2.Text = STR_CLASS
End Sub
من از کد بالا استفاده کردم اما وقتی روی قسمتی که PM رو میفرسته با موس قرار میگیرم
فقط اسم خودم برای طرف مقابل ارسال میشه نه پیغام من به نظر شما میشه با این کد کاری کرد البته اگه کد مشکلش حل بشه میتونم کامل ترش هم بکنم
Private Const WM_SETTEXT = &HC
Private Const WM_GETTEXT = &HD
Private Const WM_GETTEXTLENGTH = &HE
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Sub Timer1_Timer()
Dim WIN_HWND As Long
Dim STR_CLASS As String
Dim NMAX_CLASS As Long
Dim RET_CLASS As Long
Dim RET_SENDMESSAGE As Long
Dim LEN_MESSAGE As Long
Dim MESSAGE As String
Dim pt As POINTAPI, wnd As Long
Dim pos As POINTAPI
Dim retval As Long
Dim retval2 As Long
Dim sp As String
WIN_HWND = GetForegroundWindow
STR_CLASS = Space$(255)
NMAX_CLASS = 255
RET_CLASS = GetClassName(WIN_HWND, STR_CLASS, NMAX_CLASS)
MESSAGE = " ÓáÇã "
LEN_MESSAGE = Len(MESSAGE)
GetCursorPos pt
retval = GetCursorPos(pos)
retval = WindowFromPoint(pos.x, pos.y)
sp = Space$(255)
retval2 = SendMessage(retval, WM_GETTEXTLENGTH, 0, ByVal sp)
retval2 = SendMessage(retval, WM_GETTEXT, retval2 + 1, ByVal sp)
Text3.Text = Left$(sp, retval2)
If Left$(STR_CLASS, 19) = "YSearchMenuWndClass" Then
retval2 = SendMessage(retval, WM_SETTEXT, ByVal LEN_MESSAGE, ByVal MESSAGE)
SendKeys ("~")
End If
Timer1.Interval = 5000
Text1.Text = Empty
Text1.Text = MESSAGE
Text2.Text = STR_CLASS
End Sub
من از کد بالا استفاده کردم اما وقتی روی قسمتی که PM رو میفرسته با موس قرار میگیرم
فقط اسم خودم برای طرف مقابل ارسال میشه نه پیغام من به نظر شما میشه با این کد کاری کرد البته اگه کد مشکلش حل بشه میتونم کامل ترش هم بکنم