Редакция 249 | Только различия | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 249 | Редакция 250 | ||
---|---|---|---|
1 | 1 | #include "wmithread.h"
|
|
2 | 2 | ||
3 | 3 | WmiThread::WmiThread(QObject *parent) : |
|
4 | 4 | QThread(parent) |
|
5 | 5 | {
|
|
6 | 6 | // woker.moveToThread(this);
|
|
7 | 7 | mutex.lock(); |
|
8 | 8 | stopped = false; |
|
9 | 9 | mutex.unlock(); |
|
10 | 10 | ||
11 | 11 | // connect(&process, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandartProcessOutput()));
|
|
12 | 12 | // connect(&process, SIGNAL(readyReadStandardError()), this, SLOT(readStandartProcessError()));
|
|
13 | 13 | ||
14 | 14 | ||
15 | 15 | ||
16 | 16 | }
|
|
17 | 17 | ||
18 | 18 | void WmiThread::run(){ |
|
19 | 19 | ||
20 | 20 | ||
21 | 21 | QEventLoop loop; // = new QEventLoop(); |
|
22 | 22 | Woker woker; // îáúåêò äëÿ ðàáîòû â òåëå ïîòîêà |
|
23 | 23 | ||
24 | 24 | // connect(&woker, SIGNAL(workEnd()), this, SLOT(wokerIsStopped()));
|
|
25 | 25 | connect(&woker, SIGNAL(workEnd()), &loop, SLOT(quit())); |
|
26 | 26 | ||
27 | 27 | ||
28 | 28 | QString query_string;
|
|
29 | 29 | // error = false; //ñáðîñèì ôëàã îøèáêè
|
|
30 | 30 | query_string = tr("wmic -U "); |
|
31 | 31 | query_string.append(user_name); |
|
32 | 32 | query_string.append("%\""); |
|
33 | 33 | query_string.append(password); |
|
34 | 34 | query_string.append("\""); |
|
35 | 35 | query_string.append(tr(" //")); |
|
36 | 36 | query_string.append(host); |
|
37 | 37 | query_string.append(tr(" \"")); |
|
38 | 38 | query_string.append(wmi_string); |
|
39 | 39 | query_string.append(tr("\"")); |
|
40 | 40 | // process.start(query_string);
|
|
41 | 41 | // process.start("ls\n");
|
|
42 | 42 | // while (!stopped) {;}
|
|
43 | 43 | ||
44 | 44 | qDebug() << query_string; |
|
45 | 45 | woker.setProcessString(query_string); |
|
46 | 46 | woker.startProcess(); |
|
47 | 47 | ||
48 | 48 | loop.exec(); |
|
49 | 49 | p_buffer = woker.workBuffer(); |
|
50 | 50 | }
|
|
51 | 51 | ||
52 | 52 | void WmiThread::stop(){ |
|
53 | 53 | mutex.lock(); |
|
54 | 54 | stopped = true; |
|
55 | 55 | mutex.unlock(); |
|
56 | 56 | }
|
|
57 | 57 | ||
58 | 58 | void WmiThread::readStandartProcessOutput(){ |
|
59 | 59 | p_buffer = process.readAllStandardOutput(); |
|
60 | 60 | qDebug() << QString(p_buffer); |
|
61 | 61 | mutex.lock(); |
|
62 | 62 | stopped = true; |
|
63 | 63 | mutex.unlock(); |
|
64 | 64 | process.close(); |
|
65 | 65 | exit(); |
|
66 | 66 | }
|
|
67 | 67 | ||
68 | 68 | void WmiThread::readStandartProcessError(){ |
|
69 | 69 | p_buffer = process.readAllStandardError(); |
|
70 | 70 | error = true; // åñëè îøèáêà, óñòàíîâèì ôëàã îøèáêè âûïîëíåíèÿ WMI-çàïðîñà |
|
71 | 71 | }
|
|
72 | 72 | ||
73 | 73 | /*
|
|
74 | 74 | void WmiThread::wokerIsStopped(){
|
|
75 | 75 | exit();
|
|
76 | 76 | }
|
|
- | 77 | */
|
|
- | 78 |