Beispiel #1
0
        public SictNaacProcessWirkung[] FürOptimatScritListeNaacProcessWirkungBerecne(
            SictOptimatScrit OptimatScrit,
            out bool ListeNaacProcessWirkungGeändert,
            out bool ListeNaacProcessWirkungVolsctändig)
        {
            ListeNaacProcessWirkungGeändert = false;

            if (null == OptimatScrit)
            {
                ListeNaacProcessWirkungVolsctändig = true;
                return(null);
            }

            var VorsclaagListeWirkung = OptimatScrit.VorsclaagListeWirkung;

            if (null == VorsclaagListeWirkung)
            {
                ListeNaacProcessWirkungVolsctändig = true;
                return(null);
            }

            var BisherNaacProcessListeWirkung = OptimatScrit.NaacProcessListeWirkung;

            var NaacProcessListeWirkungFeelendVorsclaagIdent = new List <Int64>();

            var NoiNaacProcessListeWirkung = new List <SictNaacProcessWirkung>();

            if (null != VorsclaagListeWirkung)
            {
                foreach (var KandidaatVorsclaagWirkung in VorsclaagListeWirkung)
                {
                    if (null == KandidaatVorsclaagWirkung)
                    {
                        continue;
                    }

                    var KandidaatVorsclaagWirkungIdent = (Int64?)KandidaatVorsclaagWirkung.Ident;

                    if (!KandidaatVorsclaagWirkungIdent.HasValue)
                    {
                        continue;
                    }

                    if (null != BisherNaacProcessListeWirkung)
                    {
                        var BisherNaacProcessWirkung =
                            BisherNaacProcessListeWirkung.FirstOrDefault((Kandidaat) => (null == Kandidaat ? null : Kandidaat.VorsclaagWirkungIdent) == KandidaatVorsclaagWirkungIdent);

                        if (null != BisherNaacProcessWirkung)
                        {
                            //	Zu diise Vorsclaag isc scun Wirkung aingetraage.
                            continue;
                        }
                    }

                    SictNaacProcessWirkung ZuVorsclaagNaacProcessWirkung = null;

                    DictVonVorsclaagWirkungIdentZuNaacProcessWirkung.TryGetValue(KandidaatVorsclaagWirkungIdent.Value, out ZuVorsclaagNaacProcessWirkung);

                    if (null != ZuVorsclaagNaacProcessWirkung)
                    {
                        NoiNaacProcessListeWirkung.Add(ZuVorsclaagNaacProcessWirkung);
                    }
                    else
                    {
                        NaacProcessListeWirkungFeelendVorsclaagIdent.Add(KandidaatVorsclaagWirkungIdent.Value);
                    }
                }
            }

            ListeNaacProcessWirkungVolsctändig = NaacProcessListeWirkungFeelendVorsclaagIdent.Count < 1;

            if (0 < NoiNaacProcessListeWirkung.Count)
            {
                ListeNaacProcessWirkungGeändert = true;

                return(Bib3.Glob.ListeEnumerableAgregiirt(
                           new IEnumerable <SictNaacProcessWirkung>[] { BisherNaacProcessListeWirkung, NoiNaacProcessListeWirkung }).ToArray());
            }
            else
            {
                return(BisherNaacProcessListeWirkung);
            }
        }
        SictNaacProcessWirkung[] ScritWirkungFüüreAus(
            SictVorsclaagNaacProcessWirkung[] VorsclaagListeWirkung,
            IntPtr GbsAingaabeWaalZiilProzesWindowHandle)
        {
            if (null == VorsclaagListeWirkung)
            {
                return(null);
            }

            var VorherForegroundWindowHandle = Bib3.Windows.User32.GetForegroundWindow();

            SictNaacProcessWirkungTailMausErgeebnis WirkungTailMausErgeebnis = null;

            var NaacZiilProcessListeWirkung = new SictNaacProcessWirkung[VorsclaagListeWirkung.Length];

            for (int VorsclaagWirkungIndex = 0; VorsclaagWirkungIndex < VorsclaagListeWirkung.Length; VorsclaagWirkungIndex++)
            {
                var VorsclaagWirkung = VorsclaagListeWirkung[VorsclaagWirkungIndex];

                var WirkungBeginZaitMili = Bib3.Glob.StopwatchZaitMikroSictInt() / 1000;

                System.Exception WirkungException = null;

                try
                {
                    var MengeKey = VorsclaagWirkung.MengeWirkungKey;

                    var MausPfaadListeWeegpunktFläce = VorsclaagWirkung.MausPfaadListeWeegpunktFläce;
                    var MausPfaadTasteLinksAin       = VorsclaagWirkung.MausPfaadTasteLinksAin;
                    var MausPfaadTasteRectsAin       = VorsclaagWirkung.MausPfaadTasteRectsAin;
                    var AingaabeText = VorsclaagWirkung.AingaabeText;

                    bool WirkungNict = false;

                    if (null != MengeKey ||
                        null != MausPfaadListeWeegpunktFläce ||
                        true == MausPfaadTasteLinksAin ||
                        true == MausPfaadTasteRectsAin ||
                        !AingaabeText.NullOderLeer())
                    {
                        if (VorherForegroundWindowHandle != GbsAingaabeWaalZiilProzesWindowHandle)
                        {
                            if (GbsAingaabeEveOnlnAutoWirkungSetForegroundNict)
                            {
                                WirkungNict = true;
                            }
                            else
                            {
                                var VersuucSetForegroundWindowErgeebnis = Bib3.Windows.User32.SetForegroundWindow(GbsAingaabeWaalZiilProzesWindowHandle);

                                if (!VersuucSetForegroundWindowErgeebnis)
                                {
                                    WirkungNict = true;
                                }
                            }
                        }
                    }

                    if (!WirkungNict)
                    {
                        var inputSimulator = new WindowsInput.InputSimulator();

                        var WirkungTailMausDauer = new SictMesungZaitraumAusStopwatch(true);

                        WirkungTailMausErgeebnis = MausWirkungFüüreAus(VorsclaagWirkung, 1, 4);

                        WirkungTailMausDauer.EndeSezeJezt();

                        if (null != MengeKey)
                        {
                            foreach (var Key in MengeKey)
                            {
                                var MengeModifier = Key.MengeModifier;

                                if (null != MengeModifier)
                                {
                                }
                                else
                                {
                                    if (null != Key.MengeKey)
                                    {
                                        foreach (var KeyKey in Key.MengeKey)
                                        {
                                            var KeyKeySictInputSimulator = Glob.VonWindowsInputKeyNaacInputSimulatorVirtualKeyCode((System.Windows.Input.Key)KeyKey);

                                            inputSimulator.Keyboard.KeyPress(KeyKeySictInputSimulator);
                                        }
                                    }
                                }
                            }
                        }

                        if (!AingaabeText.NullOderLeer())
                        {
                            inputSimulator.Keyboard.TextEntry(AingaabeText);
                        }
                    }
                }
                catch (System.Exception Exception)
                {
                    WirkungException = Exception;
                }
                finally
                {
                    var WirkungEndeZaitMili = Bib3.Glob.StopwatchZaitMikroSictInt() / 1000;

                    var WirkungErfolg = ((null == WirkungTailMausErgeebnis) ? true : WirkungTailMausErgeebnis.Erfolg) ?? false;

                    if (null != WirkungTailMausErgeebnis)
                    {
                        if (!(true == WirkungTailMausErgeebnis.Erfolg))
                        {
                        }
                    }

                    var ExceptionSictJsonAbbild = SictExceptionSictJson.ExceptionSictJson(WirkungException);

                    var NaacZiilProcessWirkung = new SictNaacProcessWirkung(
                        WirkungBeginZaitMili,
                        WirkungEndeZaitMili,
                        VorsclaagWirkung.Ident,
                        WirkungTailMausErgeebnis,
                        WirkungErfolg,
                        ExceptionSictJsonAbbild);

                    NaacZiilProcessListeWirkung[VorsclaagWirkungIndex] = NaacZiilProcessWirkung;
                }
            }

            return(NaacZiilProcessListeWirkung.ToArray());
        }