線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1758
推到 Plurk!
推到 Facebook!

[問題]如何在自己的程式中控制Windows的其他視窗動作

尚未結案
gump996
一般會員


發表:10
回覆:8
積分:3
註冊:2002-10-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-24 15:11:30 IP:218.172.xxx.xxx 未訂閱
請問各位前輩:     我想在自己寫的程式中去模擬鍵盤及滑鼠的動作來執行其他的程式,  而不是使用ShellExecute命令,  在下面的程式碼中我想對「新資料夾」中的某一個程式做執行的動作,  (我很直覺的想就是把它Focus起來,然後按下Enter,不知這樣對不對?)  但是程式卻沒如我所想的被執行,請問各位前輩應該要如何做呢?     
    HWND handle;        handle = ::FindWindow(NULL, "新資料夾");
    if(::IsWindow(handle)) {
      ::ShowWindow(handle, SW_SHOWMINIMIZED);
      ::ShowWindow(handle, SW_SHOWNORMAL);
      ::PostMessage(handle, WM_SETFOCUS, 0, 0);
      ::PostMessage(handle, WM_KEYDOWN, VK_RETURN, 0);
    }
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-20 02:20:33 IP:211.76.xxx.xxx 未訂閱
下盲棋的話, 我的建議是使用如自動導向飛彈的Debug tool. 我的建議是用VC 附的Spy 雖然BCB有附WinSight32, 但是感覺上爛到不行, 要找什麼都不能馬上找到 用Spy 的"Find", 會有一個靶標的東東, 拉到你要玩的視窗上去 就可以看到那個視窗的Handle等等的一些information 而且你可以看到一般所謂的"Folder"所屬的Handle下還有ComboBoxEx32, Edit...etc 如果完全不知道要control那一個"Handle的情況下 1. 用FindWindow找到其中的一個Handle 2. 使用這個Handle往下找其他的Handle 3. 對Handle丟Message, 試試看會不會動 repeat 2, 3 steps 等找到後, 你就可以寫出一個完整的自動控制其他Windows的程式 而這樣的流程正是Windows的精神所在, 只要知道Handle, 對Handle丟適當的Message, Windows就會幫你作好你想要的behavior
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-20 03:23:25 IP:61.228.xxx.xxx 未訂閱
我跟你說為什麼, 因為你的 "新資料夾" 重新被 focus 時得到 focus 的是在 Address 那個欄位中(我用的英文版的 WIN2000) 中文不知叫什麼, 總知就是顯示所在位置的那個欄位. 要使你的方法 work, 還要依不同的作業系統, 不同的設定, 多送好幾個 tab, 然後再送 enter 才行, 你不覺得這種方法即不穩定, 而且還真醜, 我建議你把環境及想要達成的目的開個新主題, 看看大家有沒有好方法來解決. Jesse Chan
------
Jesse Chan
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-20 09:39:13 IP:61.221.xxx.xxx 未訂閱
我想這個問題 庵找 hagar 大仔來加入 討論討論 也許能有 合併大法喔 哈哈 ********************************************************* 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together! 希望能大家敞開心胸,將知識寶庫結合一起
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-04-19 9:11:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!