易语言窗口c_句柄取进程名,易语言进程id取窗口句柄
易語言進程id取窗口句柄
關注:287??答案:2??mip版
解決時間 2021-02-01 14:27
提問者夏日╮悲歌
2021-01-31 17:28
我這有個進程PID:4064.
怎樣可以取這個進程下的窗口的句柄?
最佳答案
二級知識專家帞蕥
2021-01-31 18:19
GetWindowThreadProcessId(窗口句柄,進程ID)
這個可以通過窗口句柄查詢到進程ID
EnumWindows() 這個可以枚舉所有窗口的頂級窗口句柄,然后用循環判斷PID相等就可以得出這個進程的窗口句柄
全部回答
1樓此生不換的執著
2021-01-31 18:30
.版本 2
.支持庫 spec
.子程序 _按鈕1_被單擊
調試輸出 (進程id取窗口句柄 (到整數 (編輯框1.內容)))
.子程序 進程id取窗口句柄, 整數型, , 通過進程id取得該進程的窗口句柄,超時則返回零
.參數 進程id, 整數型, , 該進程的id;
.參數 窗口標題, 文本型, 可空, 模糊參數 如果為空,忽略此參數
.參數 窗口類名, 文本型, 可空, 模糊參數 如果為空,忽略此參數
.參數 超時, , 可空, 為空則無限循環
.局部變量 局_超時時間
.局部變量 局_開始時間
.局部變量 局_窗口句柄
.局部變量 局_進程id
.局部變量 局_標題, 文本型
.局部變量 局_類名, 文本型
局_開始時間 = 取啟動時間 ()
局_超時時間 = 選擇 (是否為空 (超時) 或 超時 = -1, 31536000, 超時)
.判斷循環首 (取啟動時間 () - 局_開始時間 < 局_超時時間)
局_窗口句柄 = findwindowexa_文本 (0, 局_窗口句柄, 字符 (0), 字符 (0))
.如果真 (iswindow (局_窗口句柄) = 1)
.如果真 (iswindowvisible (局_窗口句柄))
局_進程id = 窗口句柄取進程id (局_窗口句柄)
.如果真 (局_進程id = 進程id)
局_標題 = 窗口取標題 (局_窗口句柄)
局_類名 = 窗口取類名 (局_窗口句柄)
.如果真 (尋找文本 (局_標題, 窗口標題, , 假) ≠ -1)
返回 (局_窗口句柄)
.如果真結束
.如果真 (尋找文本 (局_類名, 窗口類名, , 假) ≠ -1)
返回 (局_窗口句柄)
.如果真結束
.如果真 (是否為空 (窗口標題) 或 是否為空 (窗口類名))
返回 (局_窗口句柄)
.如果真結束
.如果真結束
.如果真結束
.如果真結束
處理事件 ()
.判斷循環尾 ()
返回 (0)
.子程序 窗口取類名, 文本型, , 取指定窗口句柄的窗口類名(返回窗口類名,失敗返回空文本)
.參數 窗口句柄, 整數型, , 欲取類名的窗口句柄
.局部變量 類名, 文本型
類名 = 取空白文本 (50)
getclassnamea (窗口句柄, 類名, 50)
返回 (類名)
.子程序 窗口取標題, 文本型
.參數 窗口句柄, 整數型
.局部變量 局_緩沖區, 文本型
.局部變量 局_緩沖大小
局_緩沖大小 = getwindowtextlength (窗口句柄) + 1
局_緩沖區 = 取空白文本 (局_緩沖大小)
getwindowtexta (窗口句柄, 局_緩沖區, 局_緩沖大小)
返回 (局_緩沖區)
.子程序 窗口句柄取進程id, 整數型, , 返回進程id;
.參數 窗口句柄, 整數型
.局部變量 進程id, 整數型, , , 用于裝載進程id的變量
getwindowthreadprocessid (窗口句柄, 進程id)
返回 (進程id)
.版本 2
.dll命令 findwindowexa_文本, 整數型, "user32", "findwindowexa"
.參數 父窗口句柄, 整數型
.參數 子窗口, 整數型
.參數 類名, 文本型
.參數 標題, 文本型
.dll命令 iswindow, 整數型, "user32", "iswindow", , 窗口_句柄是否有效 判斷一個窗口句柄是否有效(非零表示成功,零表示失敗)
.參數 hwnd, 整數型
.dll命令 iswindowvisible, 邏輯型, , "iswindowvisible", , 窗口_是否可見 判斷窗口是否可見 返回真為可見,否則為不可見
.參數 hwnd, 整數型, , 要測試的那個窗口的句柄
.dll命令 getwindowthreadprocessid, 整數型, "user32.dll", "getwindowthreadprocessid", , 線程_取id
.參數 hwnd, 整數型, , 指定窗口句柄
.參數 進程標識符, 整數型, 傳址, 用于裝載進程id的變量
.dll命令 getwindowtextlength, 整數型, "user32", "getwindowtextlengtha"
.參數 hwnd, 整數型
.dll命令 getwindowtexta, 整數型, , "getwindowtexta", , 窗口_取標題
.參數 hwnd, 整數型
.參數 標題名, 文本型, 傳址
.參數 長度, 整數型
.dll命令 getclassnamea, 整數型, "user32.dll", "getclassnamea", , 窗口_取類名 為指定的窗口取得類名 以字節數表示的類名長度;排除最后的空中止字符。零表示出錯。會設置getlasterror
.參數 句柄, 整數型, , 欲獲得類名的那個窗口的句柄
.參數 文本, 文本型, 傳址, 隨同類名載入的緩沖區。預先至少必須分配nmaxcount+1個字符
.參數 文本長度, 整數型, , 由lpclassname提供的緩沖區長度;
我要舉報
如以上問答內容為低俗/色情/暴力/不良/侵權的信息,可以點下面鏈接進行舉報,我們會做出相應處理,感謝你的支持!
→點此我要舉報以上信息!←
推薦資訊
大家都在看
總結
以上是生活随笔為你收集整理的易语言窗口c_句柄取进程名,易语言进程id取窗口句柄的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Tool Suite4安装
- 下一篇: 【入门】用matlab做数字信号处理(学