• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Thay đổi status trong yahoo

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Điều hành viên: tungblt

dactung93
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Ba 04/11/2008 8:43 am
Has thanked: 6 time
Been thanked: 8 time

Thay đổi status trong yahoo

Gửi bàigửi bởi dactung93 » T.Ba 08/09/2009 5:32 pm

Cho em hỏi với.

Làm cách nào để tự động thay đổi status của yahoo mesage bằng. Em đã đọc cái hàm sendmessage kỹ lắm rồi mà làm maĩ không được.
Em định làm một tool nhỏ để tự động thay đổi status yahoo cho nó đẹp và sắp tới tặng sinh nhật đứa bạn. Nhưng nghiên cứu mãi cũng chả thấy được. Giúp em với nha

Em xin cảm ơn



Hình đại diện của người dùng
Rowens
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 88
Ngày tham gia: CN 05/07/2009 10:47 pm
Đến từ: Đồng Nai
Has thanked: 5 time
Been thanked: 5 time
Liên hệ:

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi Rowens » T.Ba 08/09/2009 7:43 pm

Về SendMessage thì mình hok biết gì hết :D
Nhưng tự động thay đổi status thì mình nghĩ dùng SendKeys là làm được:
- Cho cửa sổ YM active.
- SendKeys để chỉnh sửa status (Alt + M + RightArrow + 3 lần DownArrow + Enter + Nội dung status + Enter)
- Trở lại cửa sổ đang làm việc (Alt + Tab)

p/s: nghiên cứu cách acitve cửa sổ của process đang ở traybar. ;)
Rowens - SharkVN Group
wWw.SharkVn.Org

Uzumaki Naruto
Thành viên danh dự
Thành viên danh dự
Bài viết: 839
Ngày tham gia: T.Hai 30/04/2007 9:55 pm
Đến từ: Sài Gòn
Has thanked: 7 time
Been thanked: 83 time

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi Uzumaki Naruto » T.Ba 08/09/2009 8:28 pm

Đầu tiên bạn phải ghi status vào key chứa Status của Yahoo trong Registry, cái này tuỳ vào phiên bản Yahoo của bạn, mình xài Yahoo 9 thì đường dẫn như thế này:
HKEY_CURRENT_USER\Software\Yahoo\pager\profiles\[tên nick]\Custom Msgs\1_W
Sau đó bạn dùng SendMessage để cập nhật lại cửa sổ Yahoo.

Mã: Chọn hết

  1. YWnd = FindWindow("YahooBuddyMain", vbNullString)
  2. If YWnd <> 0 Then SendMessage(YWnd, &H111, 388, 1&)

Nếu bạn dùng Yahoo 8 thì bạn liên hệ với VBNewbie để biết thêm chi tiết
Cause you're my special thing
I'm flying without wings

dactung93
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Ba 04/11/2008 8:43 am
Has thanked: 6 time
Been thanked: 8 time

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi dactung93 » T.Tư 09/09/2009 12:00 pm

Hầu như bây giờ đều là Yahoo 9 rồi. À mà nếu muốn dùng status tiếng việt thì làm sao đây,
Dùng unicode ghi vào register ư ??? sao ghi được
Hay ghi bằng UTF-8 hả bạn ???.

Bạn nếu rảnh có thể làm ví dụ minh hoa chọ mình được không ?

Hình đại diện của người dùng
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
Bài viết: 1641
Ngày tham gia: T.Tư 16/04/2008 11:25 am
Đến từ: Chợ Lách - Bến Tre
Been thanked: 31 time
Liên hệ:

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi clarkkent » T.Tư 09/09/2009 12:35 pm

Yahoo 9 thì ghi thẳng tiếng Việt luôn, dùng hàm chuyển sang tiếng Việt rồi ghi thôi
• Hôm bây: www.tinsoftware.com ^ ^
Cố gắng lên...

Uzumaki Naruto
Thành viên danh dự
Thành viên danh dự
Bài viết: 839
Ngày tham gia: T.Hai 30/04/2007 9:55 pm
Đến từ: Sài Gòn
Has thanked: 7 time
Been thanked: 83 time

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi Uzumaki Naruto » T.Tư 09/09/2009 3:47 pm

Tại em viết bên VB.NET nên nó sẵn sàng hết mọi thứ, còn bên VB6 phải dùng API ghi vào registry mà VB6 không hỗ trợ Unicode nên em chưa thử.
Cause you're my special thing
I'm flying without wings

Hình đại diện của người dùng
thuongall
Quản trị
Quản trị
Bài viết: 455
Ngày tham gia: T.Tư 26/01/2005 8:05 am
Đến từ: Quê hương Đồng Khởi
Been thanked: 9 time
Liên hệ:

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi thuongall » T.Tư 09/09/2009 8:20 pm

Vẫn có thể dùng API ghi chuỗi Unicode vào Registry được, nếu không thì chương trình này sao có thể chạy được với Y!M: viewtopic.php?f=41&t=7881

dactung93
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Ba 04/11/2008 8:43 am
Has thanked: 6 time
Been thanked: 8 time

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi dactung93 » T.Năm 10/09/2009 9:53 am

Cái chương trình Danh Ngôn của ThuongAll thì em biết rồi nhưng mà các kỹ thuật về Register đọc mãi chả hiểu, kỹ năng còn lỏng lẻo về các hàm quá. Hay làm hộ em cái demo cái, về em nghiên cứu, chứ từ trước đến nay có sử dụng gì nhiều đến mấy cái kỹ thuật này đâu mà chắc cho được

Hình đại diện của người dùng
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
Bài viết: 1641
Ngày tham gia: T.Tư 16/04/2008 11:25 am
Đến từ: Chợ Lách - Bến Tre
Been thanked: 31 time
Liên hệ:

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi clarkkent » T.Năm 10/09/2009 10:19 am

Đây là 1 ví dụ ghi unicode vào registry :D

Form (ghi 1 giá trị unicode vào khóa HKEY_CLASSES_ROOT\.aaa)

Mã: Chọn hết

  1. Const ANSI$ = "a1 ,a2 ,a3 ,a4 ,a5 ,a6 ,a8 ,a61,a62,a63,a64,a65,a81,a82,a83,a84,a85,A1 ,A2 ,A3 ,A4 ,A5 ,A6 ,A8 ,A61,A62,A63,A64,A65,A81,A82,A83,A84,A85,e1 ,e2 ,e3 ,e4 ,e5 ,e6 ,e61,e62,e63,e64,e65,E1 ,E2 ,E3 ,E4 ,E5 ,E6 ,E61,E62,E63,E64,E65,i1 ,i2 ,i3 ,i4 ,i5 ,I1 ,I2 ,I3 ,I4 ,I5 ,o1 ,o2 ,o3 ,o4 ,o5 ,o6 ,o7 ,o61,o62,o63,o64,o65,o71,o72,o73,o74,o75,O1 ,O2 ,O3 ,O4 ,O5 ,O6 ,O7 ,O61,O62,O63,O64,O65,O71,O72,O73,O74,O75,u1 ,u2 ,u3 ,u4 ,u5 ,u7 ,u71,u72,u73,u74,u75,U1 ,U2 ,U3 ,U4 ,U5 ,U7 ,U71,U72,U73,U74,U75,y1 ,y2 ,y3 ,y4 ,y5 ,Y1 ,Y2 ,Y3 ,Y4 ,Y5 ,d9 ,D9 "
  2. Const UNI$ = "E1,E0,1EA3,E3,1EA1,E2,103,1EA5,1EA7,1EA9,1EAB,1EAD,1EAF,1EB1,1EB3,1EB5,1EB7,C1,C0,1EA2,C3,1EA0,C2,102,1EA4,1EA6,1EA8,1EAA,1EAC,1EAE,1EB0,1EB2,1EB4,1EB6,E9,E8,1EBB,1EBD,1EB9,EA,1EBF,1EC1,1EC3,1EC5,1EC7,C9,C8,1EBA,1EBC,1EB8,CA,1EBE,1EC0,1EC2,1EC4,1EC6,ED,EC,1EC9,129,1ECB,CD,CC,1EC8,128,1ECA,F3,F2,1ECF,F5,1ECD,F4,1A1,1ED1,1ED3,1ED5,1ED7,1ED9,1EDB,1EDD,1EDF,1EE1,1EE3,D3,D2,1ECE,D5,1ECC,D4,1A0,1ED0,1ED2,1ED4,1ED6,1ED8,1EDA,1EDC,1EDE,1EE0,1EE2,FA,F9,1EE7,169,1EE5,1B0,1EE9,1EEB,1EED,1EEF,1EF1,DA,D9,1EE6,168,1EE4,1AF,1EE8,1EEA,1EEC,1EEE,1EF0,FD,1EF3,1EF7,1EF9,1EF5,DD,1EF2,1EF6,1EF8,1EF4,111,110"
  3.  
  4.  
  5. Private Sub Command1_Click()
  6.  
  7. Dim tr As Long
  8. Dim hResult As Long
  9. Dim sRegDes As String
  10. sRegDes = VNI_2_UNI("Ghi tie61ng Vie65t Unicode vào Registry - Nguye64n Trung Ti1n")
  11.  
  12. tr = RegCreateKey(KeyCoSo.HKEY_CLASSES_ROOT, ".aaa", 0)
  13. tr = RegOpenKeyEx(KeyCoSo.HKEY_CLASSES_ROOT, ".aaa", 0, KeyTruyxuat.KEY_ALL_ACCESS, hResult)
  14. tr = RegSetValueExW(hResult, "", 0, KeyGiatri.REG_SZ, StrPtr(sRegDes), LenB(sRegDes))
  15.  
  16. End Sub
  17.  
  18. Public Function VNI_2_UNI(str$) As String
  19.     Dim i%, sTem$, sUni$, arrUNI() As String
  20.     arrUNI = Split(UNI, ",")
  21.     For i = 1 To Len(str)
  22.     If IsNumeric(Mid(str, i + 1, 1)) = False Then
  23.     sUni = sUni & Mid(str, i, 1)
  24.     Else
  25.     sTem = IIf(IsNumeric(Mid(str, i + 2, 1)), Mid(str, i, 3), Mid(str, i, 2) & " ")
  26.     i = i + IIf(IsNumeric(Mid(str, i + 2, 1)), 2, 1)
  27.     If InStr(ANSI, sTem) > 0 Then sTem = ChrW$("&h" & arrUNI(InStr(ANSI, sTem) \ 4))
  28.     sUni = sUni & RTrim(sTem)
  29.     End If
  30.     Next
  31.         VNI_2_UNI = sUni
  32. End Function
  33.  


Module (chôm của ai đó :D)

Mã: Chọn hết

  1. Option Explicit
  2.  
  3. Public Type SECURITY_ATTRIBUTES
  4.          nLength As Long 'Chie^`u dài cu?a chuo^?i ba?o ma^.t
  5.          lpSecurityDescriptor As Long ' Chuo^?i ba?o ma^.t
  6.          bInheritHandle As Long ' hanle
  7. End Type
  8.  
  9. Private Declare Function RealizePalette Lib "gdi32" (ByVal hdc As Long) As Long
  10.  
  11. Public Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
  12. Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  13. Public Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
  14. Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
  15. Public Declare Function RegSetValueExW Lib "advapi32.dll" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As Long, ByVal cbData As Long) As Long       ' Note that if you declare the lpData parameter as String, you must pass it By Value.
  16. Public Declare Function RegSetValueExA Lib "advapi32.dll" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long       ' Note that if you declare the lpData parameter as String, you must pass it By Value.
  17. Public Declare Function RegDeleteKeyA Lib "advapi32.dll" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
  18.  
  19. Public Enum KeyCoSo
  20.      HKEY_CLASSES_ROOT = &H80000000
  21.      HKEY_CURRENT_CONFIG = &H80000005
  22.      HKEY_LOCAL_MACHINE = &H80000002
  23.      HKEY_CURRENT_USER = &H80000001
  24.      HKEY_USERS = &H80000003
  25. End Enum
  26. Public Enum KeyTruyxuat
  27.     KEY_ALL_ACCESS = &HF003F 'Mo.i kie^?u truy xua^'t
  28.     KEY_CREATE_LINK = &H20 ' Quye^`n ta.o liên ke^'t ký hie^.u
  29.     KEY_CREATE_SUB_KEY = &H4 'Quye^`n ta.o khóa con
  30.     KEY_ENUMERATE_SUB_KEYS = &H8 '‘Quye^`n lie^.t kê khóa con
  31.     KEY_EXECUTE = &H20019 'Quye^`n ?o.c
  32.     KEY_NOTIFY = &H10
  33.     KEY_QUERY_VALUE = &H1
  34.     KEY_READ = &H20019 'Quye^`n ?o.c
  35.     KEY_SET_VALUE = &H2 'Quye^`n ?a(.t giá tri.
  36.     KEY_WRITE = &H20006 'Quye^`n vie^'t du+~ lie^.u
  37. End Enum
  38. Public Enum KeyGiatri
  39.     REG_BINARY = 3  'Mo^.t chuo^?i nhi. phân
  40.     REG_DWORD = 4   ' Mo^.t so^' nguyên 32 bit
  41.     REG_DWORD_BIG_ENDIAN = 5  'So^' nguyên 32 bit
  42.     REG_DWORD_LITTLE_ENDIAN = 4  'So^' nguyên 32 bit
  43.     REG_EXPAND_SZ = 2   'Mo^.t chuo^?i ke^'t thúc bo+?i Null
  44.     REG_LINK = 6  'Liên ke^'t Unicode
  45.     REG_MULTI_SZ = 7 ' Nhie^`u chuo^?i ke^'t ho+.p bo+?i kt Null
  46.     REG_NONE = 0   ' Không ro? kie^?u
  47.     REG_SZ = 1 ' Mo^.t chuo^?i
  48.     REG_RESOURCE_LIST = 8 ' Danh sách tài nguyên
  49. End Enum
  50.  
• Hôm bây: www.tinsoftware.com ^ ^
Cố gắng lên...

Hình đại diện của người dùng
VBNewbie
Thành viên tích cực
Thành viên tích cực
Bài viết: 113
Ngày tham gia: T.Bảy 29/03/2008 7:13 pm
Đến từ: Computer
Been thanked: 3 time
Liên hệ:

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi VBNewbie » T.Năm 10/09/2009 5:27 pm

Em làm dc ct hỗ trợ 8 va 9 nhưng có một điều là nếu tạo hiệu ứng chạy chữ thì chạy dc 30 giây là Yahoo chấm dứt việc thay đổi Status của bạn . T - T

Pác nào có cách chạy chữ dc lâu pày em với ! :D
-------[[[[[[[ VMind - PM trắc nghiệm đa năng ]]]]]]]]------
http://vmind.co.cc/vmind
-------[[[[ Diễn đàn trí tuệ Việt Nam ! ]]]]]]]]-----
http://vmind.co.cc

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi gatoi_it » T.Năm 10/09/2009 5:29 pm

VBNewbie đã viết:Em làm dc ct hỗ trợ 8 va 9 nhưng có một điều là nếu tạo hiệu ứng chạy chữ thì chạy dc 30 giây là Yahoo chấm dứt việc thay đổi Status của bạn . T - T

Pác nào có cách chạy chữ dc lâu pày em với ! :D


mạng mày chuối, 1mb/s mà đòi chạy thì chạy cái gì
giải pháp là lúc thay thì cho nó sleep 1 lúc đi (chém 1 tí)
XFARM.CC

Hình đại diện của người dùng
VBNewbie
Thành viên tích cực
Thành viên tích cực
Bài viết: 113
Ngày tham gia: T.Bảy 29/03/2008 7:13 pm
Đến từ: Computer
Been thanked: 3 time
Liên hệ:

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi VBNewbie » T.Năm 10/09/2009 5:30 pm

Ac, cap wang 3mb/s nha ong !

Muon nghi thi phai nghi 1 phut, hic nghi vay thi khoi lam ! T - T
-------[[[[[[[ VMind - PM trắc nghiệm đa năng ]]]]]]]]------
http://vmind.co.cc/vmind
-------[[[[ Diễn đàn trí tuệ Việt Nam ! ]]]]]]]]-----
http://vmind.co.cc

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi gatoi_it » T.Năm 10/09/2009 5:33 pm

VBNewbie đã viết:Ac, cap wang 3mb/s nha ong !

Muon nghi thi phai nghi 1 phut, hic nghi vay thi khoi lam ! T - T


cáp quang cơ à, mày chơi sang hơn anh mà suốt ngày ra quán tải :-?
nghỉ gì 1 phút cơ chú em? khoảng 10 giây
à mà thằng này ko viết có dấu, đề nghị cán bộ xử lí
XFARM.CC

Hình đại diện của người dùng
VBNewbie
Thành viên tích cực
Thành viên tích cực
Bài viết: 113
Ngày tham gia: T.Bảy 29/03/2008 7:13 pm
Đến từ: Computer
Been thanked: 3 time
Liên hệ:

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi VBNewbie » T.Tư 16/09/2009 9:30 pm

Pác nào có code ghi vào subkeyvalue registry chử unicode hok , share em với, cái của pác Tín chỉ lưu vào Key thui :D
-------[[[[[[[ VMind - PM trắc nghiệm đa năng ]]]]]]]]------
http://vmind.co.cc/vmind
-------[[[[ Diễn đàn trí tuệ Việt Nam ! ]]]]]]]]-----
http://vmind.co.cc

Hình đại diện của người dùng
thuongall
Quản trị
Quản trị
Bài viết: 455
Ngày tham gia: T.Tư 26/01/2005 8:05 am
Đến từ: Quê hương Đồng Khởi
Been thanked: 9 time
Liên hệ:

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi thuongall » T.Tư 16/09/2009 10:11 pm

Ghi Unicode vào SubKey hay Key cũng như nhau, vấn đề mấu chốt là thay các hàm A sang W mà thôi, còn lại thì code như bình thường.

Hình đại diện của người dùng
VBNewbie
Thành viên tích cực
Thành viên tích cực
Bài viết: 113
Ngày tham gia: T.Bảy 29/03/2008 7:13 pm
Đến từ: Computer
Been thanked: 3 time
Liên hệ:

Re: Thay đổi status trong yahoo

Gửi bàigửi bởi VBNewbie » T.Bảy 19/09/2009 9:36 pm

:D Cảm ơn pác đã trả lời ! Em làm dc rùi !
Sửa

tr = RegSetValueExW(hResult, "", 0, KeyGiatri.REG_SZ, StrPtr(sRegDes), LenB(sRegDes))

thành

tr = RegSetValueExW(hResult, StrPtr(Subkeyname), 0, KeyGiatri.REG_SZ, StrPtr(sRegDes), LenB(sRegDes))

và sửa

Public Declare Function RegSetValueExW Lib "advapi32.dll" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As Long, ByVal cbData As Long) As Long

thành

Public Declare Function RegSetValueExW Lib "advapi32.dll" (ByVal hKey As Long, ByVal lpValueName As Long, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As Long, ByVal cbData As Long) As Long


:D :D :D Thế là dc rùi ! :D
-------[[[[[[[ VMind - PM trắc nghiệm đa năng ]]]]]]]]------
http://vmind.co.cc/vmind
-------[[[[ Diễn đàn trí tuệ Việt Nam ! ]]]]]]]]-----
http://vmind.co.cc


Quay về “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.6 khách