Seite 1 von 1

Prüfen ob Programm vorhanden (windows und linux)

Verfasst: 11. Juni 2012 18:46
von chom
Hallo zusammen,
denke meine Frage passt hier am besten rein:
Ich möchte in meinem Programm prüfen ob ein anderes Programm installiert ist.
Um genau zu sein brauche ich für bestimmte Teile meines Programms FFMPEG.
Daher will ich prüfen ob das Programm installiert ist und somit die Funktionen dem Benutzer zur Verfügung stehen.
Unter Linux ist das jetzt eigentlich kein Problem, ich rufe "which" auf und gucke ob die Antwort ungleich "which: no xyz" ist.
Geht das auch unter Windows (hab das hier nicht)?
Weil das Programm sollte später Plattform unabhängig sein.

MFG

Re: Prüfen ob Programm vorhanden (windows und linux)

Verfasst: 21. November 2012 13:44
von Ericlwo
Weiß ich auch nicht aber muss zu implementieren sein, es gibt ja manche Programme die sowas checken oder zumindest den Standardpfad überprüfen, wenns was mit FFMPEG zu tun hat und codecs usw, schau mal auf doom9 vorbei da gibts viele Tools, und manche von denen checken sowas! Ich glaub StaxRip z.B. auch wenns mit eigenen Dateien kommt.

Re: Prüfen ob Programm vorhanden (windows und linux)

Verfasst: 21. November 2012 16:09
von brax
which auf Windows nachzuprogrammieren ist nicht allzuviel Aufwand. Im Prinzip brauchst Du ja nur die Umgebungsvariable "PATH" zu finden und dann für alle Einträge davon prüfen, ob die gesuchte Executable an der Stelle existiert.
Ohne Garantie auf Korrektheit (da ungestestet):

Code: Alles auswählen

QStringList env = QProcess::systemEnvironment();
QString path = "";
for(int i=0; i<env.size(); ++i) {
	QString tmp = env.at(i);
	if (tmp.toLower().startsWith("path=")) {
		path = tmp;
		break;
	}
}
// abschneiden von "path=" am Anfang
path = path.mid(5);

// nur die Pfade
env = path.split(";",QString::SkipEmptyParts);
Nun brauchst Du nur noch die QStringList durchzugehen und zu gucken, ob die gesuchte Datei existiert. Für Linux musst Du im path.split ":" als Separator nehmen, dann brauchst Du auch dort nicht mehr which zu starten.

Re: Prüfen ob Programm vorhanden (windows und linux)

Verfasst: 21. November 2012 22:09
von veeman
Eventuell wäre es einfacher mit QLibrary zu versuchen die Bibliothek zu laden, was ja automatisch in den Paths nach dieser sucht, und bei nicht fund ne entsprechende Meldung auszugeben.

Mfg veeman