123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370 |
- #include "envCheck.h"
- #include "ui_envCheck.h"
- #include "CAppInfo.h"
- #include "CCommonTools.h"
- #include "logproc.h"
- #include "popMsgBox.h"
- #include <QDateTime>
- envCheck::envCheck(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::envCheck)
- {
- ui->setupUi(this);
- setStyleSheet(g_appInfoPtr->m_sQssStr);
- m_MonitorEnumeratorPtr = std::make_shared<CMultiMonitorEnumerator>();
- initUI();
- m_sCameraList<<"17GuaGua Cam"
- <<"91KBOX"
- <<"e2eSoft iVCam"
- <<"e2eSoft VCam"
- <<"FaceRig Virtual Camera"
- <<"MagicCamera Capture"
- <<"MeiSe"
- <<"Virtual Cam"
- << QString::fromLocal8Bit("YY伴侣")
- <<"WebcamMax Capture"
- <<"Wecam"
- <<"Vcam "
- <<"softcam"
- <<"Vandate Virtual Camera"
- <<"video2webcam"
- <<"VCDCut Pro"
- << QString::fromLocal8Bit("9158虚拟视频")
- <<"9158Capture"
- << "Insta360 Virtual Camera"
- << QString::fromLocal8Bit("无他直播伴侣PC客户端")
- << QString::fromLocal8Bit("无他相机电脑版")
- <<"mobiola webcamera"
- << QString::fromLocal8Bit("艾米秀宝(ImiShowBox)")
- <<"video2Webcam"
- << QString::fromLocal8Bit("飞翔虚拟视频")
- << QString::fromLocal8Bit("魔力秀")
- << QString::fromLocal8Bit("YY开播")
- << QString::fromLocal8Bit("无他伴侣")
- << QString::fromLocal8Bit("视频连麦")
- << QString::fromLocal8Bit("酷狗直播伴侣")
- <<"screen-capture-recorder"
- <<"OBS Virtual Camera"
- <<"OBS-Camera"
- <<"ManyCam Virtual Webcam"
- << QString::fromLocal8Bit("小葫芦直播助手")
- <<"yyplayer"
- << QString::fromLocal8Bit("秀色直播伴侣")
- << QString::fromLocal8Bit("秀色直播助手")
- <<"Citrix HDX Web Camera";
- m_sRemoteList
- << "qq"
- <<"teamviewer"
- <<"lookmypc"
- <<"xt"
- <<"winaw32"
- <<"pcaquickconnect"
- <<"sessioncontroller"
- <<"sunloginclient"
- <<"sunloginremote"
- <<"wechat"
- <<"wemeetapp";
- m_sRemoteTipList<<"QQ"
- <<"TeamViewer"
- <<"LookMyPC"
- << QString::fromLocal8Bit("协通")
- <<"Symantec PCAnywhere"
- <<"Symantec PCAnywhere"
- <<"Symantec PCAnywhere"
- << QString::fromLocal8Bit("向日葵")
- << QString::fromLocal8Bit("向日葵")
- << QString::fromLocal8Bit("微信")
- << QString::fromLocal8Bit("腾讯会议");
- qRegisterMetaType<CSysNotice>("CSysNotice");
- connect(g_httpBllPtr.get(), &CHttpBll::sgnSysNotice, this, &envCheck::onSysNotice);
- qRegisterMetaType<CUpgrade>("CUpgrade");
- connect(g_httpBllPtr.get(), &CHttpBll::sgnUpgrade, this, &envCheck::onUpgrade);
- qRegisterMetaType<CStudentClientConfig>("CStudentClientConfig");
- connect(g_httpBllPtr.get(), &CHttpBll::sgnStudentClientConfig, this, &envCheck::onStudentClientConfig);
- qRegisterMetaType<CGetSoftwareConfig>("CGetSoftwareConfig");
- connect(g_httpBllPtr.get(), &CHttpBll::sgnGetSoftwareConfig, this, &envCheck::onGetSoftwareConfig);
- }
- envCheck::~envCheck()
- {
- delete ui;
- }
- void envCheck::onStudentClientConfig(CStudentClientConfig studentClientConfig)
- {
- if (studentClientConfig.nCode == 200)
- {
- g_appInfoPtr->m_bDisableRemoteAssistance = studentClientConfig.bDisableRemoteAssistance;
- g_appInfoPtr->m_bDisableVirtualCamera = studentClientConfig.bDisableVirtualCamera;
- }
- else
- {
- popMsg(QString::fromLocal8Bit("网络异常,请检查网络连接!"), QString::fromLocal8Bit("系统提示"), this);
- return;
- }
- if(g_appInfoPtr->m_bDisableRemoteAssistance || g_appInfoPtr->m_bDisableVirtualCamera)
- {
- CHttpRequestPackage hrp;
- hrp.sUri = QString("https://%1/oe_client/software.json").arg(g_appInfoPtr->m_sEscDomain);
- hrp.nRequestType = RequestType::rtGetSoftwareConfig;
- g_httpBllPtr->getUrl(hrp);
- }
- else
- {
- checkProc();
- }
- }
- void envCheck::onGetSoftwareConfig(CGetSoftwareConfig getSoftwareConfig)
- {
- if (getSoftwareConfig.nCode == 200)
- {
- qDebug()<<getSoftwareConfig.sSoftwareConfig.toLocal8Bit();
- QString sSoftwareConfig = QByteArray::fromBase64(getSoftwareConfig.sSoftwareConfig.toLocal8Bit());
- if(!sSoftwareConfig.isEmpty())
- {
- Json::Reader reader;
- Json::Value jsonRoot = Json::Value::null;
- if (reader.parse(sSoftwareConfig.toStdString(), jsonRoot))
- {
- QString sCamera = jsonRoot["vCamList"].asString().c_str();
- QStringList cameraList = sCamera.split("\n", QString::SkipEmptyParts);
- QString sRemoteApp = jsonRoot["remoteApp"].asString().c_str();
- QStringList remoteAppList = sRemoteApp.split("\n", QString::SkipEmptyParts);
- m_sCameraList += cameraList;
- m_sRemoteList += remoteAppList;
- m_sRemoteTipList += remoteAppList;
- }
- }
- }
- checkProc();
- }
- void envCheck::initUI()
- {
- setGeometry(0, 0, g_appInfoPtr->m_fRate*(600 - 24), g_appInfoPtr->m_fRate*340);
- ui->label_platformIcon->setGeometry(g_appInfoPtr->m_fRate*60, g_appInfoPtr->m_fRate*40,
- g_appInfoPtr->m_fRate*32, g_appInfoPtr->m_fRate*32);
- ui->label_platformTitle->adjustSize();
- ui->label_platformTitle->setGeometry(ui->label_platformIcon->x() + ui->label_platformIcon->width() + g_appInfoPtr->m_fRate*10,
- ui->label_platformIcon->y() + (ui->label_platformIcon->height() - ui->label_platformTitle->height())/2,
- ui->label_platformTitle->width(), ui->label_platformTitle->height());
- ui->label_mainHint->adjustSize();
- ui->label_mainHint->setGeometry(g_appInfoPtr->m_fRate*60, g_appInfoPtr->m_fRate*144, ui->label_mainHint->width(), ui->label_mainHint->height());
- ui->label_checkItem->adjustSize();
- ui->label_checkItem->setGeometry(ui->label_mainHint->x(), ui->label_mainHint->y() + ui->label_mainHint->height() + g_appInfoPtr->m_fRate*10,
- width(), ui->label_checkItem->height());
- if(!g_appInfoPtr->m_sVersionCode.isEmpty())
- {
- ui->label_version->setText(QString("V%1").arg(g_appInfoPtr->m_sVersionCode));
- }
- ui->label_version->adjustSize();
- ui->label_version->setGeometry(ui->label_mainHint->x(), g_appInfoPtr->m_fRate*264, g_appInfoPtr->m_fRate*300, ui->label_version->height());
- ui->label_complay->adjustSize();
- ui->label_complay->setGeometry(ui->label_version->x(), ui->label_version->y() + ui->label_version->height() + g_appInfoPtr->m_fRate*10,
- ui->label_complay->width(), ui->label_complay->height());
- }
- void envCheck::checkProc()
- {
- QString sCheckStr = "";
- if(g_appInfoPtr->m_bDisableRemoteAssistance)
- {
- ui->label_checkItem->setText(QString::fromLocal8Bit("正在检测是否存在远程桌面 …"));
- QApplication::processEvents();
- if(CCommonTools::isUseRDP())
- {
- sCheckStr = QString::fromLocal8Bit("请检测是否开启远程桌面");
- qDebug()<<QString::fromLocal8Bit("环境检测异常,")<<sCheckStr;
- }
- ui->label_checkItem->setText(QString::fromLocal8Bit("正在检测是否存在分屏 …"));
- QApplication::processEvents();
- if(m_MonitorEnumeratorPtr->getMontorNumber() > 1)
- {
- if(sCheckStr.isEmpty())
- {
- sCheckStr = QString::fromLocal8Bit("请检测是否开启分屏");
- }
- else
- {
- sCheckStr += QString::fromLocal8Bit("、分屏");
- }
- }
- }
- if(g_appInfoPtr->m_bDisableVirtualCamera)
- {
- ui->label_checkItem->setText(QString::fromLocal8Bit("正在检测是否存在虚拟摄像头 …"));
- QApplication::processEvents();
- std::vector<CameraInfo> cameraList;
- QStringList UnpassList;
- CCommonTools::listCameraDevices(cameraList, UnpassList, m_sCameraList);
- for(CameraInfo ci : cameraList)
- {
- if(ci.vid.empty() || ci.pid.empty())
- {
- if(UnpassList.indexOf(ci.name, Qt::CaseInsensitive) >= 0)
- {
- if(sCheckStr.isEmpty())
- {
- sCheckStr = QString::fromLocal8Bit("请检测是否开启虚拟摄像头%1").arg(ci.name);
- }
- else
- {
- sCheckStr += QString::fromLocal8Bit("、%1").arg(ci.name);
- }
- myDebug()<<QString::fromLocal8Bit("虚拟摄像头信息,vid:%1,pid%2:,name:%3")
- .arg(ci.vid).arg(ci.pid).arg(ci.name);
- }
- }
- }
- }
- if(!sCheckStr.isEmpty())
- {
- m_unpasslist.push_back(sCheckStr);
- myDebug()<<QString::fromLocal8Bit("环境检测异常,")<<sCheckStr;
- }
- sCheckStr = "";
- if(g_appInfoPtr->m_bDisableRemoteAssistance)
- {
- ui->label_checkItem->setText(QString::fromLocal8Bit("正在检测是否存在远程协助工具 …"));
- QApplication::processEvents();
- QStringList appList;
- CCommonTools::getAllAppNameList(appList, m_sRemoteList, m_sRemoteTipList);
- if(appList.count() > 0)
- {
- for(int i = 0; i < appList.count(); i++)
- {
- if(sCheckStr.isEmpty())
- {
- sCheckStr = QString::fromLocal8Bit("请检测是否开启%1").arg(appList[i]);
- }
- else
- {
- sCheckStr += QString::fromLocal8Bit("、%1").arg(appList[i]);
- }
- }
- }
- }
- if(!sCheckStr.isEmpty())
- {
- m_unpasslist.push_back(sCheckStr);
- myServerLog()<<QString::fromLocal8Bit("环境检测异常,")<<sCheckStr;
- }
- if(m_unpasslist.count() > 0)
- {
- emit checkUnpass();
- return;
- }
- CHttpRequestPackage hrp;
- hrp.sUri = QString("https://%1/oe_client/pc/upgrade.json").arg(g_appInfoPtr->m_sEscDomain);
- hrp.nRequestType = RequestType::rtUpgrade;
- g_httpBllPtr->getUrl(hrp);
- }
- void envCheck::startCheck()
- {
- CHttpRequestPackage hrp;
- hrp.sUri = QString("https://%1/sys_notice/org_all.json").arg(g_appInfoPtr->m_sEscDomain);
- hrp.nRequestType = RequestType::rtSysNotice;
- g_httpBllPtr->getUrl(hrp);
- }
- QStringList envCheck::unpassList()
- {
- return m_unpasslist;
- }
- void envCheck::onSysNotice(CSysNotice sysNotice)
- {
- if(sysNotice.nCode == 200)
- {
- QDateTime dtStartTime = QDateTime::fromString(sysNotice.sStartTime, "yyyy-MM-dd hh:mm:ss");
- QDateTime dtEndTime = QDateTime::fromString(sysNotice.sEndTime, "yyyy-MM-dd hh:mm:ss");
- QDateTime dtNow = QDateTime::currentDateTime();
- if(sysNotice.bEnable && dtNow < dtEndTime && dtNow > dtStartTime)
- {
- if(popMsg(sysNotice.sContent, sysNotice.sTitle, this) == QDialog::Rejected)
- {
- emit sysUpadte();
- }
- else
- {
- CHttpRequestPackage hrp;
- hrp.sUri = QString("https://%1/org_properties/byOrgDomain/%2.ecs.qmth.com.cn/studentClientConfig.json")
- .arg(g_appInfoPtr->m_sEscDomain).arg(g_appInfoPtr->m_sOrgPrefix);
- hrp.nRequestType = RequestType::rtStudentClientConfig;
- g_httpBllPtr->getUrl(hrp);
- }
- }
- else
- {
- CHttpRequestPackage hrp;
- hrp.sUri = QString("https://%1/org_properties/byOrgDomain/%2.ecs.qmth.com.cn/studentClientConfig.json")
- .arg(g_appInfoPtr->m_sEscDomain).arg(g_appInfoPtr->m_sOrgPrefix);
- hrp.nRequestType = RequestType::rtStudentClientConfig;
- g_httpBllPtr->getUrl(hrp);
- // checkProc();
- }
- }
- else
- {
- m_unpasslist.push_back(QString::fromLocal8Bit("网络连接不畅"));
- emit checkUnpass();
- }
- }
- void envCheck::onUpgrade(CUpgrade upgrade)
- {
- if(upgrade.nCode == 200)
- {
- bool bUpdateVersion = false;
- if(g_appInfoPtr->m_nVersionId != upgrade.nBuild)
- {
- g_appInfoPtr->m_nVersionId = upgrade.nBuild;
- g_appInfoPtr->m_sVersionCode = upgrade.sVersion;
- g_appInfoPtr->m_sUpgradeUrl = upgrade.sUpgradeUrl;
- bUpdateVersion = true;
- }
- emit checkpassed(bUpdateVersion);
- }
- else
- {
- m_unpasslist.push_back(QString::fromLocal8Bit("网络连接不畅"));
- emit checkUnpass();
- }
- }
|