datei in datei und RegDeleteKey
-
hi leute,
ich hab da 2 Fragen:1. Wie kann ich eine oder mehrere dateien in eine exe "anhängen", die ich dann auch wieder extrahieren kann? hat da jemand ne idee?
2. RegDeleteKey() funktioniert bei mir irgendwie nicht. Ich benutze das so:
RegDeleteKey(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\test");
bitte korrigiert mich
danke schonmal
-
Hatte da mal eine kleine Konsolenanwendung geschrieben (kannst Du so für WinAPI übernehmen). Füge eine Datei in dein Projekt ein, Ressourcenkategorie in meinem Beispiel "FILE". Dann verwende z.B. folgenden Code aus dem Konsolenprogramm:
#include "iostream.h" #include "stdio.h" #include "conio.h" #include "windows.h" #include "resource.h" bool CopySrcFile(char *szType, int iSrcFile, char *szLocation); void main(void) { CopySrcFile("FILE", IDR_FILE1, "C:\\bild.jpg"); getch(); } bool CopySrcFile(char *szType, int iSrcFile, char *szLocation) { HRSRC hSrcFile = FindResource(GetModuleHandle(NULL), MAKEINTRESOURCE(iSrcFile), szType); if(hSrcFile) { HGLOBAL hSrcFileLoad = LoadResource(GetModuleHandle(NULL), hSrcFile); void *vSrcFileData = LockResource(hSrcFileLoad); size_t iSrcFileSize = SizeofResource(GetModuleHandle(NULL), hSrcFile); FILE *fFile = fopen(szLocation, "wb"); fwrite(vSrcFileData, 1, iSrcFileSize, fFile); fclose(fFile); return true; } return false; }
Wegen dem DeleteKey:
Du musst davor RegCreateKey oder RegOpenKey verwenden!
Mensch, ich muss unbedingt schauen, dass meine WinAPI Page online kommt. Es gibt kaum eine Frage, die auf ihr nicht beantwortet werden könnte... *hust*, *gHave fun! Sollte bei Dir nun klappen!
Gruß!
Chris
-
Die Datei packst du als BINARY in dein Resource-File und kommst in deinem Programm über ChrisK's Code da ran.
-
hmmm...hätte vielleicht noch erwähnen sollen dass ich nicht vc++ benutze.
Benutze borland freecommandlinetools ... da kann man das nicht so einfach in ein projekt einfügen, aber ich glaub ich hab mir da jetzt schon was passendes einfallen lassen
-
jghj schrieb:
aber ich glaub ich hab mir da jetzt schon was passendes einfallen lassen
Bitte immer die Lösung zu einem Problem angeben.
-
jojo, aber erst muss ichs mal selbst verwirklichen
-
hmmm...hab da jetzt nurnoch ein problem.
wie kann ich einen einzelnen char in einen buffer hinzufügen?
mit strcat(buffer, c); gehts nicht, da c int bzw. char ist.
wenn ichs mit (charprobiere zu casten hängt sich das Programm auf.
wie soll ich das am besten machen?thx.
-
buffer[lstrlen(buffer) ] = c; buffer[lstrlen(buffer)+1] = 0;