簡體   English   中英

修改所有者繪制的控件

[英]Modifying owner drawn controls

我有一個第三方應用程序正在為其編寫加載項,並且如果可能的話,我需要能夠修改特定的對話框。 該對話框具有許多控件和組,這些控件和組似乎是所有者繪制的,因此不會將窗口句柄暴露給諸如spy ++等工具。 我歡迎您了解如何禁用此對話框上的控件。

由於我在進程內運行,因此可以使用繞行( https://www.microsoft.com/zh-cn/research/project/detours/ )來攔截函數,並使用諸如enumwindows / enumchildwindows之類的調用來查找控件的句柄然后,我可以使用NativeWindow(C#)之類的技術來覆蓋wndproc消息並進行操作。 我也熟悉setwindowshookex和掛鈎消息隊列。

只是尋找一些與所有者繪制的控件一起使用的想法和模式。 謝謝!

[Edit1]我也熟悉UI自動化(C#/ C ++)和IAccessible框架。 這些將允許我進行一些控制(電位),例如檢測鼠標單擊等,但是我希望有一些更優雅的方法。 例如:對於普通的組合框,如果有句柄,則可以使用sendmessage()向其發送CB_ *消息來操縱其內容。 如果無法獲得該句柄,該如何使用組合框來實現……鑒於它是所有者繪制的(大概)是所有者繪制的,並且是另一個所有者繪制的父級的一部分。

因此不要將窗口句柄暴露給spy ++等工具

那么就操作系統而言,它們並不是真正的控件,因此您無權直接訪問/操作它們。 該應用程序必須為其提供API或UI自動化接口。 大概該應用程序將不會提供比其真正想要的附件更多的訪問權限。

您應聯系應用作者以幫助實現您的目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM