簡體   English   中英

刪除另一個進程樹的節點/子節點(使用WinAPI)

[英]Delete nodes/childs of another process Tree (using WinAPI)

我試圖使用Win API刪除另一個進程樹中的某個子進程。

例如:有一個特定的進程擁有樹。 我要刪除Node3。

在此處輸入圖片說明

我現在可以使用TreeWalker獲得node3的“索引”:

        AutomationElement el = AutomationElement.FromHandle(--TREEHANDLE--);
        TreeWalker walker = TreeWalker.ContentViewWalker;
        int indexCounter = 0;
        for (AutomationElement child = walker.GetFirstChild(el);
            child != null;
            child = walker.GetNextSibling(child))
        {
            indexCounter++;
            if (child.Current.Name.Contains("Node3"))
            {
             //DELETE IT
            }
        }

我可以查看所有節點的文本,但是如何刪除節點?

謝謝。

沒有支持的方法可以做到這一點。 如果其他程序提供UI來編輯樹,那么您可以自動化該UI。 否則,無法以安全且受支持的方式完成此操作。

UIAutomation旨在允許自動化可以交互執行的任務。 如果您不能以交互方式執行此任務,則UIAutomation無法提供幫助。 任何通過其他方式刪除節點的嘗試都將依賴於另一個應用程序的實現細節。 因此,您需要精確地知道什么控件實現了樹。 而且刪除節點仍然很有可能使應用程序崩潰,因為可以在絕對不刪除該節點的合理假設下編寫該節點。

暫無
暫無

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

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