Exemple #1
0
        private void AppOnExit()
        {
            if (!exitCalled)
            {
                baseProcessRefeshTimer.Stop();

                AppSaveSettings();
                AppUnLoadPages();

                fileSystemWatcher.EnableRaisingEvents = false;

                mainNativeBridge.AppWorkerCallBack(38, IntPtr.Zero, IntPtr.Zero);
                DelingDialogClose();

                mainPageUserMgr.UsersListUnInit();
                mainPagePerf.PerfClear();

                mainPageProcess.ProcessListFreeAll();
                mainPageProcessDetails.ProcessListDetailsUnInit();
                MSCM_Exit();
                mainPageKernelDrvMgr.KernelListUnInit();
                M_LOG_Close();
                if (SysVer.IsWin8Upper())
                {
                    mainPageUwpMgr.AppHistoryUninit();
                    mainPageUwpMgr.UWPListUnInit();
                    M_UWP_UnInit();
                }
                MAppWorkCall3(204, IntPtr.Zero, IntPtr.Zero);
                MAppWorkCall3(207, Handle, IntPtr.Zero);
                exitCalled = true;
            }
        }
Exemple #2
0
        private void AppOnPreLoad()
        {
            //初始化函数

            //初始化桥
            mainNativeBridge = new MainNativeBridge(this);
            mainNativeBridge.exitCallBack = AppExit;
            mainNativeBridge.terminateImporantWarnCallBack = TermintateImporantProcess;
            mainNativeBridge.coreWndProc = (WNDPROC)Marshal.GetDelegateForFunctionPointer(MAppSetCallBack(IntPtr.Zero, 0), typeof(WNDPROC));
            mainNativeBridge.InitCallbacks();

            _isNativeBridgeLoaded = true;

            MainSettings = new MainSettings(this);

            //加载设置和所有页的代码
            AppLoadPages();
            AppLoadSettings();
            AppLoadAllMenuStyles();

            //标题
            SetConfig("LastWindowTitle", "AppSetting", Text);
            Text = GetConfig("Title", "AppSetting", "任务管理器");
            if (Text == "")
            {
                Text = LanuageFBuffers.Str_AppTitle;
            }

            new System.Threading.Thread(mainPagePerf.PerfInitTray).Start();

            //系统位数
#if _X64_
            Log("64 Bit OS ");
            Is64OS = true;
#else
            Is64OS = MIs64BitOS();
            Log(Is64OS ? "64 Bit OS but 32 bit app " : "32 Bit OS");
#endif
            IsAdmin = MIsRunasAdmin();

            //判断是否支持通用应用(win8 以上)
            SysVer.Get();
            if (!SysVer.IsWin8Upper())
            {
                tabControlMain.TabPages.Remove(tabPageUWPCtl);
            }
            else
            {
                M_UWP_Init();
            }

            //提升权限
            if (!MGetPrivileges())
            {
                TaskDialog.Show(LanuageMgr.GetStr("FailedGetPrivileges"), LanuageFBuffers.Str_AppTitle, "", TaskDialogButton.OK, TaskDialogIcon.Warning);
            }

            //tab 头 的自定义
            TaskMgrTabHeader tabHeader = new TaskMgrTabHeader(tabControlMain);
            Controls.Add(tabHeader);
            tabHeader.Dock   = DockStyle.Top;
            tabHeader.Height = 27;
            tabHeader.BringToFront();
            tabHeader.Font = tabControlMain.Font;
            if (IsSimpleView)
            {
                tabHeader.Visible = false;
            }

            //Shell Icon
            IntPtr shellIconPtr   = MGetShieldIcon2();
            Icon   shellIcon      = Icon.FromHandle(shellIconPtr);
            Bitmap shellIcoBtimap = MainUtils.IconToBitmap(shellIcon, 16, 16);

            check_showAllProcess.Image     = shellIcoBtimap;
            linkRebootAsAdmin.Image        = shellIcoBtimap;
            linkRestartAsAdminDriver.Image = shellIcoBtimap;

            DestroyIcon(shellIconPtr);
        }