Seite 1 von 1

Eingabeaufforderung öffnen

Verfasst: 26. November 2008 15:02
von speed04
ich möchte aus meinem qt programm, mit einem pushbutton, die eingabeaufforderung öffnen. ist es möglich das zu realisieren oder gibt es von windows her probleme! die anderen ausführbaren programme (vlc, mozilla, ...) lassen sich ohne probleme öffnen.

thx

Verfasst: 26. November 2008 15:41
von Christian81
Was geht denn nicht wenn Du 'cmd.exe' ausführst?

Verfasst: 26. November 2008 15:54
von speed04
ich habe in meiner funktion den pfad zu der cmd.exe angegeben. dann versuche ich es mit

Code: Alles auswählen

Qstring pfad ="C:\\WINDOWS\\system32\\cmd.exe";
QProcess *prozess = new QProcess();
prozess -> start (pfad);
zu starten.
also über nen button, den ich in meinem mainwindow anklicke, dann sollte er das cmd fenster öffnen. aber es passiert einfach gar nix!

Verfasst: 26. November 2008 16:05
von AuE
und über die api fkt´s?

was sagt denn der prozess status?

Verfasst: 26. November 2008 21:10
von speed04
meinst du mit api über start->ausführen->cmd???

ja das funktioniert problemlos.

mh, dass mit dem prozess status habe ich noch nicht gemacht.
da ich ehrlich gesagt nicht genau weiß, wie ich das mache.

Verfasst: 27. November 2008 02:23
von alainstgt
hier ein Weg...

// Beispiel mit QProcess::startDetached()
// siehe auch Beispiel mit QDesktopServices::openUrl()

#include <QtGui>

class MyQPushButton : public QPushButton
{
public :
MyQPushButton(const QString& text,const QString& exe, QWidget* parent= 0): QPushButton(text, parent), m_exe(exe)
{
resize(75, 30);
setFont(QFont("Times", 18, QFont::Bold));
}
virtual void mouseReleaseEvent(QMouseEvent* event)
{
QProcess::startDetached(m_exe);
}

private :
QString m_exe;

};
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QWidget w;

MyQPushButton bouton1("www.messe-stuttgart.de", "cmd /c start http://www.messe-stuttgart.de/", &w); //siehe auch Lösung mit QDesktopServices::openUrl()
MyQPushButton bouton2("Notepad starten", "notepad", &w);
MyQPushButton bouton3("DOS starten", "cmd", &w);
QVBoxLayout vl(&w);
vl.addWidget(&bouton1);
vl.addWidget(&bouton2);
vl.addWidget(&bouton3);

w.show();
return app.exec();
}

Verfasst: 27. November 2008 14:44
von speed04
he danke dir für den code. ich habe mir mal nur das startDetached rausgenommen und sofort funktioniert es!

da werde ich nochmal in der qt doku nachlesen, was genau der unterschied zwischen start und startDetached ist!

THX[/i]