馬毓祥 發表於 2019-6-1 08:35:09

VB 2010 楓之谷斯福 偵測遊戲

Public Function OpenProcessByProcessName(ByVal lpName As String) As Long
        Dim PE32 As PROCESSENTRY32
        Dim hSnapshot As Long
        pid = 0
        hSnapshot = CreateToolhelp32Snapshot(2, 0&) 'TH32CS_SNAPPROCESS = 2
        PE32.dwSize = Len(PE32)
        Process32First(hSnapshot, PE32)
        While pid = 0 And CBool(Process32Next(hSnapshot, PE32))
            If Right$(LCase$(Left$(PE32.szExeFile, InStr(1, PE32.szExeFile, Chr(0)) - 1)), Len(lpName)) = LCase$(lpName) Then
                pid = PE32.th32ProcessID
            End If
        End While
        CloseHandleAPI(hSnapshot)
        OpenProcessByProcessName = OpenProcess()
    End Function
    Public Function OpenProcessByWindow(ByVal lpWindowName As String, Optional ByVal lpClassName As String = vbNullString) As Long
        hWnd = FindWindow(lpClassName, lpWindowName)
        GetWindowThreadProcessId(hWnd, pid)
        OpenProcessByWindow = OpenProcess(pid)
        hprocess = OpenProcessAPI(PROCESS_ALL_ACCESS, False, pid)
    End Function

End Module

OpenProcessByWindow("惡犬谷", "StartUpDlgClass")
        If pid <> 0 Then
            MsgBox("遊戲鎖定成功囉!", 64, "FirstProject_Tipe")
        Else
            MsgBox("鎖定遊戲失敗!", 16, "FirstProject_Error")
        End If
    End Sub
End Class


怎麼偵測不到

blackk 發表於 2019-6-24 15:25:37

惡犬谷 這個不是進程 名稱壓

奶茶喔 發表於 2019-6-24 15:38:22

酷 偵測惡犬谷 這是視窗名 他那是偵測進程名

程式見習者 發表於 2019-6-26 21:29:53

OpenProcessByWindow("惡犬谷", "StartUpDlgClass")

可以改成

OpenProcessByWindow("視窗名稱", vbNullString)




註:
1."視窗名稱"不需要加上.exe

2.工作ˋ管理員->應用程式頁->裡面的就是視窗名稱哦
頁: [1]
查看完整版本: VB 2010 楓之谷斯福 偵測遊戲