Beispiel #1
0
        internal static void Game_OnInput(GameInputEventArgs args)
        {
            if (args.Input.StartsWith("/"))
            {
                string[] splits = args.Input.Split(' ');
                if (splits[0] == "/~!dev")
                {
                    DevMode = true;
                    Core.PrintChat("Developer Mode is now active!", PrintType.Message);
                }
                if (splits[0] == "/load" && DevMode)
                {
                    var toLoad = Type.GetType("MAC_Reborn.Champions." + splits[1]);

                    if (toLoad != null)
                    {
                        DynamicInitializer.NewInstance(toLoad);
                    }
                }

                if (splits[0] == "/version")
                {
                    Core.PrintChat("You are using version " + Version, PrintType.Message);
                }
            }
        }
Beispiel #2
0
        public static object Resolve(Type type)
        {
            //var x =  Activator.CreateInstance(converter[type]);
            var x = DynamicInitializer.NewInstance(converter[type]);

            return(x);
        }
 private static IChampion LoadChampion()
 {
     try
     {
         var types =
             Assembly.GetAssembly(typeof(IChampion))
             .GetTypes()
             .Where(t => t.IsClass && !t.IsAbstract && typeof(IChampion).IsAssignableFrom(t))
             .ToList();
         if (types.Any())
         {
             var type =
                 types.FirstOrDefault(
                     t => t.Name.Equals(ObjectManager.Player.ChampionName, StringComparison.OrdinalIgnoreCase));
             if (type == null && Global.Testing.Enabled)
             {
                 type =
                     types.FirstOrDefault(
                         t =>
                         t.Name.Equals(
                             string.Format("{0}Testing", ObjectManager.Player.ChampionName),
                             StringComparison.OrdinalIgnoreCase));
             }
             return(type != null ? (IChampion)DynamicInitializer.NewInstance(type) : null);
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
     return(null);
 }
Beispiel #4
0
        internal static void Load()
        {
            const string @namespace = "ProSeries.Utils.Items";

            var q = from t in Assembly.GetExecutingAssembly().GetTypes()
                    where t.IsClass && t.Name != "Item" && t.Namespace == @namespace && !t.Name.Contains("<>c")
                    select t;

            q.ToList().ForEach(t => LoadItem((Item)DynamicInitializer.NewInstance(t)));
        }
Beispiel #5
0
        private static void GameEvents_GameStart()
        {
            var typec = Type.GetType("ESeries.Champions." + Player.ChampionName);

            if (typec == null)
            {
                Console.WriteLine("[ESeries] Champion not supported.");
                return;
            }

            var p = (AChampion)DynamicInitializer.NewInstance(typec);
        }
Beispiel #6
0
        internal static void Load()
        {
            try
            {
                // Check if the champion is supported
                var type = Type.GetType("ProSeries.Champions." + Player.ChampionName);
                if (type != null)
                {
                    // Load the crosshair
                    // Crosshair.Load();

                    // Load the menu.
                    Config = new Menu("ProSeries", "ProSeries", true);

                    // Add the orbwalking.
                    Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalker"));

                    // Create instance of the new type
                    DynamicInitializer.NewInstance(type);

                    // Load whitelist harass menu
                    var wList = new Menu("Harass Whitelist", "hwl");
                    foreach (var enemy in HeroManager.Enemies)
                    {
                        wList.AddItem(new MenuItem("hwl" + enemy.ChampionName, enemy.ChampionName))
                        .SetValue(TargetSelector.GetPriority(enemy) >= 2f);
                    }

                    Config.SubMenu("harass").AddSubMenu(wList);

                    // Add ADC items usage.
                    ItemManager.Load();

                    // Add the menu as main menu.
                    Config.AddToMainMenu();

                    // Print the welcome message
                    Chat.Print("<b>Pro Series</b>: " + Player.ChampionName + " Loaded!");
                }
            }

            catch (Exception e)
            {
                Console.WriteLine(e);
                Chat.Print("ProSeries: " + Player.ChampionName + " - not Supported!");
            }
        }
Beispiel #7
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="Weight" /> class.
        /// </summary>
        public Weight()
        {
            var weights =
                Assembly.GetAssembly(typeof(IWeightItem))
                .GetTypes()
                .Where(t => t.IsClass && !t.IsAbstract && typeof(IWeightItem).IsAssignableFrom(t))
                .ToList();

            foreach (var weight in weights)
            {
                var instance = DynamicInitializer.NewInstance(weight) as IWeightItem;
                if (instance != null)
                {
                    this.pItems.Add(new WeightItemWrapper(instance));
                }
            }

            this.pItems = this.pItems.OrderBy(p => p.DisplayName).ToList();
        }
Beispiel #8
0
        private static IChampion LoadChampion()
        {
            /*
             * Search in every file of the assembly and filter it by the following statements:
             * - Has to be a class
             * - Can't be abstact
             * - Must implement the "IChampion" interface
             * - Class name must equal Champion Name, not case sensitive
             */

            var type =
                Assembly.GetAssembly(typeof(IChampion))
                .GetTypes()
                .Where(t => t.IsClass && !t.IsAbstract && typeof(IChampion).IsAssignableFrom(t))
                .FirstOrDefault(
                    t => t.Name.Equals(ObjectManager.Player.ChampionName, StringComparison.OrdinalIgnoreCase));

            // If champion class found, load / initialize it.
            return(type != null ? (IChampion)DynamicInitializer.NewInstance(type) : null);
        }
Beispiel #9
0
        internal static void Initialize()
        {
            try
            {
                Game.OnInput += Game_OnInput;
                Game.PrintChat("<font color = \"#00E5EE\">MAC:r by</font> <font color = \"#FF3300\">TehBlaxxor</font> <font color = \"#00E5EE\">is attempting to initialize..</font>");

                try
                {
                    var assembly = Type.GetType("MAC_Reborn.Champions." + Player.ChampionName);

                    if (assembly != null)
                    {
                        DynamicInitializer.NewInstance(assembly);
                        Core.PrintChat("<font color = \"#FF3300\">" + Player.ChampionName + "</font> <font color = \"#00E5EE\">was successfully loaded!</font>", PrintType.Custom);
                    }
                }
                catch (NullReferenceException)
                {
                    Game.PrintChat("<font color = \"#FF3300\">" + Player.ChampionName + "</font> <font color = \"#00E5EE\">is not supported! Orbwalker loaded!</font>");
                    Config = new Menu("MAC:r - " + Player.ChampionName, "menu", true);

                    Config.AddSubMenu(new Menu("Target Selector", "TS"));
                    Config.AddSubMenu(new Menu("Orbwalker", "Orbwalker"));

                    TargetSelector.AddToMenu(Config.SubMenu("TS"));
                    Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalker"));
                }



                Config.AddToMainMenu();
            }
            catch (Exception e)
            {
                Core.WriteException(e);
            }
        }
Beispiel #10
0
        public static void Main()
        {
            Version = Assembly.GetExecutingAssembly().GetName().Version;

            try
            {
                var type = Type.GetType("Support.Plugins." + ObjectManager.Player.ChampionName);

                if (type != null)
                {
                    Helpers.UpdateCheck();
                    Protector.Init();
                    DynamicInitializer.NewInstance(type);
                    return;
                }

                Helpers.PrintMessage(ObjectManager.Player.ChampionName + " not supported");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Beispiel #11
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="Mode" /> class.
        /// </summary>
        /// <param name="menu">The menu.</param>
        public Mode(Menu menu)
        {
            this.menu = menu;
            var modes =
                Assembly.GetAssembly(typeof(ITargetSelectorMode))
                .GetTypes()
                .Where(t => t.IsClass && !t.IsAbstract && typeof(ITargetSelectorMode).IsAssignableFrom(t))
                .ToList();

            foreach (var mode in modes)
            {
                var instance = DynamicInitializer.NewInstance(mode) as ITargetSelectorMode;
                if (instance != null)
                {
                    this.pEntries.Add(instance);
                    instance.AddToMenu(this.menu);
                }
            }

            this.pEntries = this.pEntries.OrderBy(p => p.DisplayName).ToList();

            this.menu.Add(new MenuList <string>("mode", "Mode", this.pEntries.Select(e => e.DisplayName)));

            this.menu.MenuValueChanged += (sender, args) =>
            {
                var stringList = sender as MenuList <string>;
                if (stringList != null)
                {
                    if (stringList.Name.Equals("mode"))
                    {
                        this.current = this.GeModeBySelectedIndex(stringList.Index);
                    }
                }
            };

            this.current = this.GeModeBySelectedIndex(this.menu["mode"].GetValue <MenuList <string> >().Index);
        }
Beispiel #12
0
        internal static void Load()
        {
            try
            {
                if (SupportedChampions.Contains(ObjectManager.Player.ChampionName))
                {
                    Chat.Print("<font color = \"#FFFF33\">HikiCarry: " +
                               ObjectManager.Player.ChampionName + " Loaded</font>");
                }

                else
                {
                    Chat.Print("<font color = \"#FFFF33\">HikiCarry: " +
                               ObjectManager.Player.ChampionName + " Not Supported </font>");
                }

                Config = new Menu("HikiCarry: " + Player.ChampionName, "HikiCarry", true).SetFontStyle(FontStyle.Bold, SharpDX.Color.GreenYellow);
                {
                    Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalker Settings"));


                    var type = Type.GetType("HikiCarry.Champions." + Player.ChampionName);
                    if (type != null)
                    {
                        DynamicInitializer.NewInstance(type);
                    }

                    if (ObjectManager.Player.ChampionName != "Vayne" || ObjectManager.Player.ChampionName != "Tristana")
                    {
                        Config.AddItem(
                            new MenuItem("hitchance", "Hit Chance", true).SetValue(new StringList(HitchanceNameArray, 2)))
                        .SetFontStyle(FontStyle.Italic, SharpDX.Color.Gold);
                        Config.AddItem(new MenuItem("prediction", "Prediction").SetValue(new StringList(new[] { "Common", "Sebby", "sPrediction", "SDK" }, 1)).SetFontStyle(FontStyle.Italic, SharpDX.Color.Gold))
                        .ValueChanged += (s, ar) =>
                        {
                            Config.Item("pred.info").Show(ar.GetNewValue <StringList>().SelectedIndex == 2);
                        };
                        Config.AddItem(new MenuItem("pred.info", "                 PRESS F5 FOR LOAD SPREDICTION").SetFontStyle(FontStyle.Bold))
                        .Show(Config.Item("prediction").GetValue <StringList>().SelectedIndex == 2);

                        if (Config.Item("prediction").GetValue <StringList>().SelectedIndex == 2)
                        {
                            SPrediction.Prediction.Initialize(Config, ":: SPREDICTION");
                        }
                    }

                    Config.AddItem(
                        new MenuItem("credits.x1", "                          Developed by Hikigaya").SetFontStyle(
                            FontStyle.Bold, SharpDX.Color.DodgerBlue));

                    Config.AddToMainMenu();
                }

                Activator = new Menu("HikiCarry: Activator", "HikiCarry: Activator", true).SetFontStyle(FontStyle.Bold, SharpDX.Color.GreenYellow);
                {
                    var bilgewater = new Menu("Bilgewater Settings", "Bilgewater Settings");
                    {
                        bilgewater.AddItem(new MenuItem("bilgewater", "Use (Bilgewater)").SetValue(true));
                        bilgewater.AddItem(new MenuItem("bilgewater.adc.hp", "Min ADC HP %").SetValue(new Slider(20, 1, 99)));
                        bilgewater.AddItem(new MenuItem("bilgewater.enemy.hp", "Minimum Enemy HP %").SetValue(new Slider(20, 1, 99)));
                        Activator.AddSubMenu(bilgewater);
                    }

                    var botrk = new Menu("Blade of Ruined King Settings", "Blade of Ruined King Settings");
                    {
                        botrk.AddItem(new MenuItem("botrk", "Use (BotRK)").SetValue(true));
                        botrk.AddItem(new MenuItem("botrk.adc.hp", "Min ADC HP %").SetValue(new Slider(20, 1, 99)));
                        botrk.AddItem(new MenuItem("botrk.enemy.hp", "Minimum Enemy HP %").SetValue(new Slider(20, 1, 99)));
                        Activator.AddSubMenu(botrk);
                    }

                    var youmuu = new Menu("Youmuu Settings", "Youmuu Settings");
                    {
                        youmuu.AddItem(new MenuItem("youmuu", "Use (Youmuu)").SetValue(true));
                        Activator.AddSubMenu(youmuu);
                    }

                    var cleanse = new Menu("Cleanse Settings", "Cleanse Settings");
                    {
                        var cleansedebuffs = new Menu("Cleanse Debuffs", "Cleanse Debuffs");
                        {
                            cleansedebuffs.AddItem(new MenuItem("qss.charm", "Charm").SetValue(true));
                            cleansedebuffs.AddItem(new MenuItem("qss.flee", "Flee").SetValue(true));
                            cleansedebuffs.AddItem(new MenuItem("qss.snare", "Snare").SetValue(true));
                            cleansedebuffs.AddItem(new MenuItem("qss.polymorph", "Polymorph").SetValue(true));
                            cleansedebuffs.AddItem(new MenuItem("qss.stun", "Stun").SetValue(true));
                            cleansedebuffs.AddItem(new MenuItem("qss.suppression", "Suppression").SetValue(true));
                            cleansedebuffs.AddItem(new MenuItem("qss.taunt", "Taunt").SetValue(true));
                            cleanse.AddSubMenu(cleansedebuffs);
                        }
                        cleanse.AddItem(new MenuItem("use.cleanse", "Use Cleanser Item").SetValue(true));
                        cleanse.AddItem(new MenuItem("cleanse.delay", "Max. Cleanse Delay").SetValue(new Slider(1000, 1, 2500)));
                        Activator.AddSubMenu(cleanse);
                    }

                    Activator.AddToMainMenu();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Beispiel #13
0
        public override void Activate()
        {
            base.Activate();

            // Save original body side
            mPatientBodySide = Session.PatientBodySide;

            if (!InitManually)
            {
                IEnumerable <ManualMeasurementItem> measurements = null;

                var helper = new WizardMeasurementsHelper();

                if (Parameter is string)
                {
                    var wizard = helper.GetWizard((string)Parameter);

                    if (wizard != null)
                    {
                        measurements = wizard.SelectedMeasurements;
                        mSkipMeasurementIfCompleted = wizard.Skip;
                    }
                }
                else if (Parameter is IEnumerable <ManualMeasurementItem> )
                {
                    measurements = Parameter as IEnumerable <ManualMeasurementItem>;

                    mSkipMeasurementIfCompleted = (helper.GetWizard(measurements.FirstOrDefault()?.WizardName)?.Skip).GetValueOrDefault(false);
                }

                if (ValidateMeasurementsList(measurements))
                {
                    // Init Wizard View
                    if (mWizardView == null && ProcedureContext.AllViews.TryGetValue("Wizard", out ViewRegistrar viewRegistrar))
                    {
                        var parameter = new object[] { };
                        mWizardView = DynamicInitializer.New <IWizardView>(viewRegistrar.ViewType, parameter);
                        mWizardView.Init(this, Session);
                        mWizardView.Position            = DockSide.Left;
                        mWizardView.PositionInContainer = DockContainerSide.Center;
                        DockItems = new List <IDockItem>
                        {
                            mWizardView
                        };
                    }

                    ProcedureContext.OnViewComponentChange(new ViewComponentChangeArgs(ViewComponents.OpenCC, 0));

                    // Select first procedure
                    if (NextProcedure())
                    {
                        Session.CurrentContext.ProcedureBegin -= ProcBegin;
                        Session.CurrentContext.ProcedureBegin += ProcBegin;

                        mbCanClose = false;

                        return;
                    }
                }

                Close();
            }
        }
Beispiel #14
0
 public static T Resolve <T>()
 {
     //return (T)Activator.CreateInstance(converter[typeof(T)]);
     return((T)DynamicInitializer.NewInstance(converter[typeof(T)]));
 }
        private void objmenuStrip_Click(object sender, EventArgs eventArgs)
        {
            try
            {
                Utility.WaitNow(this);

                var objmenuStrip = (ToolStripMenuItem)sender;
                string[] arrFunctionName = objmenuStrip.Tag.ToString().Split('#');
                string sFormName = arrFunctionName[0];
                string IsTabView = arrFunctionName[1];
                string sThamSo = arrFunctionName[2];
                string[] arrDllName = objmenuStrip.Name.Split('#');
                string DllName = Application.StartupPath + @"\" + arrDllName[0] + ".DLL";
                string _ID = arrFunctionName[3];
                if (File.Exists(DllName))
                {
                    if (Utility.Int32Dbnull(arrDllName[2], -1) > -1)
                    {
                        new Delete().From(SysScreen.Schema).Where(SysScreen.Columns.UserId).IsEqualTo(
                            globalVariables.UserName)
                            .And(SysScreen.Columns.RoleId).IsEqualTo(Utility.Int32Dbnull(arrDllName[2], -1)).Execute();
                        SysScreen.Insert(Utility.Int32Dbnull(arrDllName[2], -1), globalVariables.UserName, DateTime.Now);
                    }

                    Assembly assembly = Assembly.LoadFile(DllName);
                    Type[] type = assembly.GetTypes();
                    foreach (Type objType in type)
                    {
                        if (objType.Name.ToUpper() == sFormName.ToUpper())
                        {
                            if (ExistsObject(arrDllName[1])) continue;
                            if (string.IsNullOrEmpty(sThamSo))
                            {
                                object obj = new DynamicInitializer().NewInstance(objType);

                                var form = obj as Form;
                                if (form != null)
                                {
                                    if (!dic.ContainsKey(_ID))
                                    {
                                        form.Tag = _ID;
                                        if (IsTabView.Equals("1"))
                                            form.MdiParent = this;
                                        form.Text = objmenuStrip.Text;
                                        form.ShowIcon = false;
                                        form.ShowInTaskbar = false;
                                        if (IsTabView.Equals("1")) form.Show();
                                        else form.ShowDialog();
                                    }
                                    {

                                        UIMdiChildTab _item = PanelManager.FindMdiTab(dic[_ID].Form);
                                        Form frm = dic[_ID].Form;
                                        this.ActivateMdiChild(dic[_ID].Form);
                                        //frm.MdiParent = null;
                                        //frm.Visible = false;
                                        //frm.ShowDialog();
                                    }

                                }
                            }
                            else
                            {
                                object obj = new DynamicInitializer().CreateInstance(objType, new object[] { sThamSo });
                                var form = obj as Form;
                                if (form != null)
                                {
                                    if (!dic.ContainsKey(_ID))
                                    {
                                        form.Tag = _ID;
                                        if (IsTabView.Equals("1"))
                                            form.MdiParent = this;
                                        form.Text = objmenuStrip.Text;
                                        form.ShowIcon = false;
                                        form.ShowInTaskbar = false;
                                        if (IsTabView.Equals("1")) form.Show();
                                        else form.ShowDialog();
                                    }
                                    else
                                    {
                                        this.ActivateMdiChild(dic[_ID].Form);
                                        Form frm = dic[_ID].Form;
                                        this.ActivateMdiChild(dic[_ID].Form);
                                        //frm.MdiParent = null;
                                        //frm.Visible = false;
                                        //frm.ShowDialog();
                                    }
                                }
                            }
                            break;
                        }
                    }
                }
            }
            catch
            {
                Utility.DefaultNow(this);
            }
            finally
            {
                Utility.DefaultNow(this);
            }
        }
        private static void Main(string[] args)
        {
            Version = Assembly.GetExecutingAssembly().GetName().Version;

            CustomEvents.Game.OnGameLoad += a =>
            {
                try
                {
                    var type = Type.GetType("Support.Plugins." + ObjectManager.Player.ChampionName);

                    if (type != null)
                    {
                        Helpers.UpdateCheck();
                        Protector.Init();
                        //SpellDetector.Init();
                        DynamicInitializer.NewInstance(type);
                        return;
                    }

                    Helpers.PrintMessage(ObjectManager.Player.ChampionName + " not supported");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            };

            //Utils.EnableConsoleEditMode();

            //Drawing.OnDraw += a =>
            //{
            //    var offset = 0;
            //    foreach (var buff in ObjectManager.Player.Buffs)
            //    {
            //        Drawing.DrawText(100, 100 + offset, Color.Tomato,
            //            string.Format("{0} | {1} | {2} | {3} | {4} | {5} | {6}", buff.Name, buff.DisplayName,
            //                buff.Type.ToString(), buff.Count, buff.IsActive, buff.StartTime, buff.EndTime));
            //        offset += 15;
            //    }
            //};

            //Obj_AI_Base.OnProcessSpellCast += (sender, spell) =>
            //{
            //    if (!sender.IsValid<Obj_AI_Hero>())
            //    {
            //        return;
            //    }

            //    try
            //    {
            //        if (!Orbwalking.IsAutoAttack(spell.SData.Name))
            //        {
            //            var text = string.Format(
            //                "{0};{1};{2};{3};{4};{5};{6};{7};{8}{9}\n", Environment.TickCount, sender.BaseSkinName,
            //                spell.SData.Name, spell.SData.CastRadius[0], spell.SData.CastRange[0],
            //                spell.SData.CastRangeDisplayOverride[0], spell.SData.LineWidth, spell.SData.MissileSpeed,
            //                spell.SData.SpellCastTime, spell.SData.SpellTotalTime);
            //            File.AppendAllText("D:/OnProcessSpellCast-" + Game.Id + ".csv", text);
            //        }
            //    }
            //    catch (Exception e)
            //    {
            //        Console.WriteLine(e);
            //    }
            //};

            //GameObject.OnCreate += (sender, eventArgs) =>
            //{
            //    if (!sender.IsValid<Obj_SpellMissile>())
            //    {
            //        return;
            //    }

            //    try
            //    {
            //        var miss = (Obj_SpellMissile) sender;

            //        if (!miss.SpellCaster.IsValid<Obj_AI_Hero>())
            //        {
            //            return;
            //        }

            //        var text = string.Format(
            //            "{0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{10}\n", Environment.TickCount, miss.Type, miss.Name,
            //            miss.SData.Name, miss.SData.CastRadius[0], miss.SData.CastRange[0],
            //            miss.SData.CastRangeDisplayOverride[0], miss.SData.LineWidth, miss.SData.MissileSpeed,
            //            miss.SData.SpellCastTime, miss.SData.SpellTotalTime);
            //        File.AppendAllText("D:/Obj_SpellMissile-" + Game.Id + ".csv", text);
            //    }
            //    catch (Exception e)
            //    {
            //        Console.WriteLine(e);
            //    }
            //};
        }
        void DisplaySingleFunction(DataRow drSingle)
        {
            string sDllName = "";
            string sRoleName = "";
            string sFunctionName = "";
            string sThamSo = "";
            int IRoleID = Utility.Int32Dbnull(drSingle["iRoleID"], -1);
            string isTabView = Utility.sDbnull(drSingle["isTabView"], "0");
            sDllName = Utility.sDbnull(drSingle["sDLLName"], "");// objSysFunction.SDLLname;
            sFunctionName = Utility.sDbnull(drSingle["sFormName"], "");//objSysFunction.SFormName;
            sThamSo = Utility.sDbnull(drSingle["sParameterList"], "");// objChildSysRole.SParameterList;
            sRoleName = Utility.sDbnull(drSingle["sRoleName"], "");

            string _Tag = sFunctionName + "#" + isTabView + "#" + sThamSo + "#" + IRoleID.ToString();
            string _Name = sDllName + "#" + sRoleName + "#" + IRoleID.ToString();

            string[] arrFunctionName = _Tag.ToString().Split('#');
            string sFormName = arrFunctionName[0];
            string[] arrDllName = _Name.Split('#');
            string DllName = Application.StartupPath + @"\" + arrDllName[0] + ".DLL";
            string _ID = arrFunctionName[3];

            if (File.Exists(DllName))
            {
                if (Utility.Int32Dbnull(arrDllName[2], -1) > -1)
                {
                    new Delete().From(SysScreen.Schema).Where(SysScreen.Columns.UserId).IsEqualTo(
                        globalVariables.UserName)
                        .And(SysScreen.Columns.RoleId).IsEqualTo(Utility.Int32Dbnull(arrDllName[2], -1)).Execute();
                    SysScreen.Insert(Utility.Int32Dbnull(arrDllName[2], -1), globalVariables.UserName, DateTime.Now);
                }

                Assembly assembly = Assembly.LoadFile(DllName);
                Type[] type = assembly.GetTypes();
                foreach (Type objType in type)
                {
                    if (objType.Name.ToUpper() == sFormName.ToUpper())
                    {
                        if (ExistsObject(arrDllName[1])) continue;
                        if (string.IsNullOrEmpty(sThamSo))
                        {
                            object obj = new DynamicInitializer().NewInstance(objType);

                            var form = obj as Form;
                            if (form != null)
                            {
                                if (!dic.ContainsKey(_ID))
                                {
                                    form.Tag = _ID;
                                    if (isTabView.Equals("1"))
                                        form.MdiParent = this;
                                    form.Text = sRoleName;
                                    form.ShowIcon = false;
                                    form.ShowInTaskbar = false;
                                    if (isTabView.Equals("1")) form.Show();
                                    else form.ShowDialog();
                                }
                                {
                                    if (dic.ContainsKey(_ID))
                                    {
                                        UIMdiChildTab _item = PanelManager.FindMdiTab(dic[_ID].Form);
                                        this.ActivateMdiChild(dic[_ID].Form);
                                    }
                                }

                            }
                        }
                        else
                        {
                            object obj = new DynamicInitializer().CreateInstance(objType, new object[] { sThamSo });
                            var form = obj as Form;
                            if (form != null)
                            {
                                if (!dic.ContainsKey(_ID))
                                {
                                    form.Tag = _ID;
                                    if (isTabView.Equals("1"))
                                        form.MdiParent = this;
                                    form.Text = sRoleName;
                                    form.ShowIcon = false;
                                    form.ShowInTaskbar = false;
                                    if (isTabView.Equals("1")) form.Show();
                                    else form.ShowDialog();
                                }
                                else
                                {
                                    if (dic.ContainsKey(_ID))
                                    {
                                        UIMdiChildTab _item = PanelManager.FindMdiTab(dic[_ID].Form);
                                        this.ActivateMdiChild(dic[_ID].Form);
                                    }
                                }
                            }
                        }

                        break;
                    }
                }
            }
        }
        void objTreeView_MouseDown(object sender, MouseEventArgs e)
        {
            var objTreeView = (TreeView)sender;
            if (objTreeView.SelectedNode == null || !objTreeView.SelectedNode.Equals(objTreeView.GetNodeAt(e.X, e.Y)))
                objTreeView.SelectedNode = objTreeView.GetNodeAt(e.X, e.Y);
            if (e.Button != System.Windows.Forms.MouseButtons.Left) return;
            if (!PropertyLib._AppProperties.Click) return;
            try
            {
                Utility.WaitNow(this);

                //var objTreeView = (TreeView)sender;
                TreeNode objTreeNode = objTreeView.SelectedNode;

                string[] arrFunctionName = objTreeNode.Tag.ToString().Split('#');
                string sFormName = arrFunctionName[0];
                string IsTabView = arrFunctionName[1];
                string sThamSo = arrFunctionName[2];
                string[] arrDllName = objTreeNode.Name.Split('#');
                string DllName = Application.StartupPath + @"\" + arrDllName[0] + ".DLL";
                string _ID = arrFunctionName[3];

                if (File.Exists(DllName))
                {
                    if (Utility.Int32Dbnull(arrDllName[2], -1) > -1)
                    {
                        new Delete().From(SysScreen.Schema).Where(SysScreen.Columns.UserId).IsEqualTo(
                            globalVariables.UserName)
                            .And(SysScreen.Columns.RoleId).IsEqualTo(Utility.Int32Dbnull(arrDllName[2], -1)).Execute();
                        SysScreen.Insert(Utility.Int32Dbnull(arrDllName[2], -1), globalVariables.UserName, DateTime.Now);
                    }
                    Assembly assembly = Assembly.LoadFile(DllName);
                    Type[] type = assembly.GetTypes();
                    foreach (Type objType in type)
                    {
                        if (objType.Name.ToUpper() == sFormName.ToUpper())
                        {
                            if (ExistsObject(arrDllName[1])) continue;
                            if (string.IsNullOrEmpty(sThamSo))
                            {
                                object obj = new DynamicInitializer().NewInstance(objType);

                                var form = obj as Form;
                                if (form != null)
                                {
                                    if (!dic.ContainsKey(_ID))
                                    {
                                        form.Tag = _ID;
                                        if (IsTabView.Equals("1"))
                                            form.MdiParent = this;
                                        form.ShowInTaskbar = false;
                                        form.ShowIcon = false;
                                        form.Text = objTreeNode.Text;
                                        if (IsTabView.Equals("1")) form.Show();
                                        else form.ShowDialog();
                                    }
                                    {

                                        if (dic.ContainsKey(_ID))
                                        {
                                            UIMdiChildTab _item = PanelManager.FindMdiTab(dic[_ID].Form);
                                            this.ActivateMdiChild(dic[_ID].Form);
                                        }
                                        //frm.MdiParent = null;
                                        //frm.Hide();
                                        //frm.ShowDialog();
                                    }

                                }
                            }
                            else
                            {
                                object obj = new DynamicInitializer().CreateInstance(objType, new object[] { sThamSo });
                                var form = obj as Form;
                                if (form != null)
                                {
                                    if (!dic.ContainsKey(_ID))
                                    {
                                        form.Tag = _ID;
                                        if (IsTabView.Equals("1"))
                                            form.MdiParent = this;
                                        form.Text = objTreeNode.Text;
                                        form.ShowIcon = false;
                                        form.ShowInTaskbar = false;
                                        if (IsTabView.Equals("1")) form.Show();
                                        else form.ShowDialog();
                                    }
                                    else
                                    {
                                        if (dic.ContainsKey(_ID))
                                        {
                                            UIMdiChildTab _item = PanelManager.FindMdiTab(dic[_ID].Form);
                                            this.ActivateMdiChild(dic[_ID].Form);
                                        }
                                    }
                                }
                            }

                            break;
                        }
                    }
                }
            }
            catch
            {
                Utility.DefaultNow(this);
            }
            finally
            {
                Utility.DefaultNow(this);
            }
        }