Re: [VB6 ] 切到其他程式
※ 引述《homer0403 (人活著就是為了學會珍惜)》之銘言:
: 我想要用VB做到一個功能
: 可以偵測到其他程式的存在
: 如
: 工具列上有 "筆記本1" "筆記本2"
: 然後我寫一個貼上剪貼簿文字的程式
: 執行一個"vb貼上.exe"
: 執行之後
: 可以自動地貼一段文字如 "homer0403是大笨蛋!" 在"筆記本2"上
: 大概如這樣的功能
: 重點是
: 1. 如何抓到工具列上有什麼程式在跑
a. FindWindow
使用這個唯一的不便就在於你必須知道window title的完整字串, 使用你
提到的"筆計本1", "筆計本2"時, 還算好用, 但如果是用在 Internet
Explorer 的話, 會相當難用, 因為 IE 的 title 會隨著瀏覽的網頁而有
所不同.
b. EnumWindows
如果你是要抓所有系統正在執行的window,可以用 EnumWindows,當你抓到
所有的 window 之後, 搭配 GetWindowText, 即可取得各 Window 的標題
(window title), 並可針對各別的 hWnd (handle of Window) 過濾,或者
取得 PID 之類的.
: 2. 如何將控制權轉到"筆記本2"上
: 好讓我可以做貼上的動作
SetForegroundWindow 是必備的, 但是, 你用了之後, 可能就會發現, 它並
不是每次呼叫都會成功, 尤其是要呼叫的視窗狀態是最小化的時候, 這時候,
你可以在呼叫SetForegroundWindow前先呼叫ShowWindow(hWnd, SW_NORMAL),
或ShowWindow(hWnd, SW_RESTORE)把視窗帶出,如果再有問題,就得試試使用
SetWindowPos來改變Window的ZOrder,或者使用AttachThreadInput來連結輸
入的焦點.這些你應該都能在網路上找到使用的範例和解說.
: 至於其他部分我自己懂怎麼補完
: 預計大概是要呼叫某API程式吧
: 希望可以給我一點提示或方向
: 謝謝Orz
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.199.67
推
09/23 03:23, , 1F
09/23 03:23, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):