In unbekannten Ordner springen
-
Hallo liebe Community!
Folgendes, ich bin gerade dabei ein Backup Programm zu schreiben.
Zurzeit möchte ich die Passwörter von meinem Mozilla Firefox (2.0) auf den Desktop kopieren, sodass ich nach dem formatieren diese wieder einfügen kann und ich somit wieder alle meine Passwörter im Mozilla Firefox habe.Soweit, sogut.
Das klappt bis jetzt auch alles ohne Probleme.
#include <windows.h> #include <sstream> using namespace std; string mozillapfad() { unsigned char pfad[MAX_PATH]; unsigned long groesse=sizeof(pfad); HKEY mozilla; RegOpenKey(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders",&mozilla); RegQueryValueEx(mozilla,"AppData",NULL,NULL,pfad,&groesse); RegCloseKey(mozilla); stringstream pfadstream; pfadstream<<pfad; return pfadstream.str(); } void kopieren() { string pfad1=mozillapfad()+"\\Mozilla\\Firefox\\Profiles\\26daqxfh.default\\signons2.txt"; string pfad2=mozillapfad()+"\\Mozilla\\Firefox\\Profiles\\26daqxfh.default\\key3.db"; CopyFile(pfad1.c_str(),"signons2.txt",true); CopyFile(pfad2.c_str(),"key3.db",true); } int main() { kopieren(); return 0; }Allerdings heisst der Ordner '26daqxfh.default' indem ja die beiden Dateien sind, die ich kopieren möchte, nicht bei jedem User gleich.
Wie kriege ich nun eine Überbrückung hin?
Also wie springe ich in diesen Ordner, wenn ich den Namen davon nicht kenne?
Gibt es extra für diesen Ordner vllt. einen Registry Eintrag?
Oder hat jemand vllt. eine extra Funktion dafür?Wäre für Hilfe sehr dankbar.
ps: Dieses Programm schreibe ich aus reinem Lern-Effekt, ich möchte damit keinem User schaden zufügen.
-
Du musst den Profiles Ordner durchsuchen! Es können ja sehr wohl mehrere Profile vorhanden sein!
-
s0me schrieb:
Zurzeit möchte ich die Passwörter von meinem Mozilla Firefox (2.0) auf den Desktop kopieren, sodass ich nach dem formatieren diese wieder einfügen kann und ich somit wieder alle meine Passwörter im Mozilla Firefox habe.
[/b]Wenn Du das nicht unbedingt selbst machen willst/musst, kannst Du eine fertige Lösung dafür benutzen. Google mal nach MozBackup.
-
Belli schrieb:
s0me schrieb:
Zurzeit möchte ich die Passwörter von meinem Mozilla Firefox (2.0) auf den Desktop kopieren, sodass ich nach dem formatieren diese wieder einfügen kann und ich somit wieder alle meine Passwörter im Mozilla Firefox habe.
[/b]Wenn Du das nicht unbedingt selbst machen willst/musst, kannst Du eine fertige Lösung dafür benutzen. Google mal nach MozBackup.
Wie gesagt, es geht mir um den LernEffekt.
Im endeffekt könnte ich beim formatieren auch alles per Hand machen, aber
1.) geht es mit einem Programm schneller.
2.) kann ich mein eigenes Programm auf mich abstimmen.
3.) ist es gut mal was über WinAPI zu lernen.Martin Richter schrieb:
Du musst den Profiles Ordner durchsuchen! Es können ja sehr wohl mehrere Profile vorhanden sein!
Okay und wie genau stelle ich das an? Mit FindFirstFile, wenn ja, wie genau?
-
RegEnumKeyEx
Warum starten die Jungferkel nicht mal mit nem C++-Buch
über Grundlagen, statt gleich was aus der Registry fingern zu wollen?
Beim nächsten DWORD ist es 15 Uhr 06.....
-
Schweinegrippe schrieb:
RegEnumKeyEx
Warum starten die Jungferkel nicht mal mit nem C++-Buch
über Grundlagen, statt gleich was aus der Registry fingern zu wollen?
Beim nächsten DWORD ist es 15 Uhr 06.....Das mit der Registry klappt doch schon perfekt.
Warum sollte ich da noch was ändern?Weiß sonst noch jemand Hilfe?
-
Shell Folder holt man sich über ShGetSpecialFolderPath. Aus der Registry ist total illegal.
(Lektion 1: Es gibt eine Menge Sachen, die man kann aber nicht darf - "nur kann" ist nur für Frickler.)
Die MSDN-Hilfe für FindFirstFile verweist auf ein Beispiel zum Einlesen der Dateien eines Verzeichnisses. Probier mal dein Glück, und poste dann, was du hast.