با سلام و خسته نباشید به دوستان
من با این کد تونستم یاهو 10 رو از Status Invisible به Avalaible تغییر بدم
اما نتونستم دوباره Invisible کنم ممنون میشم راهنمایی کنید ، این کد توی ورژن قدیمی یاهو کار می کرد ولی الان فقط قسمت Avalible جواب میده و قسمت Invisible جواب نمیده !!
کد:
کد روشن :
Dim i As Byte
Dim yahoobuddymain As Long
yahoobuddymain = FindWindow("YahooBuddyMain", vbNullString)
SendMessage yahoobuddymain, WM_COMMAND, 376, 0
کد:
کد Invisible :
Dim i As Byte
Dim yahoobuddymain As Long
yahoobuddymain = FindWindow("YahooBuddyMain", vbNullString)
SendMessage yahoobuddymain, WM_COMMAND, &H809E, 0
ممنون میشم راهنمایی کنید
کد:
'invis
SendMessage HwndYMain, WM_COMMAND, 375, 0
با تشکر CrazyFULL میشه یه توضیح بدین که این عدد 375 رو به چه صورت پیدا کردین و اگر با کمک نرم افزار بوده ، نرم افزار مورد نظر رو در اختیار ما بزارین :X ممنونم
عدد 375 شماره آيتم آيدی منو هست که به وسيله تابع GetMenu و GetSubMenu و GetMenuItemID به دست مياد
مثال:
کد:
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
کد:
Private Sub Command2_Click()
Dim HwndYMain As Long
Dim strMenu As String * 255
Dim hMenu1 As Long, hSubMenu1 As Long, hSubMenu2 As Long, hMenuItemID As Long
HwndYMain = FindWindow("YahooBuddyMain", vbNullString)
hMenu1 = GetMenu(HwndYMain) 'handel menue balaye yahoo messenger
hSubMenu1 = GetSubMenu(hMenu1, 0) ' id avalin menu
hSubMenu2 = GetSubMenu(hSubMenu1, 0) 'id submenue menuye aval
hMenuItemID = GetMenuItemID(hSubMenu2, 2) 'invis
Text2 = hMenuItemID
Call GetMenuString(hSubMenu1, hMenuItemID , strMenu, 255, 1)
Text1 = strMenu
End Sub
اگه مثال بالا رو درک کنی ميتونی آيدی هر آيتم منو يی رو بدست بياری
شايد ابزار هايی برای پيدا کردن آيدی منو ها و ساب منو های يه برنامه باشه اما من نميشناسم
با تشکر از مجتبی عزیز به خاطر جواب کاملشون
کاملاً کار کرد ، ممنونم داداش
سلام مجتبی جان میشه لطف کنی طریقه پی ام فرستادنم بگی ؟ ممنون میشم
اگه کسیم بلده لطفا بگه
ممنون
منظورم اینه وقتی یاهو مسنجر آن شد خودش یه پی ام خاصی به آیدی خاصی بده
کسی از دوستان نیس به سوالم جواب بده ؟؟؟؟؟
لطفا کسی میدونه بگه
برای سؤالات جديد تاپيک جديد ايجاد کنيد
ميتونيد
اين مثال رو که با دلفی نوشته شده رو به vb تبديل کنيد
يا
ميتونيد با استفاده از API shellexecute و با پارامتر ymsgr:sendIM?victim پنجره pm ياهو رو باز کنيد و تا قبل از اين که ديده بشه پرنت پنجره رو به برنامه خودتون تغيير بديد و در ادامه با
اين مثال پيغام ارسال کنيد