I. QUÁ TRÌNH THIẾT KẾ HỆ THỐNG SỐ.
La Minh Trường
Lợi dụng đặc điểm này ta có thể thay đổi các status một các dễ dàng bằng cách ghi các status vào registry một cách tự động. Sau đây tôi sẽ trình bày đoạn code minh họa việc change status một cách tự động bằng ngôn ngữ VB
Option Explicit
‘ Mot so khai bao can thiet
Public Declare Function SendMessage Lib “user32”
Alias “SendMessageA” _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function FindWindow Lib “user32”
Alias “FindWindowA” _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function RegOpenKey Lib
“advapi32.dll” Alias “RegOpenKeyA” _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegCloseKey Lib
“advapi32.dll” _
(ByVal hKey As Long) As Long
Public Declare Function RegCreateKey Lib
“advapi32.dll” Alias “RegCreateKeyA” _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegDeleteKey Lib
“advapi32.dll” Alias “RegDeleteKeyA” _
(ByVal hKey As Long, ByVal lpSubKey As String) As Long
Public Declare Function RegDeleteValue Lib
“advapi32.dll” Alias “RegDeleteValueA” _(ByVal hKey As Long, ByVal lpValueName As String) As Long
Public Declare Function RegQueryValueEx Lib
“advapi32.dll” Alias “RegQueryValueExA” _(ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Public Declare Function RegSetValueEx Lib
“advapi32.dll” Alias “RegSetValueExA” _
(ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Public Const HKEY_CURRENT_USER =
&H80000001
Public Const REG_SZ = 1 Public hCurKey As Long
‘ Change status
Sub Y_SetStatus(blah As String) Dim It As Long
It = FindWindow(“yahoobuddymain”, vbNullString)
SaveSettingString HKEY_CURRENT_USER, + “\Custom Msgs”, 1, blah ‘luu thong diep vao Registry
SendMessage It, WM_COMMAND, 388, 1&
End Sub
‘ Kiem tra xem nguoi nao la nguoi dang nhap cuoi cung
Function Y_GetLastLogin()
Y_GetLastLogin = GetSettingString(HKEY_ CURRENT_USER, “Software\Yahoo\Pager”, “Yahoo! User ID”, “Yahoo! ID”) ‘lay thong diep tu registry
End Function
‘ Doc gia tri tu registry de lay thong tin nguoi dang nhap cuoi cung
Public Function GetSettingString(hKey As Long,
strPath As String, strValue As String, Default As String) As String
Dim lngValueType As Long Dim strBuffer As String
Dim lngDataBufferSize As Long Dim intZeroPos As Integer
If Not IsEmpty(Default) Then GetSettingString = Default Else
GetSettingString = “” End If
RegOpenKey hKey, strPath, hCurKey RegQueryValueEx hCurKey, strValue, 0&, lngValueType, ByVal 0&, lngDataBufferSize If lngValueType = REG_SZ Then
strBuffer = String(lngDataBufferSize, “ “) RegQueryValueEx hCurKey, strValue, 0&, 0&, ByVal strBuffer, lngDataBufferSize
intZeroPos = InStr(strBuffer, Chr$(0)) If intZeroPos > 0 Then GetSettingString = Left$(strBuffer, intZeroPos - 1) Else GetSettingString = strBuffer End If End If RegCloseKey hCurKey End Function
‘ Luu registry, giup ban thay doi cac status
Public Sub SaveSettingString(hKey As Long, strPath
As String, strValue As String, strData As String) RegCreateKey hKey, strPath, hCurKey
RegSetValueEx hCurKey, strValue, 0, REG_SZ, ByVal strData, Len(strData)
RegCloseKey hCurKey
End Sub
Có lẽ thủ thuật này hơi khác các thủ thuật khác ở chỗ là nó không dễ thực hiện, vì để thực hiện được bạn cần có kiến thức lập trình. Tuy nhiên nếu bạn muốn sử dụng thì có thể liên hệ với toàn soạn để chép chương trình hoàn chỉnh. Chương trình này tương đối dễ sử dụng. Sau khi download về, bạn hãy giải nén vào một thư mục nào đấy, trong thư mục vừa giải nén, bạn sẽ thấ ộ à status.txt và mộ
để chạy chương trình chính, bạn sẽ thay đổi nội dung để có được các status theo ý mình bằng cách sau. Ví dụ bạn muốn status bạn có 2 câu là A và B thì bạn sẽ sử ư sau:
• Hàng 1: 2 . Hàng 1 chỉ số status bạn có
• Hàng 2: A. Các hàng từ 2 trở đi là các status bạn điền vào
• Hàng 3: B
Chú ý khi nhậ ạn không nên nhập hàng trắng, nếu không chương trình sẽ bị lỗi. Theo mặc định thì chương trình sẽ tự động change status sau mỗi 10s (Đây là khoảng thời gian tương đối ổn, nếu khoảng thời gian giữa 2 lần thay đổi quá ngắn thì chương trình sẽ phản tác dụng, có nghĩa là chỉ có bạn thấy được sự thay đổi này còn bạn của bạn thì không : D) và sẽ lặp lại cho đến khi bạn tắt chương trình.
công làm nên. Như đã nói ở trên, URL sẽ được gửi tới chương trình của bạn dưới dạng một tham số (parameter). Tùy bạn sử dụng ngôn ngữ gì để viết chương trình mà cách thức lấy tham số sẽ khác nhau. Tôi xin lấy một ví dụ bằng VB để nhiều bạn có thể hiểu. Bạn hãy cẩn thận lư ày lại, mở VB, tạo một Project mới và thêm vào đoạn Code sau, dịch đoạn code nà đó đổi tên nó thành test. exe rồi copy nó đến thư mục C: (C:\test.exe).
Private Sub Form_Load() MsgBox Command$ End Sub
Ok. Bây giờ lại khởi động lại IE và thử một lần nữa xem sao. Bạn sẽ thấy mỗi khi click vào Menu thì một Message box sẽ hiển thị link mà bạn vừa chọn hoặc URL của hình mà bạn chọn. Nếu bạn không quen lắm với khái niệm tham số của chương trình thì bạn có thể dùng vài cách khác. Ví dụ như bạn có thể lưu URL vào một khóa nào đó trong Registry (VbScript có thể làm được điều này), sau đó chương trình của bạn sẽ tìm đến khóa này để lấy cái mà nó cần. Tuy nhiên bạn hãy cố làm quen với tham số đi là vừa, nó ngắn gọn và dễ dàng. Bây giờ việc còn lại của bạn chỉ là sửa lạ test.htm phù hợp với chương trình của bạn. Cảm ơn các bạn đã đọc bài và chúc thành công !