Example #1
0
        //Worker Callback
        public void AppWorkerCallBack(int msg, IntPtr wParam, IntPtr lParam)
        {
            //这是从 c++ native 调用回来的函数
            switch (msg)
            {
            case M_CALLBACK_SW_AOP_WND: break;

            case M_CALLBACK_CLEAR_ILLEGAL_TOP_WND:
            {
                StringBuilder sb = new StringBuilder(260);
                GetWindowText(wParam, sb, 260);
                FormWindowKillAsk fa = new FormWindowKillAsk("窗口名称 :" + sb.ToString(), wParam);
                fa.Show();
                MAppWorkCall3(213, fa.Handle);
                break;
            }

            case M_CALLBACK_SWITCH_IDM_ALWAYSTOP_SET: break;

            case M_CALLBACK_SWITCH_MAINGROUP_SET: formMain.GroupSwitch(wParam.ToInt32() == 1); break;

            case M_CALLBACK_SWITCH_REFESHRATE_SET: formMain.SetMainRefeshTimerInterval(wParam.ToInt32()); break;

            case M_CALLBACK_SWITCH_TOPMOST_SET: formMain.TopMost = wParam.ToInt32() == 1; break;

            case M_CALLBACK_SWITCH_CLOSEHIDE_SET: formMain.MainSettings.CloseHide = wParam.ToInt32() == 1; break;

            case M_CALLBACK_SWITCH_MINHIDE_SET: formMain.MainSettings.MinHide = wParam.ToInt32() == 1; break;

            case M_CALLBACK_GOTO_SERVICE: formMain.MainPageScMgr.ScMgrGoToService(Marshal.PtrToStringUni(wParam)); break;

            case M_CALLBACK_REFESH_SCLIST: formMain.MainPageScMgr.ScMgrRefeshList(); break;

            case M_CALLBACK_KILLPROCTREE: formMain.MainPageProcess.ProcessListKillProcTree((uint)wParam.ToInt32()); break;

            case M_CALLBACK_SPY_TOOL:
            {
                new FormSpyWindow(wParam).ShowDialog();
                break;
            }

            case M_CALLBACK_FILE_TOOL:
            {
                new FormFileTool().ShowDialog();
                break;
            }

            case M_CALLBACK_ABOUT:
            {
                new FormAbout().ShowDialog();
                break;
            }

            case M_CALLBACK_ENDTASK: formMain.MainPageProcess.ProcessListEndTask(Convert.ToUInt32(wParam.ToInt32())); break;

            case M_CALLBACK_LOADDRIVER_TOOL: new FormLoadDriver().Show(); break;

            case M_CALLBACK_SCITEM_REMOVED: formMain.MainPageScMgr.ScMgrRemoveInvalidItem(Marshal.PtrToStringUni(wParam)); break;

            case M_CALLBACK_SHOW_PROGRESS_DLG: formMain.DelingDialogShowHide(true); break;

            case M_CALLBACK_UPDATE_PROGRESS_DLG_TO_DELETEING:
            {
                formMain.DelingDialogShowHide(false);
                formMain.DelingDialogUpdate(LanuageMgr.GetStr("DeleteFiles"), 0);
                break;
            }

            case M_CALLBACK_UPDATE_PROGRESS_DLG_ALL: formMain.DelingDialogUpdate(Marshal.PtrToStringUni(wParam), lParam.ToInt32()); break;

            case M_CALLBACK_UPDATE_PROGRESS_DLG_TO_COLLECTING: formMain.DelingDialogUpdate(LanuageMgr.GetStr("CollectingFiles"), -1); break;

            case M_CALLBACK_KERNEL_INIT:
            {
                AppWorkerCallBack(41, IntPtr.Zero, IntPtr.Zero);
                if (MInitKernel(null))
                {
                    if (GetConfigBool("SelfProtect", "AppSetting"))
                    {
                        MAppWorkCall3(203, IntPtr.Zero, IntPtr.Zero);
                    }
                }
                break;
            }

            case M_CALLBACK_VIEW_HANDLES: new FormVHandles(Convert.ToUInt32(wParam.ToInt32()), Marshal.PtrToStringUni(lParam)).ShowDialog(); break;

            case M_CALLBACK_KERNEL_INIT_LIST: formMain.MainPageKernelDrvMgr.KernelListInit(); break;

            case M_CALLBACK_KERNEL_SWITCH_SHOWALLDRV: formMain.MainPageKernelDrvMgr.KernelListToggleShowAllDrv(); break;

            case M_CALLBACK_START_ITEM_REMVED: formMain.MainPageStartMgr.StartMListRemoveItem(Convert.ToUInt32(wParam.ToInt32())); break;

            case M_CALLBACK_VIEW_KSTRUCTS:
            {
                if (MCanUseKernel())
                {
                    new FormVKrnInfo(Convert.ToUInt32(wParam.ToInt32()), Marshal.PtrToStringUni(lParam)).ShowDialog();
                }
                else
                {
                    MessageBox.Show(LanuageFBuffers.Str_DriverNotLoad);
                }
                break;
            }

            case M_CALLBACK_VIEW_TIMER:
            {
                //timer
                if (MCanUseKernel())
                {
                    new FormVTimers(Convert.ToUInt32(wParam.ToInt32())).ShowDialog();
                }
                else
                {
                    MessageBox.Show(LanuageFBuffers.Str_DriverNotLoad);
                }
                break;
            }

            case M_CALLBACK_VIEW_HOTKEY:
            {
                //hotkey
                if (MCanUseKernel())
                {
                    new FormVHotKeys(Convert.ToUInt32(wParam.ToInt32())).ShowDialog();
                }
                else
                {
                    MessageBox.Show(LanuageFBuffers.Str_DriverNotLoad);
                }
                break;
            }

            case M_CALLBACK_SHOW_TRUSTED_DLG: formMain.VeryTrust(Marshal.PtrToStringUni(wParam)); break;

            case M_CALLBACK_MDETALS_LIST_HEADER_RIGHTCLICK: formMain.MainPageProcessDetails.ProcessListDetailsHeaderRightClick(wParam.ToInt32()); break;

            case M_CALLBACK_KDA: new FormKDA().ShowDialog(formMain); break;

            case M_CALLBACK_SETAFFINITY: new FormSetAffinity((uint)wParam.ToInt32(), lParam).ShowDialog(); break;

            case M_CALLBACK_UPDATE_LOAD_STATUS: formMain.StartingProgressUpdate(Marshal.PtrToStringUni(wParam)); break;

            case M_CALLBACK_SHOW_NOPDB_WARN: formMain.ShowNoPdbWarn(Marshal.PtrToStringAnsi(wParam)); break;

            case M_CALLBACK_INVOKE_LASTLOAD_STEP: formMain.Invoke(new Action(formMain.AppLastLoadStep)); break;

            case M_CALLBACK_DBGPRINT_SHOW: formMain.KDbgPrintShow(); break;

            case M_CALLBACK_DBGPRINT_CLOSE: formMain.KDbgPrintClose(); break;

            case M_CALLBACK_DBGPRINT_DATA: formMain.KDbgPrintData(Marshal.PtrToStringUni(wParam)); break;

            case M_CALLBACK_DBGPRINT_EMEPTY: formMain.KDbgPrintData(); break;

            case M_CALLBACK_SHOW_LOAD_STATUS: formMain.StartingProgressShowHide(true); break;

            case M_CALLBACK_HLDE_LOAD_STATUS: formMain.StartingProgressShowHide(false); break;

            case M_CALLBACK_MDETALS_LIST_HEADER_MOUSEMOVE: formMain.MainPageProcessDetails.ProcessListDetailsHeaderMouseMove(wParam.ToInt32(), new System.Drawing.Point(LOWORD(lParam), HIWORD(lParam))); break;

            case M_CALLBACK_KERNEL_VIELL_PRGV: new FormVPrivilege(Convert.ToUInt32(wParam.ToInt32()), Marshal.PtrToStringUni(lParam)).ShowDialog(); break;

            case M_CALLBACK_KERNEL_TOOL: formMain.ShowKernelTools(); break;

            case M_CALLBACK_HOOKS: formMain.ShowFormHooks(); break;

            case M_CALLBACK_NETMON: /*netmon*/ break;

            case M_CALLBACK_REGEDIT: /*regedit*/ break;

            case M_CALLBACK_FILEMGR: formMain.SetToFileMgr(); break;

            case M_CALLBACK_COLLAPSE_ALL: formMain.CollapseAll(); break;

            case M_CALLBACK_SIMPLEVIEW_ACT:
            {
                if (wParam.ToInt32() == 1)
                {
                    formMain.MainPageProcess.ProcessListEndCurrentApp();
                }
                else if (wParam.ToInt32() == 0)
                {
                    formMain.MainPageProcess.ProcessListSetToCurrentApp();
                }
                break;
            }

            case M_CALLBACK_UWPKILL: formMain.MainPageProcess.ProcessListKillCurrentUWP(); break;

            case M_CALLBACK_EXPAND_ALL: formMain.ExpandAll(); break;

            case M_CALLBACK_SHOW_HELP: new FormHelp().ShowDialog(); break;

            case M_CALLBACK_RUN_APP_CMD:
            {
                List <string> cmds = new List <string>();

                StringBuilder sb    = new StringBuilder(260);
                uint          count = MAppCmdGetCount();
                for (uint i = 0; i < count; i++)
                {
                    sb.Clear();
                    if (MAppCmdGetAt(i, sb, 260))
                    {
                        cmds.Add(sb.ToString());
                    }
                }

                formMain.AppDebugCmd(cmds.ToArray(), count);

                cmds.Clear();
                cmds = null;

                break;
            }

            case M_CALLBACK_VIEW_TCP:
            {
                if (formTcp == null)
                {
                    formTcp             = new FormTcp(formMain);
                    formTcp.FormClosed += FormTcp_FormClosed;
                }
                formTcp.Show();
                break;
            }

            case M_CALLBACK_RELOAD_PERF_DEVICE_LIST:
            {
                if (formMain.MainPagePerf.Inited)
                {
                    formMain.MainPagePerf.PerfReloadMoveableDevices();
                }
                break;
            }
            }
        }
Example #2
0
 private void FormTcp_FormClosed(object sender, FormClosedEventArgs e)
 {
     formTcp = null;
 }