我想枚舉使用user32.dll
窗口內的所有控件,但我不知道我需要做什麼。枚舉窗口內的所有控件
我使用EnumWindows
和EnumChildWindows
,但它不檢索窗口內的所有控件。
我想在Delphi應用程序中獲取一些標籤的文本。
我嘗試過使用Spy ++,但是它也沒有列出。
我想枚舉使用user32.dll
窗口內的所有控件,但我不知道我需要做什麼。枚舉窗口內的所有控件
我使用EnumWindows
和EnumChildWindows
,但它不檢索窗口內的所有控件。
我想在Delphi應用程序中獲取一些標籤的文本。
我嘗試過使用Spy ++,但是它也沒有列出。
IList<IntPtr> childern = new List<IntPtr>();
WNDENUMPROC enumChildProc = delegate(IntPtr hwnd, IntPtr param)
{
childern.Add(hwnd);
return true;
};
EnumChildWindows(Hwnd, enumChildProc, IntPtr.Zero);
return childern;
其Hwnd
是父窗口句柄
我正在做這樣的事情,但不檢索窗體內的所有控件。 – 2014-09-29 15:36:52
@Alexandre Vicenzi:你確定這個控件真的是窗戶嗎? – Xearinox 2014-09-29 17:43:04
我認爲這是組件。我在C#中創建了一個小應用程序,並且正常工作。 – 2014-09-29 20:11:04
Delphi的標記物是不加窗。這意味着你不可能希望爲他們獲得窗口句柄,因爲他們不是窗口。
如果Delphi VCL正確支持自動化,那麼您將能夠使用UI Automation來檢查這些控件的文本。但是VCL只支持底層Win32控件的自動化操作。由於標籤不是窗口控件,因此您運氣不佳。
唯一可以切實希望閱讀此文本的是Delphi代碼。聽起來好像這對你不可行。
Delphi使用自定義控件的範圍EnumChildWindows將無法工作。不幸的是,我不知道是否有解決方案。 – 2014-09-29 18:40:23