當前位置:首頁 » 視頻軟體 » 怎樣通過窗口句柄找到對應軟體

怎樣通過窗口句柄找到對應軟體

發布時間: 2022-06-11 23:34:22

① vb實現輸入窗口句柄就能找到指定窗口並顯示窗口信息的程序

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Sub Command1_Click()
Dim n As Long
Dim str1 As String
Dim h As Long, h1 As String
Dim p As RECT
h1 = InputBox("請輸入窗口句柄", , Me.hwnd)
If IsNumeric(h1) Then
If Int(h1) = Val(h1) Then
h = h1
Else
MsgBox "非整數"
Exit Sub
End If
Else
MsgBox "非整數"
Exit Sub
End If
str1 = String(255, 0)
n = GetWindowText(h, str1, 255)
If n <> 0 Then
MsgBox "窗口標題:" & Left(str1, InStr(str1, Chr(0)) - 1)
Else
MsgBox "錯誤"
End If

GetWindowRect h, p
MsgBox "窗口位置:Left=" & p.Left & " Top=" & p.Top & vbCrLf & "大小是:" & p.Right - p.Left & "X" & p.Bottom - p.Top
End Sub

② 急:我得到了窗口句柄,如何通過這個窗口句柄獲取對應的窗口實例

問題是這樣的:我現在只能得到了一個窗口句柄,我又想通過這個窗口句柄創建它的MDI子窗口,但我得不到MDI子窗口的Parent和Owner(其實,就是對應這個窗口句柄的相應相應實例)???謝謝

③ 由程序進程id或窗口句柄如何獲得程序名

有id的話,

1、用OpenProcess通過ID打開進程,獲得進程句柄(windows.h,kernel32.lib)
2、用GetProcessImageFileName獲得程序名(psapi.h,kernel32.lib或psapi.lib)

④ 通過窗口句柄怎麼獲得其所屬的應用程序實例句柄

用GetWindowThreadProcessId來獲取
進程ID
然後用
OpenProcess
來獲取進程
句柄
,當然你要有足夠的許可權

⑤ 易語言怎麼通過取一個窗口的句柄就讓這個易程序在這個窗口下運行 解決問題了給30分

.版本
2
.支持庫
eAPI
.支持庫
iext
.子程序
__啟動窗口_創建完畢
.局部變數
進...

⑥ 獲得其他程序的句柄以後如何判斷它是什麼程序

句柄是windows分配給每一個程序中的每一個組件的唯一編碼標識,你能看到的一個窗口他有句柄,窗口內部的按鈕菜單背景音樂、圖像等等。。。。。都有句柄,對於一個程序,只有運行起來以後,才會由windows制定分配一個進程,並擁有pid,pid才是程序運行的唯一標識,如果你想知道程序的窗口句柄是否改變,那麼你需要調用winapi,不停地findwindow,隨時獲取窗口句柄進行比對

⑦ 在WINDOWS中有辦法通過窗口句柄HWND得到其窗口過程WndProc嗎

可以
使用GetWindowLong,第二個參數用GWL_WNDPROC。

具體使用可以參照下msdn,或者往上搜一下GetWindowLong的使用

⑧ 在C#中,如何根據主窗口的句柄,獲取該窗口所屬進程或者是進程的名字

The GetProcessHandleFromHwnd function retrieves a process handle from a window handle. HANDLE WINAPI GetProcessHandleFromHwnd( HWND hwnd, ); 這個函數通過窗口句柄獲得進程句柄。有了進程句柄,PID是不是就知道怎麼獲得了?什麼?不知道?那我告訴你,GetProcessId可以通過進程句柄獲得進程ID: DWORD WINAPI GetProcessId( __in HANDLE Process );

⑨ 如何通過窗體句柄獲取對應進程的名字

只能獲取最前的那個窗口句柄
.版本 2
.子程序 進程_名取句柄0, 整數型, , 找不到將返回0
.參數 進程名, 文本型
.局部變數 sHandle, 整數型
.局部變數 Pn, PROCESSENTRY32
.局部變數 lpTe, THREADENTRY32
.局部變數 Found, 整數型
.局部變數 ret, 整數型
.局部變數 sThread, 整數型
.局部變數 tFound, 整數型
sHandle = CreateToolhelp32Snapshot (15, 0)
Pn.dwsize = 296
Found = Process32First (sHandle, Pn)
.判斷循環首 (Found ≠ 0)
.如果真 (到小寫 (到文本 (Pn.szExefile)) = 到小寫 (進程名))
sThread = CreateToolhelp32Snapshot (4, 0)
lpTe.dwSize = 28
tFound = Thread32First (sThread, lpTe)
.判斷循環首 (tFound ≠ 0)
.如果真 (lpTe.th32OwnerProcessID = Pn.th32ProcessID)
EnumThreadWindows (lpTe.th32ThreadID, &EnumThreadWndProc, ret)
跳出循環 ()
.如果真結束
tFound = Thread32Next (sThread, lpTe)
.判斷循環尾 ()
CloseHandle (sThread)
跳出循環 ()
.如果真結束
Found = Process32Next (sHandle, Pn)
.判斷循環尾 ()
CloseHandle (sHandle)
返回 (ret)
.子程序 EnumThreadWndProc, 整數型
.參數 hwnd, 整數型
.參數 lParam, 整數型, 參考
.局部變數 lHwnd1, 整數型
.局部變數 lHwnd2, 整數型
lHwnd1 = GetParent (hwnd)
.判斷循環首 (lHwnd1 ≠ 0) ' 用取父窗口的方法,循環找到他祖宗.... :)
lHwnd2 = lHwnd1
lHwnd1 = GetParent (lHwnd1)
.判斷循環尾 ()
.如果真 (lHwnd2 ≠ 0)
lParam = lHwnd2
返回 (0)
.如果真結束
返回 (1)
.版本 2
.DLL命令 CreateToolhelp32Snapshot, 整數型
.參數 dwFlags, 整數型
.參數 th32ProcessID, 整數型
.DLL命令 Process32First, 整數型
.參數 hSnapShot, 整數型
.參數 uProcess, PROCESSENTRY32
.DLL命令 Thread32First, 整數型, "KERNEL32.DLL", "Thread32First"
.參數 hSnapshot, 整數型
.參數 lpte, THREADENTRY32
.DLL命令 EnumThreadWindows, 整數型, "user32", "EnumThreadWindows"
.參數 dwThreadId, 整數型
.參數 lpfn, 子程序指針
.參數 lParam, 整數型, 傳址
.DLL命令 Thread32Next, 整數型, "KERNEL32.DLL", "Thread32Next"
.參數 hSnapshot, 整數型
.參數 lpte, THREADENTRY32
.DLL命令 CloseHandle, 整數型, "kernel32"
.參數 hObject, 整數型
.DLL命令 Process32Next, 整數型
.參數 hSnapShot, 整數型
.參數 uProcess, PROCESSENTRY32
.DLL命令 GetParent, 整數型, "user32", "GetParent"
.參數 hwnd, 整數型
.版本 2
.數據類型 PROCESSENTRY32
.成員 dwsize, 整數型, , , 296
.成員 cntusage, 整數型, , , 引用數
.成員 th32ProcessID, 整數型, , , 進程標識符
.成員 th32defaultheapid, 整數型, , , 默認堆ID
.成員 th32moleid, 整數型, , , 進程模塊標識符
.成員 cntthreads, 整數型, , , 線程數
.成員 th32ParentProcessID, 整數型, , , 父進程標識符
.成員 pcpriclassbase, 整數型, , , 線程優先權
.成員 dwflags, 整數型
.成員 szExefile, 位元組型, , "260", 進程名稱
.數據類型 THREADENTRY32
.成員 dwSize, 整數型
.成員 cntUsage, 整數型
.成員 th32ThreadID, 整數型
.成員 th32OwnerProcessID, 整數型
.成員 tpBasePri, 整數型
.成員 tpDeltaPri, 整數型
.成員 dwFlags, 整數型