Url Oeffnen Dateien Oeffnen File u.n.s.w. Window & Mac

Code-Schnippsel, oder Tipps und Tricks, die einem beim Programmieren mit Qt helfen können.
Antworten
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 11:48
Wohnort: DE Freiburg

Url Oeffnen Dateien Oeffnen File u.n.s.w. Window & Mac

Beitrag von patrik08 » 26. Juni 2006 17:56

Wer hatte dass gedacht dass es so einfach ist...

Um im zustaendigen Mime Type dateien oder url zu oeffnen geht es auf window sowie Auf Mac OSX (mac am einfachsten) folgender massen...

sogar mailto:mail@domain geht auch....

Im window cmd:
rundll32.exe url.dll,FileProtocolHandler http://www.qtforum.de/forum/
Im Mac
open http://www.qtforum.de/forum/
(ist verdammt schnell)

in einem QProcess packen und fertig ist der schmerz!

auf beide systemen kann man so file ordner url mailto:eeee@eee.de
oeffnen

Auf Mac kann mann sogar applescript zum laufen bringen....
/usr/bin/osascript file_applescript
(ohne dass die console aufgeht!)
(bei window sind es bat file)

Code: Alles auswählen

void ClassName::OpenUrl_File_Dir_Dektop()
{
    #if defined(Q_WS_WIN)
    QProcess p;
    QStringList s;
    s << "url.dll,FileProtocolHandler" << "http://www.qtforum.de/forum/";
    p.startDetached(QString("rundll32.exe") , s );
    #endif
    #if defined Q_WS_MAC
    QProcess m;
    QStringList macs;
    macs << "http://www.qtforum.de/forum/";  /* oeffnet der default browser */
    m.startDetached(QString("open") , macs );
    #endif  
}
Apple script schreiben (testen auf einem normalen applescript)

Setzt ein neuen hindergrund bild auf dem desktop....

teilcode von http://albumshaper.sourceforge.net/

Code: Alles auswählen


  //MacOSX
  #elif defined(Q_OS_MACX)

  //create script
  QString scriptFilename = ((Window*)qApp->mainWidget())->getTitle()->getAlbum()->getTmpDir() +
    "/tmpBackgroundScript";

  QFile file( scriptFilename );
  if(file.open(IO_WriteOnly))
  {
    //-----
    QTextStream stream;
    stream.setDevice( &file );
    stream.setEncoding( QTextStream::UnicodeUTF8 );
    //-----
    stream << "tell application \"Finder\"\n";
    stream << "set pFile to POSIX file \"" << chosenFilename.ascii() << "\"\n";
    stream << "set desktop picture to file pFile\n";
    stream << "end tell";
  }
  file.close();
  
  //run script to set background
  QProcess p;
  p.addArgument( "/usr/bin/osascript" );
  p.addArgument( scriptFilename );
  p.start();
  
  //if there is an old file remove it
  if(!oldFilename.isNull())    
  { tmpDir.remove( oldFilename ); }

  //-------------------------------
  //UNIX
  #else


Boschqt
Beiträge: 1
Registriert: 24. März 2011 10:37

Beitrag von Boschqt » 24. März 2011 11:14

Hallo zusammen! Der thread hier ist ja von 2006, also computertechnisch gesehen, aus der Steinzeit.... ;)
Nun wollte ich mal fragen ob ich das Script dennoch für meinen Mac benutzen kann und mal ganz allgemein: Wenn man alter Versionen von Programmen Scripts whatever verwendet, kann irgendetwas passieren, außer das es eben nicht läuft? Danke schonmal

Gruß Manuel

Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 » 24. März 2011 11:39

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

Antworten