台灣最大程式設計社群網站
線上人數
2283
 
會員總數:245979
討論主題:189557
歡迎您免費加入會員
討論區列表 >> C/C++ >> BCB 視窗句柄控制及修改問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
BCB 視窗句柄控制及修改問題
價值 : 150 QP  點閱數:918 回應數:2
樓主

discmis
初學者
38 29
394 64
發送站內信

請教各位前輩
小弟目前再使用BCB控制外部軟體程式介面,模擬使用者去按下按鈕的一些動作時遇到幾個問題,還請前輩們指點迷津
以下是我的code
wnd = FindWindow(NULL, "MultiBootSrv for ZLD")

HWND Packet_1 = FindWindowEx(wnd, NULL, "Edit", "");
SendMessage(Packet_1,WM_SETTEXT,0,(LPARAM)"0xFF");

HWND Packet_2 = FindWindowEx(wnd, NULL, "Edit", "");
SendMessage(Packet_2,WM_SETTEXT,0,(LPARAM)"0xE1");

HWND Packet_3 = FindWindowEx(wnd, NULL, "Edit", "");
SendMessage(Packet_3,WM_SETTEXT,0,(LPARAM)"0x01");

我想將三個Edit的欄位分別填入不同的字串進去,但是我怎麼修改,都只有Packet_1的這一個Edit元件的欄位內容會變動
其餘兩個即便Run了,填入的值都還是填在第一個Edit的欄位內,而不會填在第二個或第三個相對應的Edit元件的欄位內
不知是否有什麼方式可以讓值可以填在Edit元件相對應的欄位內呢?




搜尋相關Tags的文章: [ BCB句柄 ] , [ Edit元件 ] ,
本篇文章發表於2016-12-09 09:48
1樓
最有價值解答

JoJo
檢舉此回應

How to get hWnd of Edit Box when there are more than one?
FindWindowEx function
本篇文章回覆於2016-12-09 13:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

discmis
檢舉此回應
感謝前輩指點迷津提供相關訊息的連結
使用該連結內的方式即可讓我順利移到我想要的Edit元件上,並填入相對應的值
//Get first occuring Edit box
IntPtr edithWnd = FindWindowEx(mainhWnd, IntPtr.Zero, "TEdit", "");
//And the second
edithWnd = FindWindowEx(mainhWnd, edithWnd, "TEdit", "");
//And finally the one I want
edithWnd = FindWindowEx(mainhWnd, edithWnd, "TEdit", "");

感謝前輩...雙手奉上點數 請笑納
本篇文章回覆於2016-12-09 16:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.