2087,3 → 2087,187 |
} |
|
|
QList<TWmiHDD> MainWindow::getWmiHDD(QString host, QString user_name, QString password) |
{ |
QList<TWmiHDD> result; |
TWmiHDD hdd_tmp; |
bool ok; |
QString ansver_string; |
|
QList<ThddSerialNumber> serNum_list; |
serNum_list = MainWindow::getHDDSerNum(host, user_name, password); // îïðåäåëÿåì ñåðèéíûå íîìåðà äèñêîâ |
|
|
|
|
wmiThread.setHost(host); // çàäàåì õîñò |
wmiThread.setUser(user_name);//çàäàåì èìÿ ïîëüçîâàòåëÿ |
wmiThread.setPassword( password); |
wmiThread.setWmiString(tr("SELECT Caption, Manufacturer, Size, DeviceID from Win32_DiskDrive")); |
wmiThread.start(QThread::NormalPriority); |
ok = wmiThread.wait(10000); |
|
|
if (ok){ |
QTextDocument * wmiDoc = ui->textEdit_2->document(); |
QTextCursor * wmiCursor; |
QStringList split_new_line; // |
QStringList fields_list; //â ýòîì ñïèñêå ñîõðàíèì ïîëÿ |
QStringList values_list; //à â ýòîì ñïèñêå - çíà÷åíèÿ |
wmiCursor = new QTextCursor(wmiDoc); |
|
|
ansver_string = wmiThread.resultString(); |
|
|
wmiCursor->insertText(ansver_string); |
split_new_line = ansver_string.split("\n", QString::SkipEmptyParts); // ðàçáèâàåíì îòâåò íà ñòðîêè |
if(split_new_line.count()>2) { |
QString tmp_str; |
tmp_str = split_new_line.at(1); |
fields_list = tmp_str.split("|"); |
|
for(int i=2; i< split_new_line.count(); i++) |
{ |
hdd_tmp.caption = ""; |
hdd_tmp.deviceID=""; |
hdd_tmp.manufacturer=""; |
hdd_tmp.serialNumber=""; |
hdd_tmp.size=0; |
tmp_str = split_new_line.at(i); |
values_list = tmp_str.split("|"); |
int index_tmp; |
index_tmp = fields_list.indexOf(tr("Caption")); // íàçâàíèå äèñêà |
if ((index_tmp!=-1) && (index_tmp < values_list.count())) hdd_tmp.caption = values_list.at(index_tmp); |
index_tmp = fields_list.indexOf(tr("Manufacturer")); // ïðîèçâîäèòåëü äèñêà |
if ((index_tmp!=-1) && (index_tmp < values_list.count())) hdd_tmp.manufacturer = values_list.at(index_tmp); |
|
|
|
|
index_tmp = fields_list.indexOf(tr("Size")); // Ðàçìåð äèñêà |
if ((index_tmp!=-1) && (index_tmp < values_list.count())) { |
|
QString size_str; |
bool ok; |
size_str = values_list.at(index_tmp); |
int size_int=0; |
long size_lng; |
size_int = size_str.toInt(&ok); |
size_lng = size_str.toLong(&ok); |
hdd_tmp.size= size_lng; |
} |
|
|
|
|
index_tmp = fields_list.indexOf(tr("DeviceID")); // èäåíòèôèêàòîð äèñêà äèñêà |
if ((index_tmp!=-1) && (index_tmp < values_list.count())) { |
hdd_tmp.deviceID = values_list.at(index_tmp); |
for (int k=0; k < serNum_list.count(); k++){ |
if ((serNum_list.at(k).deviceID == hdd_tmp.deviceID)&&(serNum_list.at(k).deviceID !="")) hdd_tmp.serialNumber = serNum_list.at(k).serialNumber; |
} |
|
} |
result << hdd_tmp; |
|
|
|
|
}; |
|
return result; |
} |
else return result; //ïîëó÷èëè íå êîððåêòíûé îòâåò |
int m; |
m++; |
} |
else { |
wmiThread.stop(); |
ok = wmiThread.wait(10000); |
int k; |
k++; |
} |
|
|
|
|
|
|
|
|
|
return result; |
|
} |
|
|
|
QList<ThddSerialNumber> MainWindow::getHDDSerNum(QString host, QString user_name, QString password){ |
|
QList<ThddSerialNumber> result; |
ThddSerialNumber serNum_tmp; |
bool ok; |
QString ansver_string; |
|
|
wmiThread.setHost(host); // çàäàåì õîñò |
wmiThread.setUser(user_name);//çàäàåì èìÿ ïîëüçîâàòåëÿ |
wmiThread.setPassword( password); |
wmiThread.setWmiString(tr("SELECT SerialNumber, Tag FROM Win32_PhysicalMedia")); |
wmiThread.start(QThread::NormalPriority); |
ok = wmiThread.wait(10000); |
|
if (ok){ |
QTextDocument * wmiDoc = ui->textEdit_2->document(); |
QTextCursor * wmiCursor; |
QStringList split_new_line; // |
QStringList fields_list; //â ýòîì ñïèñêå ñîõðàíèì ïîëÿ |
QStringList values_list; //à â ýòîì ñïèñêå - çíà÷åíèÿ |
wmiCursor = new QTextCursor(wmiDoc); |
|
|
ansver_string = wmiThread.resultString(); |
|
|
wmiCursor->insertText(ansver_string); |
split_new_line = ansver_string.split("\n", QString::SkipEmptyParts); // ðàçáèâàåíì îòâåò íà ñòðîêè |
if(split_new_line.count()>2) { |
QString tmp_str; |
tmp_str = split_new_line.at(1); |
fields_list = tmp_str.split("|"); |
|
for(int i=2; i< split_new_line.count(); i++) |
{ |
serNum_tmp.serialNumber = ""; |
serNum_tmp.deviceID = ""; |
tmp_str = split_new_line.at(i); |
values_list = tmp_str.split("|"); |
int index_tmp; |
index_tmp = fields_list.indexOf(tr("SerialNumber")); // ñåðèéíûé íîìåð äèñêà |
if ((index_tmp!=-1) && (index_tmp < values_list.count())) serNum_tmp.serialNumber = values_list.at(index_tmp); |
index_tmp = fields_list.indexOf(tr("Tag")); // èäåíòèôèêàòîð äèñêà |
if ((index_tmp!=-1) && (index_tmp < values_list.count())) serNum_tmp.deviceID = values_list.at(index_tmp); |
|
result << serNum_tmp; |
|
}; |
|
return result; |
} |
else return result; //ïîëó÷èëè íå êîððåêòíûé îòâåò |
int m; |
m++; |
} |
else { |
wmiThread.stop(); |
ok = wmiThread.wait(10000); |
int k; |
k++; |
} |
|
|
|
|
|
} |