Eingabeaufforderung öffnen

Verschiedenes zu Qt
Antworten
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

Eingabeaufforderung öffnen

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Was geht denn nicht wenn Du 'cmd.exe' ausführst?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

Beitrag 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!
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

und über die api fkt´s?

was sagt denn der prozess status?
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

Beitrag 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.
alainstgt
Beiträge: 19
Registriert: 22. August 2008 11:37
Wohnort: Stuttgart

Beitrag 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();
}
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

Beitrag 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]
Antworten