bool TestInitiateDockToOrWarpToBookmark(string Folder, string Bookmark) { Host.Log("dock to or warp to bookmark: '" + Bookmark + "'"); var ListSurroundingsButton = Measurement?.InfoPanelCurrentSystem?.ListSurroundingsButton; Sanderling.MouseClickRight(ListSurroundingsButton); var BookmarkMenuEntry = Measurement?.Menu?.ElementAtOrDefault(0)?.EntryFirstMatchingRegexPattern("^" + Folder + "$", RegexOptions.IgnoreCase); Sanderling.MouseClickLeft(BookmarkMenuEntry); var BookmarkMenuEntrySecond = Measurement?.Menu?.ElementAtOrDefault(1)?.EntryFirstMatchingRegexPattern("^" + Bookmark + "$", RegexOptions.IgnoreCase); Sanderling.MouseClickLeft(BookmarkMenuEntrySecond); if(null == BookmarkMenuEntry) { Host.Log("menu entry not found for bookmark: '" + Bookmark + "'"); return true; } var Menu = Measurement?.Menu?.ElementAtOrDefault(2); var DockMenuEntry = Menu?.EntryFirstMatchingRegexPattern("dock",RegexOptions.IgnoreCase); var WarpMenuEntry = Menu?.EntryFirstMatchingRegexPattern(@"warp.*withins*0",RegexOptions.IgnoreCase); var ApproachEntry = Menu?.EntryFirstMatchingRegexPattern(@"approach",RegexOptions.IgnoreCase); var MenuEntry = DockMenuEntry ?? WarpMenuEntry; if(null == MenuEntry) { if(null != ApproachEntry) { Host.Log("found menu entry '" + ApproachEntry.Text + "'. Assuming we are already there."); return false; } Host.Log("no suitable menu entry found"); return true; } Host.Log("initiating " + MenuEntry.Text); Sanderling.MouseClickLeft(MenuEntry); return false; }
Je ne comprend pas pourquoi cette fonction fonctionne seulement 1 fois sur 20. Il semble qu’il se rende généralement qu’au dossier puis arrête. Parfois avec un peu de chance il reussi.