kostenloser Webspace werbefrei: lima-city


QT - Externe Datei ausführen

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    tillorgias

    tillorgias hat kostenlosen Webspace.

    Hallo zusammen,

    es ist bestimmt ganz einfach - aber ih habe nichts wirklich brauchbares bei google gefunden. Wie kann man eine Externe Datei ausführen (Word dokument in word öffnen, website im browser usw)? Gibt es dafür funktionen in der QT-Biblithek? Ich komme gerade gar nicht weiter.

    Euer Tillorgias
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. c****s

    _spawnlp (_P_NOWAIT, "winword.exe", "winword.exe", "dokument.doc", NULL);


    Falls die externe Anwendung NICHT im PATH liegt, dann eben den vollqualifizierten Ort übergeben.
    Falls die Anwendung NICHT sich selbst als arg[0] haben will dann:

    _spawnlp (_P_NOWAIT, "winword.exe", "dokument.doc", NULL);


    Analog dann "firefox.exe", "iexplore.exe" etc

    Alles deklariert in der <process.h>
  4. Autor dieses Themas

    tillorgias

    tillorgias hat kostenlosen Webspace.

    Hallo,

    danke dir erstmal, aber das ist nicht das was ich suche. Ich möchte, dass die zur Dateiendung passende im System registrierte Anwendung aufgerufen wird. Tut mir leid, wenn ich mich vllt. etwas unklar ausgedrückt habe.
  5. c****s

    OK, verstanden. Die Zuweisung von Endung auf Anwendung steht in der Registry. Unter Windows 7 z.B. HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts (logischerweise unter HKCU und nicht HKLM, da ja jeder Nutzer die Zuweisungen treffen kann wie er will).

    Ob es einen direkten API-Aufruf gibt, der zu einer Endung die Anwendung ausliest weiß ich nich und hab ich auch in der MSDN nicht gefunden. Ich würde also empfehlen, dass du dir die dazugehörige Anwendung (sofern es eine gibt) aus der Registry ausliest und dann aufrust.

    Die API für dotNet ist hier: http://msdn.microsoft.com/de-de/library/microsoft.win32.registry(VS.80).aspx
    Die API für W32 ist hier: http://msdn.microsoft.com/en-us/library/ms724875(VS.85).aspx

    cu
  6. Autor dieses Themas

    tillorgias

    tillorgias hat kostenlosen Webspace.

    Danke dir.

    Es gibt da nur das Problem, dass ich eigentlich in c++ mit qt programmiere, da ich das auch für linux und mac kompilieren will. Unter java gibt es den aufruf Desktop.open(File arg0);
    Es gibt auch unter QT einen Befehl in der Klasse QDesktopServices, aber die öffnet nur den explorer mit dem angegebenen pfad. Gibt es nicht irgendwas, was das automatisch erledigt?
  7. c****s

    Hmm, hab mal n bisserl Qt-API gelesen und da gibt es wohl nichts. Was meines Erachtens auch verständlich ist, weil

    (a) es jedes OS anders macht,
    (b) bei Linux es KDE anders macht als Gnome, etc. . .
    (c) einige OS gar keine File-Assoziationen kennen (zB VMS).

    Ich fürchte mal, du wirst da für jede Zielplattform eigenen Code schreiben müssen, außer hier im Forum kommt jemand und sagt "Hey kein Problem, Qt kann das klar".
  8. Autor dieses Themas

    tillorgias

    tillorgias hat kostenlosen Webspace.

    Hm.
    Schade. Danke dir trotzdem für die mühe. Dann werde ich wohl in den saueren apfel beißen müssen...
    Naja. Wenn jetzt jemand kommt und das sagt, dann hielte ich es für ein gerücht. ich habe mit einem profi (QT-)programmierer gesprochen und er meinte, dass ihm eine solche funktion von qt nicht bekannt sei.
    Ich denke, dieser thread kann dann geschlossen werden.
  9. tillorgias schrieb:
    Danke dir.

    Es gibt da nur das Problem, dass ich eigentlich in c++ mit qt programmiere, da ich das auch für linux und mac kompilieren will. Unter java gibt es den aufruf Desktop.open(File arg0);
    Es gibt auch unter QT einen Befehl in der Klasse QDesktopServices, aber die öffnet nur den explorer mit dem angegebenen pfad. Gibt es nicht irgendwas, was das automatisch erledigt?

    Nicht ganz richtig die Dokumentation von Qt sagt zur Funktion folgendes:

    bool QDesktopServices::openUrl ( const QUrl & url ) [static]
    Opens the given url in the appropriate Web browser for the user's desktop environment, and returns true if successful; otherwise returns false.
    If the URL is a reference to a local file (i.e., the URL scheme is "file") then it will be opened with a suitable application instead of a Web browser.
    If a mailto URL is specified, the user's e-mail client will be used to open a composer window containing the options specified in the URL, similar to the way mailto links are handled by a Web browser.

    Hoffe das dir das weiterhilft, als ich die funktion vor einigen Monaten benutzt hatte konnte ich unter Windows Word und Excel Dateien mit Office öffnen.

    nachzulesen unter http://doc.qtsoftware.com/4.4/qdesktopservices.html
    MfG gmgilde

    Beitrag zuletzt geändert: 2.7.2009 16:05:30 von gmgilde
  10. Autor dieses Themas

    tillorgias

    tillorgias hat kostenlosen Webspace.

    Danke dir!
    Da sieht mal wieder - wer lesen kann ist klar im vorteil!:wink:
    problem geloest, der thread kann geschlossen werden.
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!