ايران ويج

نسخه‌ی کامل: توضیحاتی در مورد SendMessage وWM_GETTEXT
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
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 رو میفرسته با موس قرار میگیرم
فقط اسم خودم برای طرف مقابل ارسال میشه نه پیغام من به نظر شما میشه با این کد کاری کرد البته اگه کد مشکلش حل بشه میتونم کامل ترش هم بکنم
lord_viper نوشته است:با اجازه جناب iron_fist
m_vb6 نوشته است:با سلام مجدد ایا تابع sendmessage برای ارسال تبلیغات به یاهو مسنجر میتونه مورد استفاده قرار بگیره اگه جواب منفی هست با چه روشی این کار عملیه من تست کردم جواب نمیده و pm های من رو بصورت رشته خالی تو یاهو ارسال میکنه در صورتی که با نوت پد تست کردم جواب میداد
بله میتونین
بهتره برای طراحی رباط اولا پروتکل یاهو و کار با سوکتها رو خوب یاد بگیرین
در ضمن یاهو هم مثل سایتها و شرکتهای بزرگ دیگه از تکنولوژی com استفاده میکنه و یرای اون هم com library میده بیرون که بدون دردسر و خیلی راحت میتونین با سرورهای یاهو ارتباط برقرار کنین و هر وقت یاهو تغییری در سرورهاش بوجود اورد فقط برنامتونو با library جدید update کنین (از dll YMSG12 هم میتونین استفاده کنین)
یا با استفاده از سوکت اطلاعات خوتونو به صفحات وب سرور یاهو بفرستین واز اون روش عمل کنین(البته الان این کار خیلی سخت شده و یاهو کار با Session ها رو هم اورده تو این کار)
بهتره از dll yahoo استفاده کنین تو سایت هم هست

میتونید روش استفاده از این کتابخانه رو برام بگید و یا تایپیکی مفید در این زمینه سراغ دارین
نقل قول: سلام
3 برنامه من هم خارج از موضوع جدید مطرح شده نیست
فرمایش شما صحصیح من حواسم نبود
شما بگید دقیقآ چی می خواید تا من بهتون بهتر کمک کنم
فقط می خواید تو صفحه مسیج ، مسیج بفرستید ؟
راستی این رو هم ببینید . فکر می کنم مال آقای ویسکرمی هست
بله فعلا میخواهم همین کار رو انجام بدم متشکرم
فکر می کنم روش آقای ویسکرمی بهتر باشه
چون فرستادن متن به تکست باکسی که تو صفحه مسیج هست یه چیز هست و باز سازی دکمه اینتر یه چیز دیگه
بجای اینهمه کد از کد آقای ویسکرمی استفاده کنید . یه خط هم بیشتر نیست
سوالی بود من درخدمتم
Iron_Fist نوشته است:
نقل قول: سلام
3 برنامه من هم خارج از موضوع جدید مطرح شده نیست
فرمایش شما صحصیح من حواسم نبود
شما بگید دقیقآ چی می خواید تا من بهتون بهتر کمک کنم
فقط می خواید تو صفحه مسیج ، مسیج بفرستید ؟
راستی این رو هم ببینید . فکر می کنم مال آقای ویسکرمی هست

کد شما فقط برای یک نفر pm میده این کد رو قبلا از سیاوش تو سایت برنامه نویس دیده بودم ایا میشه کاری کرد که برای همه افراد یک روم ارسال بشه باز هم ممنون
اون رو دقیقآ نمی دونم .
بهتره سوالات جدیدتون رو تو تاپیک مجزا بپرسید تا بهتر جواب بگیرید
ممنون از زحمتی که کشیدین
دلین من برای استفاده از یک کد دیگه اینه که کد آقای ویسکرمی ابتدا به سایت یاهو وصل میشه
که این خودش سرعت برنامه رو پایین میاره
دوستان دیگه نظری ندارن؟
شما تایپیکی در مورد کتابخانه ای که وایپر معرفی کردن سراغ دارین البیته این کتابخانه رو تو سایت پی سی ورد هم دیده بودم اما در مورد فانکشنهاش چیزی نبود قبلنها پیمان میومد خیلی ازش کمک میگرفتم اما مدتی هست که پیمان هم نمیاد
Option Explicit

Private Const WM_SETFOCUS = &H7
Private Const WM_KILLFOCUS = &H8
Private Const WM_SETREDRAW = &HB
Private Const WM_SETTEXT = &HC
Private Const WM_GETTEXT = &HD
Private Const BM_CLICK = 245
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 FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Sub Command1_Click()
On Error Resume Next

Dim imclassHwnd As Long
Dim YIMInputWindowHwnd As Long
Dim SendButtonHwnd As Long
Dim RetVal As Long
Dim MyString As String

MyString = Text1.Text

imclassHwnd = FindWindow("imclass", vbNullString)
If imclassHwnd <> 0 Then
SendButtonHwnd = FindWindowEx(imclassHwnd, 0, "Button", "&Send")
YIMInputWindowHwnd = FindWindowEx(imclassHwnd, 0, "YIMInputWindow", vbNullString)
If YIMInputWindowHwnd <> 0 And SendButtonHwnd <> 0 Then
RetVal = SendMessage(YIMInputWindowHwnd, WM_SETTEXT, 0&, ByVal MyString)
RetVal = SendMessage(SendButtonHwnd, BM_CLICK, 0&, 0&)
End If
Else
MsgBox "Not found any chatRoom !!! ", vbCritical, "ChatRoom"
End If

End Sub


این کد رو سیاوش از سایت برنامه نویس گذاشته البته یک کد هم کد مستر گیر اوردم که کامل تر بود بد ندیدم اینجا هم باشه تا دوستان استفاده کنن
صفحه‌ها: 1 2