Rev 254 | Rev 256 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 254 | Rev 255 | ||
---|---|---|---|
Line 2085... | Line 2085... | ||
2085 | 2085 | ||
2086 | return result; |
2086 | return result; |
2087 | }
|
2087 | }
|
2088 | 2088 | ||
2089 | 2089 | ||
- | 2090 | QList<TWmiHDD> MainWindow::getWmiHDD(QString host, QString user_name, QString password) |
|
- | 2091 | {
|
|
- | 2092 | QList<TWmiHDD> result; |
|
- | 2093 | TWmiHDD hdd_tmp;
|
|
- | 2094 | bool ok; |
|
- | 2095 | QString ansver_string;
|
|
- | 2096 | ||
- | 2097 | QList<ThddSerialNumber> serNum_list; |
|
- | 2098 | serNum_list = MainWindow::getHDDSerNum(host, user_name, password); // îïðåäåëÿåì ñåðèéíûå íîìåðà äèñêîâ |
|
- | 2099 | ||
- | 2100 | ||
- | 2101 | ||
- | 2102 | ||
- | 2103 | wmiThread.setHost(host); // çàäàåì õîñò |
|
- | 2104 | wmiThread.setUser(user_name);//çàäàåì èìÿ ïîëüçîâàòåëÿ |
|
- | 2105 | wmiThread.setPassword( password); |
|
- | 2106 | wmiThread.setWmiString(tr("SELECT Caption, Manufacturer, Size, DeviceID from Win32_DiskDrive")); |
|
- | 2107 | wmiThread.start(QThread::NormalPriority); |
|
- | 2108 | ok = wmiThread.wait(10000); |
|
- | 2109 | ||
- | 2110 | ||
- | 2111 | if (ok){ |
|
- | 2112 | QTextDocument * wmiDoc = ui->textEdit_2->document(); |
|
- | 2113 | QTextCursor * wmiCursor; |
|
- | 2114 | QStringList split_new_line; // |
|
- | 2115 | QStringList fields_list; //â ýòîì ñïèñêå ñîõðàíèì ïîëÿ |
|
- | 2116 | QStringList values_list; //à â ýòîì ñïèñêå - çíà÷åíèÿ |
|
- | 2117 | wmiCursor = new QTextCursor(wmiDoc); |
|
- | 2118 | ||
- | 2119 | ||
- | 2120 | ansver_string = wmiThread.resultString(); |
|
- | 2121 | ||
- | 2122 | ||
- | 2123 | wmiCursor->insertText(ansver_string); |
|
- | 2124 | split_new_line = ansver_string.split("\n", QString::SkipEmptyParts); // ðàçáèâàåíì îòâåò íà ñòðîêè |
|
- | 2125 | if(split_new_line.count()>2) { |
|
- | 2126 | QString tmp_str;
|
|
- | 2127 | tmp_str = split_new_line.at(1); |
|
- | 2128 | fields_list = tmp_str.split("|"); |
|
- | 2129 | ||
- | 2130 | for(int i=2; i< split_new_line.count(); i++) |
|
- | 2131 | {
|
|
- | 2132 | hdd_tmp.caption = ""; |
|
- | 2133 | hdd_tmp.deviceID=""; |
|
- | 2134 | hdd_tmp.manufacturer=""; |
|
- | 2135 | hdd_tmp.serialNumber=""; |
|
- | 2136 | hdd_tmp.size=0; |
|
- | 2137 | tmp_str = split_new_line.at(i); |
|
- | 2138 | values_list = tmp_str.split("|"); |
|
- | 2139 | int index_tmp; |
|
- | 2140 | index_tmp = fields_list.indexOf(tr("Caption")); // íàçâàíèå äèñêà |
|
- | 2141 | if ((index_tmp!=-1) && (index_tmp < values_list.count())) hdd_tmp.caption = values_list.at(index_tmp); |
|
- | 2142 | index_tmp = fields_list.indexOf(tr("Manufacturer")); // ïðîèçâîäèòåëü äèñêà |
|
- | 2143 | if ((index_tmp!=-1) && (index_tmp < values_list.count())) hdd_tmp.manufacturer = values_list.at(index_tmp); |
|
- | 2144 | ||
- | 2145 | ||
- | 2146 | ||
- | 2147 | ||
- | 2148 | index_tmp = fields_list.indexOf(tr("Size")); // Ðàçìåð äèñêà |
|
- | 2149 | if ((index_tmp!=-1) && (index_tmp < values_list.count())) { |
|
- | 2150 | ||
- | 2151 | QString size_str;
|
|
- | 2152 | bool ok; |
|
- | 2153 | size_str = values_list.at(index_tmp); |
|
- | 2154 | int size_int=0; |
|
- | 2155 | long size_lng; |
|
- | 2156 | size_int = size_str.toInt(&ok); |
|
- | 2157 | size_lng = size_str.toLong(&ok); |
|
- | 2158 | hdd_tmp.size= size_lng; |
|
- | 2159 | }
|
|
- | 2160 | ||
- | 2161 | ||
- | 2162 | ||
- | 2163 | ||
- | 2164 | index_tmp = fields_list.indexOf(tr("DeviceID")); // èäåíòèôèêàòîð äèñêà äèñêà |
|
- | 2165 | if ((index_tmp!=-1) && (index_tmp < values_list.count())) { |
|
- | 2166 | hdd_tmp.deviceID = values_list.at(index_tmp); |
|
- | 2167 | for (int k=0; k < serNum_list.count(); k++){ |
|
- | 2168 | if ((serNum_list.at(k).deviceID == hdd_tmp.deviceID)&&(serNum_list.at(k).deviceID !="")) hdd_tmp.serialNumber = serNum_list.at(k).serialNumber; |
|
- | 2169 | }
|
|
- | 2170 | ||
- | 2171 | }
|
|
- | 2172 | result << hdd_tmp; |
|
- | 2173 | ||
- | 2174 | ||
- | 2175 | ||
- | 2176 | ||
- | 2177 | }; |
|
- | 2178 | ||
- | 2179 | return result; |
|
- | 2180 | }
|
|
- | 2181 | else return result; //ïîëó÷èëè íå êîððåêòíûé îòâåò |
|
- | 2182 | int m; |
|
- | 2183 | m++; |
|
- | 2184 | }
|
|
- | 2185 | else { |
|
- | 2186 | wmiThread.stop(); |
|
- | 2187 | ok = wmiThread.wait(10000); |
|
- | 2188 | int k; |
|
- | 2189 | k++; |
|
- | 2190 | }
|
|
- | 2191 | ||
- | 2192 | ||
- | 2193 | ||
- | 2194 | ||
- | 2195 | ||
- | 2196 | ||
- | 2197 | ||
- | 2198 | ||
- | 2199 | ||
- | 2200 | return result; |
|
- | 2201 | ||
- | 2202 | }
|
|
- | 2203 | ||
- | 2204 | ||
- | 2205 | ||
- | 2206 | QList<ThddSerialNumber> MainWindow::getHDDSerNum(QString host, QString user_name, QString password){ |
|
- | 2207 | ||
- | 2208 | QList<ThddSerialNumber> result; |
|
- | 2209 | ThddSerialNumber serNum_tmp;
|
|
- | 2210 | bool ok; |
|
- | 2211 | QString ansver_string;
|
|
- | 2212 | ||
- | 2213 | ||
- | 2214 | wmiThread.setHost(host); // çàäàåì õîñò |
|
- | 2215 | wmiThread.setUser(user_name);//çàäàåì èìÿ ïîëüçîâàòåëÿ |
|
- | 2216 | wmiThread.setPassword( password); |
|
- | 2217 | wmiThread.setWmiString(tr("SELECT SerialNumber, Tag FROM Win32_PhysicalMedia")); |
|
- | 2218 | wmiThread.start(QThread::NormalPriority); |
|
- | 2219 | ok = wmiThread.wait(10000); |
|
- | 2220 | ||
- | 2221 | if (ok){ |
|
- | 2222 | QTextDocument * wmiDoc = ui->textEdit_2->document(); |
|
- | 2223 | QTextCursor * wmiCursor; |
|
- | 2224 | QStringList split_new_line; // |
|
- | 2225 | QStringList fields_list; //â ýòîì ñïèñêå ñîõðàíèì ïîëÿ |
|
- | 2226 | QStringList values_list; //à â ýòîì ñïèñêå - çíà÷åíèÿ |
|
- | 2227 | wmiCursor = new QTextCursor(wmiDoc); |
|
- | 2228 | ||
- | 2229 | ||
- | 2230 | ansver_string = wmiThread.resultString(); |
|
- | 2231 | ||
- | 2232 | ||
- | 2233 | wmiCursor->insertText(ansver_string); |
|
- | 2234 | split_new_line = ansver_string.split("\n", QString::SkipEmptyParts); // ðàçáèâàåíì îòâåò íà ñòðîêè |
|
- | 2235 | if(split_new_line.count()>2) { |
|
- | 2236 | QString tmp_str;
|
|
- | 2237 | tmp_str = split_new_line.at(1); |
|
- | 2238 | fields_list = tmp_str.split("|"); |
|
- | 2239 | ||
- | 2240 | for(int i=2; i< split_new_line.count(); i++) |
|
- | 2241 | {
|
|
- | 2242 | serNum_tmp.serialNumber = ""; |
|
- | 2243 | serNum_tmp.deviceID = ""; |
|
- | 2244 | tmp_str = split_new_line.at(i); |
|
- | 2245 | values_list = tmp_str.split("|"); |
|
- | 2246 | int index_tmp; |
|
- | 2247 | index_tmp = fields_list.indexOf(tr("SerialNumber")); // ñåðèéíûé íîìåð äèñêà |
|
- | 2248 | if ((index_tmp!=-1) && (index_tmp < values_list.count())) serNum_tmp.serialNumber = values_list.at(index_tmp); |
|
- | 2249 | index_tmp = fields_list.indexOf(tr("Tag")); // èäåíòèôèêàòîð äèñêà |
|
- | 2250 | if ((index_tmp!=-1) && (index_tmp < values_list.count())) serNum_tmp.deviceID = values_list.at(index_tmp); |
|
- | 2251 | ||
- | 2252 | result << serNum_tmp; |
|
- | 2253 | ||
- | 2254 | }; |
|
- | 2255 | ||
- | 2256 | return result; |
|
- | 2257 | }
|
|
- | 2258 | else return result; //ïîëó÷èëè íå êîððåêòíûé îòâåò |
|
- | 2259 | int m; |
|
- | 2260 | m++; |
|
- | 2261 | }
|
|
- | 2262 | else { |
|
- | 2263 | wmiThread.stop(); |
|
- | 2264 | ok = wmiThread.wait(10000); |
|
- | 2265 | int k; |
|
- | 2266 | k++; |
|
- | 2267 | }
|
|
- | 2268 | ||
- | 2269 | ||
- | 2270 | ||
- | 2271 | ||
- | 2272 | ||
- | 2273 | }
|