2016-11-28 291 views
1

當我得到桌面或Windows資源管理器文件的IUIAutomationElement時,如何獲取元素的完整路徑? 有沒有COM接口或有關的方法? 我可以使用CurrentName獲取文件的名稱。C++如何在IUIAutomation級別獲取文件的完整路徑?

+0

請不要多次問同樣的問題在一個新的問題。這不是Stack Overflow的工作方式。另外,爲什麼您需要獲取所有文件對話框中選定文件的路徑?你最終的目標是什麼? – andlabs

+0

這個問題只是'我可以在IUIAutomation級別獲得文件的路徑還是不能?'。我只是想知道這一點。這與前面的問題沒有關係。 – Empty

+0

你不能從元素本身得到全名,你必須使用包含路徑的祖先(父元素)來確定它。使用inspect(https://msdn.microsoft.com/en-us/library/windows/desktop/dd318521.aspx)來確定如何獲得它。我想根據您的瀏覽器配置如何,它可能根本不可能。 –

回答

0

有一個屬性IUIAutomationElement :: CurrentProcessId (剛剛閱讀MSDN文檔)。

其餘的可以用計算器上的另一個簡單的查詢發現: C++ Windows - How to get process path from its PID

+0

我想讓文件的路徑不是進程的。當作爲文件打開對話框的文件的IUIAutomationElement調用CurrentProcessId方法時,它將返回創建文件打開對話框的進程的進程ID。 – Empty

+0

無法獲取承載COM對象的DLL或模塊。考慮一下?只要有一個vtable加上一個指向該類的指針,就沒有機會看到誰在運行代碼,並且即使vtable目標位於DLL中,主機也可能是EXE或另一個DLL。給你一個更確切的問題,你需要什麼信息。 – xMRi

相關問題