推 cumo:謝謝你的回答~請問為什麼不能用destroywindow這個function 02/09 08:47
※ 引述《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)