在電腦裡怎麼才只能登錄你自己的QQ
如果你不想別人用你的電腦登錄QQ時,有什麼好辦法嗎?因為很多朋友用我的電腦來登錄QQ聊天,所以最近在整QQ的檔,找到一個方法能讓自己愛機上的QQ只有自己的能登陸,這樣一來就可以忽悠一下室友了。為了方便。我用VB6寫了一個簡單的工具,下面就來跟大家分享一下吧!
方法:
在QQ的安裝目錄下有一個檔“WizardCtrl.dll”動態連結程式庫檔,將該檔刪除、改名或者移動到其他的目錄中。此後,你會發現在QQ登錄對話方塊中輸入未出現在列表中的QQ號碼時,點擊“登錄”按鍵後,QQ程式就會自動消失,看看進程管理中也是沒有QQ.exe,說明它已經自己結束了!但是之前已登陸過的QQ,在號碼下拉欄中有的QQ號,這些就可以順利的登陸了。這說明,我們只要事先把我們的QQ號登陸過,其他的號碼刪除就可以了。
知道了這個方法之後就好辦了。為了步驟簡易化,我們嘗試用程式設計實現。這裡我選擇的是將“WizardCtrl.dll”動態連結程式庫檔改名的方法,接下來我們打開VB6,一起來把這個小工具寫出來吧!不廢話了,開始進入主題,介面如圖1。
圖1(略|就一個command按鈕控制項)
代碼以及解釋如下:
’打開一個系統登錄中現有的項
Private 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
’關閉系統登錄中的一個項或鍵
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
’獲取系統登錄中一個項的值
Private 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
’定義讀取註冊表時要用到的變數
Dim lBuffer As Long
Dim sBuffer As String
Dim hKey As Long
Dim lType As Long
’通過註冊表讀取QQ安裝目錄
Public Function GetQQPathValue(sValue As String) As Long
’定義變數 rtn 存放鍵位
Dim rtn As Long
rtn = RegOpenKeyEx(&H80000002, "SoftwareTENCENTQQ",
0, &H20000 Or &H1& Or
&H8& Or &H10&, hKey)
’判斷該項是否存在。
If rtn <> 0& Then
’不存在
GetQQPathValue = rtn
’不存在則給 sValue 變數賦值,方便後面做判斷。
sValue = "Not Path"
’退出過程
Exit Function
End If
GetQQPathValue = RegQueryValueEx(hKey, "Install", 0, lType, ByVal 0, lBuffer)
lBuffer = 255
sBuffer = Space(lBuffer)
GetQQPathValue = RegQueryValueEx(hKey, "Install", 0, lType,
ByVal sBuffer, lBuffer)
’取得QQ安裝目錄
sValue = Left(sBuffer, InStr(sBuffer, Chr(0)) - 1)
’關閉 hKey 鍵
RegCloseKey hKey
End Function
Private Sub Command1_Click()
’定義變數 strQQPath ,用來存放QQ安裝目錄。
Dim strQQPath As String
’讀取QQ安裝目錄,並且賦予變數 strQQPath 。
GetQQPathValue strQQPath
Debug.Print strQQPath
’當未安裝QQ時提示用戶。
If strQQPath = "Not Path" Then
MsgBox "本機未安裝QQ,或未找到QQ安裝目錄。", vbExclamation, "提示"
End If
’判斷 WizardCtrl.dll 檔是否存在。
If Dir(strQQPath & "WizardCtrl.dll", vbNormal) <> "" Then
’改名實現鎖定QQ只有自己能登陸
Name strQQPath & "WizardCtrl.dll" As strQQPath & "WizardCtrl.dll.bak"
Command1.Caption = "解鎖QQ任何人都可以登陸"
ElseIf Dir(strQQPath & "WizardCtrl.dll.bak", vbNormal) <> "" Then
’還原
Name strQQPath & "WizardCtrl.dll.bak" As strQQPath & "WizardCtrl.dll"
Command1.Caption = "鎖定QQ只有自己能登陸"
End If
End Sub
好了,這樣我們的這個小工具就完成了。代碼中主要應用到了系統的API實現讀取註冊表項取得QQ安裝路徑的方法,還用到了Name…As…改檔案名或資料夾名的基本語句來實現。
在電腦裡怎麼才只能登錄你自己的QQ |