[gelöst]text linken und externes Programm mit Parameter st..

Verschiedenes zu Qt
Antworten
Alex66955
Beiträge: 56
Registriert: 23. September 2009 14:48

[gelöst]text linken und externes Programm mit Parameter st..

Beitrag von Alex66955 »

Hallo Community,

Zu meinem Problem.
Ich habe eine Variable länge von Zeilen[mehrere Tausend]. Jede Zeile soll einen verlinkten Text enthalten der ein externes Programm mit Parameter öffnet.
Mit

Code: Alles auswählen

"<a href="file:///PATH">Datei Öffnen</a>"
Wird eine externe exe gestartet nur leider funktioniert das nicht mit Parameter. Gibt es noch eine einfache Möglichkeit dies umzusetzen?

Möchte gerne einen Umweg gehen und nicht unbedingt Buttons einfügen. Wenn dies jedoch die einzigste möglichkeit wäre dann wäre ich über Vorschläge dankbar.
Dachte daran bei jeder erstellten Zeile einen Button zu erstellen und diesen mit einer SIGNAL/SLOT zu der QDesktopServices::openUrl() Methode verbinden

Gruß Alex
Zuletzt geändert von Alex66955 am 24. November 2009 14:58, insgesamt 1-mal geändert.
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Re: Text linken und externes Programm mit Parameter starten

Beitrag von Troll.Soft »

Code: Alles auswählen

"<a href="file:///PATH">Datei Öffnen</a>"
Alex66955 hat geschrieben: Wird eine externe exe gestartet nur leider funktioniert das nicht mit Parameter.
Hm, sieht aus wie Html-Code und da kann man sehr wohl Parameter mitgeben.
Hier gibt es ausführliche Info
http://www.selfhtml.org/
tschüß
Troll.Soft
Alex66955
Beiträge: 56
Registriert: 23. September 2009 14:48

Beitrag von Alex66955 »

Das funktioniert nicht. Nach dem ich einige Sachen im Netz gelesen habe ist es nicht möglich über ein HTML Link ein Programm mit Parameter zu starten.

Benutze jetzt

Code: Alles auswählen

QDesktopServices::openUrl
Jedoch bekomme ich es dort auch nicht hin die Parameter mitzugeben.

Als Beispiel:
Habe ich direkt so in die Windows cmd eingegeben und funzt
Startet den PSPad Editor mit der Datei Google.ini und springt zu Zeile 11

Code: Alles auswählen

"C:\Programme\PSPad editor\PSPad" "C:\Programme\PSPad editor\Google.ini" /11
Mein Ansatz:

Code: Alles auswählen

QDesktopServices::openUrl(QUrl("file:///C:/Programme/PSPad editor/PSPad.exe C:/Programme/PSPad editor/Google.ini /11", QUrl::TolerantMode));
Weis wer Rat?




Gruß Alex
Herzogswalder
Beiträge: 79
Registriert: 11. Oktober 2009 00:37
Wohnort: Dresden

Beitrag von Herzogswalder »

QProcess
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Beitrag von Troll.Soft »

Herzogswalder hat geschrieben:QProcess
Diese Bemerkung wirft bei mir folgende Frage auf:
Befindest Du Dich bei Deinem Aufruf innerhalb eines Qt C++ Programs oder in einem Html-Browser?
Wenn ersteres richtig ist. Siehe Lösung Herzogswalder,
Wenn letzeres richtig ist. Siehe Lösung TrollSoft.

tschüß
TrollSoft
Alex66955
Beiträge: 56
Registriert: 23. September 2009 14:48

Beitrag von Alex66955 »

Troll.Soft hat geschrieben:
Herzogswalder hat geschrieben:QProcess
Diese Bemerkung wirft bei mir folgende Frage auf:
Befindest Du Dich bei Deinem Aufruf innerhalb eines Qt C++ Programs oder in einem Html-Browser?
Wenn ersteres richtig ist. Siehe Lösung Herzogswalder,
Wenn letzeres richtig ist. Siehe Lösung TrollSoft.

tschüß
TrollSoft
Qt C++. Habe es zum laufen gebracht.

Danke :)
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Und wie?

Eigentlich sollte QDestopService das richtige sein zum öffnen der ini datei 8falls diesem File ein standard-prog zuugewiesen wurde)
Alex66955
Beiträge: 56
Registriert: 23. September 2009 14:48

Beitrag von Alex66955 »

AuE hat geschrieben:Und wie?

Eigentlich sollte QDestopService das richtige sein zum öffnen der ini datei 8falls diesem File ein standard-prog zuugewiesen wurde)
Das Problem ist das die LogsFiles nicht immer im Format .ini vorhanden sind und ich den Pfad des Editors mit angeben muss sowie den Pfad als Parameter für die zu öffnenten Datei. Mit DesktopService wurde die Datei mit dem Standard Programm geöffnet aber ohne Parameter..


Mit dem folgendem Code lässt sich eine /.exe mit beliebig vielen Parameter starten

Code: Alles auswählen

QString pspadPath = /*PATH*/;
      QStringList parameter;
        parameter << VerzeichnisName+"/"+dateiName << "/"+zeilenNummer;

        QProcess *proccessPspad = new QProcess(this);
        proccessPspad->start(pspadPath, parameter);
Antworten