Ajout de certaines fonctionnalité

Bonjour, je travail actuellement sur un bot de market et j’ai relativement fini. Cependant, il m’arrive dans certains cas que le bot clique sur sur le haut des colonnes ce qui change l’ordre croissant/décroissant. Ce qui ralenti la mise à jours des orders. Ainsi, j’aurais besoin d’acces aux méthodes permettant de de savoir si s’est croissant/décroissant dans le market. Plus précisément, dans les “Détails” (Sellers/Buyers) et dans “My Orders” (Shelling/Buying) de toute les colonnes.

Aussi, lors du changement du prix, parfois, le curseur peut être dans un autre “InputText” ce qui écrit des choses qui ne devrais pas être écrit à ces endroits. Ainsi, j’aurais besoin d’un acces à une méthode me permettant de savoir si le curseur est actif dans l’“InputText”. Où peut être, je pense que cela ne sera pas suffisant, car parfois le curseur n’est pas visible et cela écrit quand même…

J’aurais aussi besoin de savoir si le texte est selectionné…

Merci

savoir si s’est croissant:

How about this?:

bool IsAscending(IEnumerable<int> seq) {     int? last = null;          foreach(var elem in seq)     {         if(elem < last)             return     false;          last = elem;     }          return true; }

Il faudrait aussi l’“InputText” de la QuickbarView

Et aussi, quel est le “VirtualKeyCode.” de la roulette haut et bas

Aussi, j’aimerais pouvoir double cliquer dans une zone

Bonjour, j’ai certain tracas au sujet du bot. Je suis sûr que cela n’arrive pas seulement a moi. Supposont cela :

Tab RunningTab => WindowRegionalMarket?.RightTabGroup?.ListTab?.FirstOrDefault(color => (color?.LabelColorOpacityMilli == 1500));

Cette ligne donne l’onglet qui est actuellement actif dans le market. Alors, pour verifier si par exemple l’onglet “my orders” est actif j’utilise cette ligne:

 RunningTab?.Label?.Text?.RegexMatchSuccessIgnoreCase("my orders")) ?? false

Mais cela ne fonctionne pas tout le temps!?.. même si l’onglet “my orders” est actif!?.. Et pas seulement dans ce cas précis. Pour remedier a ce problème, il faut seulement relancer eve et le bot! Alors, je me demande pourquoi cela arrive?

Aussi, j’aimerais pouvoir double cliquer dans une zone

You can do that using this code:

Sanderling.MotionExecute(Name_Of_The_UIElement_Identifying_the_Zone.MouseDoubleClick(MouseButtonIdEnum.Left));

Il faudrait aussi l’“InputText” de la QuickbarView

Maybe this is not present in the API already. If you show me a process sample with the text “sample input Text” entered, I can probably take a look at how to read this.

Et aussi, quel est le “VirtualKeyCode.” de la roulette haut et bas

Not sure what you mean. Why do you think that somethin like that exists?

Je voudrais double cliquer dans le input text de la fenêtre MarketAction sans cliquer sur les petites flèche haut et bas. Pour ce qui est de la roulette de la souris je nesais pas c’est pour cela que je demande

Je voudrais double cliquer dans le input text de la fenêtre MarketAction sans cliquer sur les petites flèche haut et bas.

If the subregion you want to click on does not have its own UIElement, you can do this to avoid the adjacent controls:

Constrain the region of the mouseclick to a smaller rectangle. You can implement this by adding the following functions to your script:

using Bib3.Geometrik;

MotionParam MouseClickWithRegionSubstituted(
	IUIElement destination,
	RectInt region,
	MouseButtonIdEnum mouseButton,
	int repetitionCount = 0) =>
	new MotionParam
	{
		MouseListWaypoint = new[] { new MotionParamMouseRegion { UIElement = destination, RegionReplacement = region, } },
		MouseButton = new[] { mouseButton },
		MouseButtonRepetitionCount = repetitionCount,
	};
 bool IsAscending(IEnumerable<string> seq) {     return true;     string last = null;     foreach(var elem in seq)     {         if(elem.CompareTo(last) < 0)             return false;         last = elem;     }     return true; }

But if I use it with srtring in the my orders it dont work correctly. It beacause the bot ignore the entry under the truc (truc qui permet de classser dans l’ordre les lignes) and it change the sequence of entry by cliking on it… I’im deasimpointed lol

 WindowRegionalMarket?.MyOrders?.SellOrderView?.Entry?.FirstOrDefault().MouseDoubleClick(MouseButtonIdEnum.Left);

If I try to use that It doesnt work. The mouse dont move also

 WindowRegionalMarket?.MyOrders?.SellOrderView?.Entry?.FirstOrDefault().MouseDoubleClick(MouseButtonIdEnum.Left);

If I try to use that It doesnt work. The mouse dont move also

The code you posted is not to move the mouse. It is to create a description of how to move. To make Sanderling execute the described motion, pass this object to Sanderling like this:

Sanderling.MotionExecute(     WindowRegionalMarket?.MyOrders?.SellOrderView?.Entry?.FirstOrDefault().MouseDoubleClick(MouseButtonIdEnum.Left))   ;

Lol, Lol, lol, when I use it correctly it seems to click any where on the window

Sanderling.MotionExecute(MouseDoubleClickWithRegionSizeConstrainedForTextbox(BLALBLA, BLOBLOBLO))

Bonjour, je voudrais savoir si cela est en cours de développement. Je serais vraiment intéressé par cet ajout. Merci

Hello, I just looked at the sample you provided earlier. I found that you can get this UIElement using the following method:

IUIElementText GetUIElementInputLeftOfSearchButton(WindowRegionalMarket window)
{
  var searchButton =
    window?.ButtonText?.FirstOrDefault(b => b?.Text?.RegexMatchSuccessIgnoreCase("search") ?? false);

  if (searchButton == null)
    return null;

  return
    window?.InputText
    ?.FirstOrDefault(c => c?.Region.Max0 < searchButton.Region.Min0 &&
      searchButton.Region.Min1 - 10 < c?.Region.Min1 &&
      c?.Region.Max1 < searchButton.Region.Max1 + 10);
}

As you can see in the API Explorer, this UIElement is already present in the current version of the memory reading. The method above uses the search button as an anchor to look for this element.


Update:
I adjusted the method above to use the property InputText where the input control is found starting with memory reading version 16-11-17.