📄 clientinfoview.cpp
字号:
// ClientInfoview.cpp : implementation file
//
#include "stdafx.h"
#include "Kill.h"
#include "ClientInfoview.h"
#include "ComputerDelDlg.h"
#include "ComputerAddDlg.h"
#include "MainFrm.h"
#include "ComputerChangeDlg.h"
#define COMPUTERNAME_NUM 0
#define IP_ADDRESS_NUM 1
#define COMPUTERID_NUM 7
#define ISKILLINSTALLED_NUM 3
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CClientInfoview
IMPLEMENT_DYNCREATE(CClientInfoview, CFormView)
CClientInfoview::CClientInfoview()
: CFormView(CClientInfoview::IDD)
{
//{{AFX_DATA_INIT(CClientInfoview)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
CoInitialize(NULL);
// AfxOleInit();
// m_db.CreateInstance(__uuidof(Connection));
HRESULT hRes;
try
{
hRes=m_db.CreateInstance(_T("ADODB.Connection"));
m_db->ConnectionTimeout = 8;
//连接ACCESS2000
hRes=m_db->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DataBase\\KillData.mdb",
_T(""),_T(""),adModeUnknown);
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format(_T("连接KillData.mdb数据库失败!\r\n错误信息:%s"),e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
exit(0);
}
}
CClientInfoview::~CClientInfoview()
{
}
void CClientInfoview::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CClientInfoview)
DDX_Control(pDX, IDC_DATA_TABLE_LIST, m_DataReport);
DDX_Control(pDX, IDC_SELECT_TAB, m_MotherTab);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CClientInfoview, CFormView)
//{{AFX_MSG_MAP(CClientInfoview)
ON_WM_TIMER()
ON_WM_SIZE()
ON_NOTIFY(TCN_SELCHANGE, IDC_SELECT_TAB, OnSelchangeSelectTab)
ON_COMMAND(IDR_COMPUTER_ADD, OnComputerAdd)
ON_COMMAND(IDR_COMPUTER_DELETE, OnComputerDelete)
ON_COMMAND(IDR_COMPUTER_INSTALL, OnComputerInstall)
ON_COMMAND(IDR_COMPUTER_UNINSTALL, OnComputerUninstall)
ON_COMMAND(IDR_COMPUTER_POPUP_EDIT, OnComputerPopupEdit)
ON_COMMAND(IDR_CHANGEPARENG_, OnChangepareng)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CClientInfoview diagnostics
#ifdef _DEBUG
void CClientInfoview::AssertValid() const
{
CFormView::AssertValid();
}
void CClientInfoview::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CClientInfoview message handlers
void CClientInfoview::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CFormView::OnTimer(nIDEvent);
}
void CClientInfoview::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
if(m_MotherTab.m_hWnd)
m_MotherTab.SetWindowPos(this,0,0,cx,cy,SWP_SHOWWINDOW|SWP_NOZORDER );
if(m_DataReport.m_hWnd)
// m_DataReport.SetWindowPos(this,0,23,cx,cy,SWP_SHOWWINDOW|SWP_NOZORDER );
m_DataReport.SetWindowPos(this,0,0,cx,cy,SWP_SHOWWINDOW|SWP_NOZORDER );
}
void CClientInfoview::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
m_DataReport.SetWindowPos(this,0,0,20,20,SWP_NOZORDER);
m_DataReport.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//
static struct
{
LPSTR pszText;
int uiFormat;
int width;
}columns[]={
_T("终端名称"),LVCFMT_LEFT,140,
_T("Ip地址"),LVCFMT_CENTER,120,
_T("操作系统"),LVCFMT_CENTER,140,
_T("是否安装"),LVCFMT_CENTER,100, //是否安装杀毒软件
_T("运行状态"),LVCFMT_CENTER,85, //是否运行杀毒软件
_T("软件版本"),LVCFMT_CENTER,115, //杀毒软件版本
_T("开机状态"),LVCFMT_CENTER,130, //是否开机
_T("终端编号"),LVCFMT_CENTER,30 //终端编号
};
for(int i=0,j=110;i<sizeof(columns)/sizeof(columns[0]);i++)
m_DataReport.InsertColumn(i,columns[i].pszText,columns[i].uiFormat,columns[i].width);
// m_DataReport.SetItemState(7,);
m_MotherTab.InsertItem( 0, _T("Tab1") );
m_MotherTab.InsertItem( 1, _T("Tab2") );
// m_MotherTab.InsertItem(
}
void CClientInfoview::OnSelchangeSelectTab(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int sel = m_MotherTab.GetCurSel();
switch(sel)
{
case 0:
m_DataReport.ShowWindow( SW_SHOW );
break;
case 1:
m_DataReport.ShowWindow( SW_HIDE );
break;
}
*pResult = 0;
}
void CClientInfoview::ShowClient(int GroupID)
{
_RecordsetPtr m_pTreeRecordset; //用于创建一个查询记录集
CString strSQL,strCurItem;
strSQL.Format("select * FROM Computers where ComputerGroupId = %d",GroupID);
_variant_t varSQLtcp(strSQL);
m_DataReport.DeleteAllItems();
CString tempstr;
try
{
HRESULT hTRes;
hTRes = m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pTreeRecordset->Open(varSQLtcp,
_variant_t((IDispatch *)m_db,true),
adOpenStatic,adLockOptimistic,adCmdText);
if(SUCCEEDED(hTRes))
{
TRACE(_T("连接成功!\n"));
//------------------------------------------
if (!(m_pTreeRecordset->adoEOF))
{
m_pTreeRecordset->MoveFirst();
for(int i=0;i<m_pTreeRecordset->GetRecordCount(); i++)
// while (!(m_pTreeRecordset->adoEOF))
{
m_DataReport.InsertItem(LVIF_TEXT|LVIF_STATE, i,
// "S", LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED, 0, 0);
"S", LVIS_FOCUSED, LVIS_FOCUSED, 0, 0);
tempstr=m_pTreeRecordset->GetCollect("ComputerName").bstrVal;
m_DataReport.SetItemText(i,0,tempstr);
tempstr=m_pTreeRecordset->GetCollect("IpAddress").bstrVal;
m_DataReport.SetItemText(i,1,tempstr);
tempstr=m_pTreeRecordset->GetCollect("OsType").bstrVal;
m_DataReport.SetItemText(i,2,tempstr);
if(m_pTreeRecordset->GetCollect("isInstallKill").boolVal)
m_DataReport.SetItemText(i,3,"T");
if(m_pTreeRecordset->GetCollect("isRunKill").boolVal)
m_DataReport.SetItemText(i,4,"T");
tempstr=m_pTreeRecordset->GetCollect("KillVersion").bstrVal;
m_DataReport.SetItemText(i,5,tempstr);
if(m_pTreeRecordset->GetCollect("isRunComputer").boolVal)
m_DataReport.SetItemText(i,6,"T");
tempstr.Format("%d",m_pTreeRecordset->GetCollect("ComputerId").iVal);
m_DataReport.SetItemText(i,7,tempstr);
// m_DataReport.SetIcon();
if (!(m_pTreeRecordset->adoEOF))
m_pTreeRecordset->MoveNext();
}
}
//---------------------------------------
}
}
}
catch(...)
{
return;
}
}
void CClientInfoview::OnComputerAdd()
{
// TODO: Add your command handler code here
CComputerAddDlg dlg;
if(dlg.DoModal()==IDOK)
{
CString sqlStr;
// sqlStr="insert into computers(ComputerId,ComputerGroupId,ComputerName,IpAddress,MacAddress,OsType,ServerPack,IEVersion,Langu,CpuType,CpuFreq,Memory,DiskSize,FreeDiskSize,KillVersion,isInstallKill,isRunKill,isRunComputer,isRegister,Cmd_Install,Cmd_Uninstall,IpAddressNum) ";
// sqlStr+="values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
sqlStr="insert into computers(ComputerGroupId,ComputerName,IpAddress,MacAddress,OsType,ServerPack,IEVersion,Langu,CpuType,CpuFreq,Memory,DiskSize,FreeDiskSize,KillVersion,isInstallKill,isRunKill,isRunComputer,isRegister,Cmd_Install,Cmd_Uninstall,IpAddressNum) ";
sqlStr+="values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
_CommandPtr Cmd1;
_ParameterPtr Param1,Param2,Param3,Param4,Param5,Param6,Param7,Param8,Param9,Param10,Param11,Param12,Param13,Param14,Param15,Param16,Param17,Param18,Param19,Param20,Param21,Param22;
try
{
Cmd1.CreateInstance( __uuidof( Command ) );
Cmd1->ActiveConnection = m_db;
Cmd1->CommandText = sqlStr.AllocSysString();
VARIANT v;
v.vt=VT_I2;
/*
v.iVal=dlg.m_ComputerId;
Param1 = Cmd1->CreateParameter("ComputerId",adInteger,adParamInput,-1,v );
*/
CMainFrame * pMain=(CMainFrame *)AfxGetMainWnd();
v.iVal=pMain->m_ClientTreeview->GetCurrentGroupId();
Param2 = Cmd1->CreateParameter("ComputerGroupId",adInteger,adParamInput,-1,v );
Param3 = Cmd1->CreateParameter("ComputerName",adBSTR,adParamInput,-1,dlg.m_ComputerName.AllocSysString() );
Param4 = Cmd1->CreateParameter("IpAddress",adBSTR,adParamInput,-1,dlg.m_IpAddress.AllocSysString() );
v.vt=VT_UI4;
v.ulVal=inet_addr(dlg.m_IpAddress.GetBuffer(0));
Param22=Cmd1->CreateParameter("IpAddressNum",adInteger,adParamInput,-1,v );
Param5 = Cmd1->CreateParameter("MacAddress",adBSTR,adParamInput,-1,dlg.m_MacAddress.AllocSysString() );
Param6 = Cmd1->CreateParameter("OsType",adBSTR,adParamInput,-1,dlg.m_OsType.AllocSysString() );
Param7 = Cmd1->CreateParameter("ServerPack",adBSTR,adParamInput,-1,dlg.m_ServerPack.AllocSysString() );
Param8 = Cmd1->CreateParameter("IEVersion",adBSTR,adParamInput,-1,dlg.m_IEVersion.AllocSysString() );
Param9 = Cmd1->CreateParameter("Langu",adBSTR,adParamInput,-1,dlg.m_Langu.AllocSysString() );
Param10 = Cmd1->CreateParameter("CpuType",adBSTR,adParamInput,-1,dlg.m_CpuType.AllocSysString() );
Param11 = Cmd1->CreateParameter("CpuFreq",adBSTR,adParamInput,-1,dlg.m_CpuFreq.AllocSysString() );
Param12 = Cmd1->CreateParameter("Memory",adBSTR,adParamInput,-1,dlg.m_Memory.AllocSysString() );
Param13 = Cmd1->CreateParameter("DiskSize",adBSTR,adParamInput,-1,dlg.m_DiskSize.AllocSysString() );
Param14 = Cmd1->CreateParameter("FreeDiskSize",adBSTR,adParamInput,-1,dlg.m_FreeDiskSize.AllocSysString() );
Param15 = Cmd1->CreateParameter("KillVersion",adBSTR,adParamInput,-1,dlg.m_KillVersion.AllocSysString() );
v.vt=VT_BOOL;
v.boolVal=(int)dlg.m_isInstallKill;
Param16 = Cmd1->CreateParameter("isInstallKill",adBoolean,adParamInput,-1,v );
v.boolVal=(int)dlg.m_isRunKill;
Param17 = Cmd1->CreateParameter("isRunKill",adBoolean,adParamInput,-1,v );
v.boolVal=(int)dlg.m_isRunComputer;
Param18 = Cmd1->CreateParameter("isRunComputer",adBoolean,adParamInput,-1,v );
v.boolVal=(int)dlg.m_isRegister;
Param19 = Cmd1->CreateParameter("isRegister",adBoolean,adParamInput,-1,v );
v.boolVal=(int)dlg.m_Cmd_Install;
Param20 = Cmd1->CreateParameter("Cmd_Install",adBoolean,adParamInput,-1,v );
v.boolVal=(int)dlg.m_Cmd_Uninstall;
Param21 = Cmd1->CreateParameter("Cmd_Uninstall",adBoolean,adParamInput,-1,v );
// Cmd1->Parameters->Append( Param1 );
Cmd1->Parameters->Append( Param2 );
Cmd1->Parameters->Append( Param3 );
Cmd1->Parameters->Append( Param4 );
Cmd1->Parameters->Append( Param5 );
Cmd1->Parameters->Append( Param6 );
Cmd1->Parameters->Append( Param7 );
Cmd1->Parameters->Append( Param8 );
Cmd1->Parameters->Append( Param9 );
Cmd1->Parameters->Append( Param10 );
Cmd1->Parameters->Append( Param11 );
Cmd1->Parameters->Append( Param12 );
Cmd1->Parameters->Append( Param13 );
Cmd1->Parameters->Append( Param14 );
Cmd1->Parameters->Append( Param15 );
Cmd1->Parameters->Append( Param16 );
Cmd1->Parameters->Append( Param17 );
Cmd1->Parameters->Append( Param18 );
Cmd1->Parameters->Append( Param19 );
Cmd1->Parameters->Append( Param20 );
Cmd1->Parameters->Append( Param21 );
Cmd1->Parameters->Append( Param22 );
Cmd1->Execute( NULL, NULL, adCmdText );
}
catch(...)
{
AfxMessageBox("新添加记录失败,IP地址数据冲突或者有些必要的信息没有输入");
return ;
}
}
ReFresh();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -