۱۲-اردیبهشت-۱۳۸۶, ۱۳:۳۲:۱۹
کد:
getmenu findwindow("yahoobuddymain", vbNullString), "submit logs"
getmenu Caption, "send an instant &message..."
ميشه راجع به اين كد بيشتر توضيح بدي
عبارت submit logs منظور چيه ؟
getmenu findwindow("yahoobuddymain", vbNullString), "submit logs"
getmenu Caption, "send an instant &message..."
NabiKAZ نوشته است:توی میل باکس یاهو ، یه قسمت import/export هست که خروجی cvs و exel میده و لیست تمام ادد لیستت رو در فایل ذخیره میکنه.اين روش رو ميشه با داشتن آی دی و پسّورد به دست آورد
البته اینکار رو با ویژوال بیسیک و دریافت پاکت های دریافتی یاهو در لحظه لوگین میشه انجام داد.
نبی
crazyfull نوشته است:عبارت submit logs اسم يکی از ساب منو هااست که قراره اجرا بشه اگه به جای submit logs اين send an instant &message رو بنويسيم اين گزينه اجرا ميشه(Crt+M)تابع getmenu فقط يك پارامتر به عنوان ورودي ميگيره اما شما دو تا ورودي داري بهش ميدي !!!
__siavash__ نوشته است:من کد کاملش رو نزاشتمcrazyfull نوشته است:عبارت submit logs اسم يکی از ساب منو هااست که قراره اجرا بشه اگه به جای submit logs اين send an instant &message رو بنويسيم اين گزينه اجرا ميشه(Crt+M)تابع getmenu فقط يك پارامتر به عنوان ورودي ميگيره اما شما دو تا ورودي داري بهش ميدي !!!
من امتحان كردم خطا مي گيره !؟
نقل قول: من کد کاملش رو نزاشتماگه ميشه كد كاملو بذار !
فقط کد اجرای منو رو گزاشتم
شما که بلدی اگه خواستی کد کاملش رو ميزرام
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long '
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos 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 Const WM_COMMAND = &H111
Sub RunMenu(lngwindow As Long, strmenutext As String)
Dim intLoop As Integer, intSubLoop As Integer, intSub2Loop As Integer, intSub3Loop As Integer, intSub4Loop As Integer
Dim lngmenu(1 To 5) As Long, lngcount(1 To 5) As Long, lngSubMenuID(1 To 4) As Long, strcaption(1 To 4) As String
lngmenu(1) = GetMenu(lngwindow&)
lngcount(1) = GetMenuItemCount(lngmenu(1))
For intLoop% = 0 To lngcount(1) - 1
DoEvents
lngmenu(2) = GetSubMenu(lngmenu(1), intLoop%)
lngcount(2) = GetMenuItemCount(lngmenu(2))
For intSubLoop% = 0 To lngcount(2) - 1
DoEvents
lngSubMenuID(1) = GetMenuItemID(lngmenu(2), intSubLoop%)
strcaption(1) = String(75, " ")
Call GetMenuString(lngmenu(2), lngSubMenuID(1), strcaption(1), 75, 1)
If InStr(LCase(strcaption(1)), LCase(strmenutext$)) Then
Call SendMessage(lngwindow&, WM_COMMAND, lngSubMenuID(1), 0)
Exit Sub
End If
lngmenu(3) = GetSubMenu(lngmenu(2), intSubLoop%)
lngcount(3) = GetMenuItemCount(lngmenu(3))
If lngcount(3) > 0 Then
For intSub2Loop% = 0 To lngcount(3) - 1
DoEvents
lngSubMenuID(2) = GetMenuItemID(lngmenu(3), intSub2Loop%)
strcaption(2) = String(75, " ")
Call GetMenuString(lngmenu(3), lngSubMenuID(2), strcaption(2), 75, 1)
If InStr(LCase(strcaption(2)), LCase(strmenutext$)) Then
Call SendMessage(lngwindow&, WM_COMMAND, lngSubMenuID(2), 0)
Exit Sub
End If
lngmenu(4) = GetSubMenu(lngmenu(3), intSub2Loop%)
lngcount(4) = GetMenuItemCount(lngmenu(4))
If lngcount(4) > 0 Then
For intSub3Loop% = 0 To lngcount(4) - 1
DoEvents
lngSubMenuID(3) = GetMenuItemID(lngmenu(4), intSub3Loop%)
strcaption(3) = String(75, " ")
Call GetMenuString(lngmenu(4), lngSubMenuID(3), strcaption(3), 75, 1)
If InStr(LCase(strcaption(3)), LCase(strmenutext$)) Then
Call SendMessage(lngwindow&, WM_COMMAND, lngSubMenuID(3), 0)
Exit Sub
End If
lngmenu(5) = GetSubMenu(lngmenu(4), intSub3Loop%)
lngcount(5) = GetMenuItemCount(lngmenu(5))
If lngcount(5) > 0 Then
For intSub4Loop% = 0 To lngcount(5) - 1
DoEvents
lngSubMenuID(4) = GetMenuItemID(lngmenu(5), intSub4Loop%)
strcaption(4) = String(75, " ")
Call GetMenuString(lngmenu(5), lngSubMenuID(4), strcaption(4), 75, 1)
If InStr(LCase(strcaption(4)), LCase(strmenutext$)) Then
Call SendMessage(lngwindow&, WM_COMMAND, lngSubMenuID(4), 0)
Exit Sub
End If
Next intSub4Loop%
End If
Next intSub3Loop%
End If
Next intSub2Loop%
End If
Next intSubLoop%
Next intLoop%
End Sub
Private Sub Command1_Click()
Dim R As Long
R = FindWindow("YahooBuddyMain", vbNullString)
RunMenu R, "Send an Instant &Message..."
End Sub
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos 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 Const WM_COMMAND = &H111
Private Sub Command1_Click()
Dim R As Long
R = FindWindow("YahooBuddyMain", vbNullString)
SendMessage R, WM_COMMAND, GetMenuItemID(GetSubMenu(GetMenu(R), 2), 1), 0
End Sub
نقل قول: تابع getmenu فقط يك پارامتر به عنوان ورودي ميگيره اما شما دو تا ورودي داري بهش ميدي !!!من اشتباهن نام RunMenu رو GetMenu گزاشتم
من امتحان كردم خطا مي گيره !؟
crazyfull نوشته است:NabiKAZ نوشته است:توی میل باکس یاهو ، یه قسمت import/export هست که خروجی cvs و exel میده و لیست تمام ادد لیستت رو در فایل ذخیره میکنه.اين روش رو ميشه با داشتن آی دی و پسّورد به دست آورد
البته اینکار رو با ویژوال بیسیک و دریافت پاکت های دریافتی یاهو در لحظه لوگین میشه انجام داد.
نبی
درسته نه؟