2012-04-11 7 views
0

Ich möchte Bild Exif Daten ändern. Dafür habe ich Exiv2.exe verwendet. Jetzt möchte ich Befehl von meinem Programm feuern, die in vC++ geschrieben ist 08. Für die GPS-Daten des Bildes ändern, exiv BefehlWie folgt Befehl von VC++?

exiv2 -M"set Exif.GPSInfo.GPSLatitude 4/1 15/1 33/1" D:\test\image.jpg

I exiv2.exe in System32-Ordner abgelegt haben. Und dieser Befehl funktioniert gut von der Eingabeaufforderung. Zum Beispiel

C:\Users\Me>exiv2 -M"set Exif.GPSInfo.GPSLatitude 4/1 15/1 33/1" D:\test\image.jpg 

Nun, wie kann ich den gleichen Befehl aus meinem C++ - Programm auslösen?

Vielen Dank im Voraus ...

Antwort

0

habe es endlich,

const char *change_latitude = "exiv2 -M\"set Exif.GPSInfo.GPSLatitude 14/1 15/1 13/1\" D:\\test\\image.jpg"; 
system(change_latitude); 

In diesem Beispiel Annahme: exiv2.exe in System32 Ordner befindet.

Dank ...

+0

Die wirkliche Annahme mit Ihnen meine Parameter ersetzen können, ist, dass 'exiv2.exe' irgendwo in dem'% PATH% 'und' system32' ist ** nicht ** das richtige Verzeichnis zufällige ausführbare Dateien zu speichern. – MSalters

0

Werfen Sie einen Blick in die Dokumentation für ShellExecute() oder CreateProcess() - entweder von diesen sollten Sie erhalten, wo Sie sein möchten.

+0

Ich habe ShellExecute versucht (NULL, _T ("open"), _T ("cmd"), _T ("/ C exiv2 -M \" gesetzt Exif.GPSInfo.GPSLatitude 41/1 41/1 41/1 "D: \ test \ image.jpg"), _T ("C: \"), SW_SHOW); aber nicht funktioniert. –

+0

ShellExecuteW (NULL, NULL, L "notepad.exe", L "c: \\ Temp \\ foo.txt", NULL, SW_SHOWNORMAL) funktioniert für mich. Sie sollten – Bukes