/trunk/DBViewer/mainwindow.cpp |
---|
129,7 → 129,7 |
// buildReport(true); |
all_reading = false; // íåò ïðî÷èòàííûõ äàííûõ èç ïðîöåññà |
// wmiThread = new WmiThread(this); |
wmiThread = new WmiThread(this); |
} |
1821,25 → 1821,19 |
TWmiVideoCard MainWindow::getWmiVideoGard(QString host, QString user_name, QString password){ |
TWmiVideoCard result; |
bool ok; |
wmiThread.moveToThread(&wmiThread); |
wmiThread.setHost(host); // çàäàåì õîñò |
wmiThread.setUser(user_name);//çàäàåì èìÿ ïîëüçîâàòåëÿ |
wmiThread.setPassword( password); |
wmiThread.setWmiString(tr("select * from Win32_ComputerSystem")); |
wmiThread.start(QThread::NormalPriority); |
//for (;;) {if (wmiThread.isStopped()) break;} |
int t; |
t++; |
ok = wmiThread.wait(10000); |
wmiThread->setHost(host); // çàäàåì õîñò |
wmiThread->setUser(user_name);//çàäàåì èìÿ ïîëüçîâàòåëÿ |
wmiThread->setPassword( password); |
wmiThread->start(QThread::NormalPriority); |
wmiThread->setWmiString(tr("select * from Win32_ComputerSystem")); |
ok = wmiThread->wait(10000); |
if (ok){ |
int m; |
m++; |
} |
else { |
wmiThread.stop(); |
ok = wmiThread.wait(10000); |
wmiThread->stop(); |
ok = wmiThread->wait(10000); |
int k; |
k++; |
} |
/trunk/DBViewer/mainwindow.h |
---|
128,7 → 128,7 |
WmiThread wmiThread; |
WmiThread * wmiThread; |
/////// QSqlTableModel * sql_mogel; |
MyModel * sql_mogel; |
/trunk/DBViewer/wmithread.cpp |
---|
3,12 → 3,11 |
WmiThread::WmiThread(QObject *parent) : |
QThread(parent) |
{ |
process.moveToThread(this); |
connect(&process, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandartProcessOutput())); |
connect(&process, SIGNAL(readyReadStandardError()), this, SLOT(readStandartProcessError())); |
mutex.lock(); |
stopped = false; |
mutex.unlock(); |
connect(&process, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandartProcessOutput())); |
connect(&process, SIGNAL(readyReadStandardError()), this, SLOT(readStandartProcessError())); |
18,7 → 17,6 |
QString query_string; |
error = false; //ñáðîñèì ôëàã îøèáêè |
query_string = tr("wmic -U "); |
30,11 → 28,10 |
query_string.append(tr(" \"")); |
query_string.append(wmi_string); |
query_string.append(tr("\"")); |
// process.start(query_string); |
process.start("ls\n"); |
// while (!stopped) {;} |
exec(); |
// quit(); |
process.start(query_string); |
while (!stopped); |
// exec(); |
} |
void WmiThread::stop(){ |
45,12 → 42,9 |
void WmiThread::readStandartProcessOutput(){ |
p_buffer = process.readAllStandardOutput(); |
qDebug() << QString(p_buffer); |
mutex.lock(); |
stopped = true; |
mutex.unlock(); |
process.close(); |
exit(); |
} |
void WmiThread::readStandartProcessError(){ |
/trunk/DBViewer/wmithread.h |
---|
4,7 → 4,6 |
#include <QThread> |
#include <QProcess> |
#include <QMutex> |
#include <QDebug> |
class WmiThread : public QThread |
{ |
19,17 → 18,11 |
QByteArray buffer(){return p_buffer;} |
void clearBuffer(){p_buffer.clear();} |
bool isError(){return error;} |
bool isStopped(){ |
mutex.lock(); |
return stopped; |
mutex.unlock(); |
}; |
void setWmiString(QString new_wmi_string){wmi_string = new_wmi_string;} |
private: |
volatile bool stopped; |
volatile bool error; |
QProcess process; |
QProcess process; |
QString host; |
QString user_name; |
QString password; |