看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《cumo ()》之銘言: : 有個關於關閉指定視窗的問題想請問各位大大 : 我的程式要去關閉某一個由IE開啟的網頁 : 我是先用FindWindow去找到該網頁的hwnd : 然後由此hwnd去關閉該網頁 : 我的程式如下: 你是要關掉 視窗 不是嗎?? : Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ : ByVal lpClassName As String, _ : ByVal lpWindowName As String _ : ) As Long 以下的 API 根本用不到 : Private Declare Function DestroyWindow Lib "user32" ( _ : ByVal hwnd As Long _ : ) As Long : Private Declare Function MoveWindow Lib "user32" ( _ : ByVal hwnd As Long, _ : ByVal x As Long, _ : ByVal y As Long, _ : ByVal nWidth As Long, _ : ByVal nHeight As Long, _ : ByVal bRepaint As Long _ : ) As Long : Private Declare Function ShowWindow Lib "user32" ( _ : ByVal hwnd As Long, _ : ByVal nCmdShow As Long _ : ) As Long 你要 宣告 POSTMESSAGE API Declare Function PostMessage Lib "user32" Alias "PostMessageA" _ (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long Public Const WM_CLOSE = &H10 : Dim myhwnd As Long : Private Sub Command1_Click() : myhwnd = FindWindow(vbNullString, "XXXXXXXXXXXXX") : MsgBox myhwnd : End Sub : Private Sub Command2_Click() : DestroyWindow myhwnd : 'MoveWindow myhwnd, 20, 50, 800, 600, 1 : 'ShowWindow myhwnd, 0 看不懂,你要關 ,為什麼又要 MOVE 又要SHOW ? POSTMESSAGE &H10 給 指定的HWND不就好了??? PostMessage myhwnd, WM_CLOSE, 0&, 0& : End Sub : 1.當我按command1時,該網頁的hwnd數值有出現,但我按了command2時, : 該視窗都不會關閉,寫成Call DestroyWindow (myhwnd)也是一樣, : 但是如果是執行MoveWindow或ShowWindow時卻都沒問題 : 2.當我在測試MoveWindow時,如果該視窗最小化到工具列時,除非第一次執行該程式, : 不然也都沒有作用,不會按照我設定的數值呈現 : 請問這是哪裡出了問題呢 : 找了很多方法(用postmessage與sendmessage...)都沒有用 : 謝謝 -- ████ █ ★ ████ █ █ █ █ █ █ █ █ █ 超 級 熱 烈 歡 迎 █ ████ █ █ █ ████ █ █ █ █ █ ███★ █ █ 歡迎到嘉義版! ★███ █ █ █ █ █ █ █ 訊馳電腦-路徑嘉義市林森西路496號(05)2244-526順發斜對面 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.214.220 ※ 編輯: chinoyan 來自: 220.133.214.220 (02/09 02:07)
cumo:謝謝你的回答~請問為什麼不能用destroywindow這個function 02/09 08:47