我想獲得一個工具欄按鈕的句柄。我知道它的ID和工具欄按鈕所在的窗口句柄。但GetDlgItem函數似乎不適用於工具欄按鈕。如何獲取工具欄按鈕的句柄?
GetDlgItem (windowHandle, buttonID);
我想也許該函數SendMessage()與正確的參數可以得到處理,但我沒有發現任何msg參數,這將有助於爲同一。
問題::任何人都可以告訴我一個函數,可以幫助我得到它的處理嗎?
我想獲得一個工具欄按鈕的句柄。我知道它的ID和工具欄按鈕所在的窗口句柄。但GetDlgItem函數似乎不適用於工具欄按鈕。如何獲取工具欄按鈕的句柄?
GetDlgItem (windowHandle, buttonID);
我想也許該函數SendMessage()與正確的參數可以得到處理,但我沒有發現任何msg參數,這將有助於爲同一。
問題::任何人都可以告訴我一個函數,可以幫助我得到它的處理嗎?
工具欄按鈕是非窗口的。沒有窗口句柄供您檢索。
如果你想自動化工具欄按鈕,那麼你應該使用UI Automation。
工具欄的按鈕沒有句柄(它們不是窗口,因爲常規按鈕)。有很多工具欄消息(TB_ *)可用於使用這些按鈕。
參考http://msdn.microsoft.com/en-us/library/bb760435(VS.85).aspx
您可以發送TB_BUTTONCOUNT信息獲取工具欄按鈕計數和創建一個簡單的循環遍歷每個按鈕和檢查,如果通過發送TB_ISBUTTONENABLED功能已停用肚裏。您還可以發送TB_GETBUTTON消息以獲取有關TBBUTTON中的每個按鈕的更多信息。
你可以發送這些消息,但它需要'WriteProcessMemory'和'ReadProcessMemory'。除非我非常誤解,否則他們不會被跨進程序。 –
我明白了。那麼,我可以用什麼信息或其他功能來點擊程序2中的工具欄按鈕? – user3552287
你這樣做我已經說過了。您使用UI自動化。我們一直在告訴你。在某些時候,你會相信我們! –
噢好吧,那麼如何單擊特定的工具欄按鈕?我的意思是我想用SendMessage(windowHandle,Msg,blah,blah)......但是我找不到合適的Msg和其他參數來完成這項工作。 BN_CLICK似乎不起作用,因爲它需要按鈕的句柄,這就是爲什麼我要求一個工具欄按鈕的句柄:P – user3552287
這是一個不同的問題。我建議你使用UI自動化。 –